Subversion Repositories Scribus

Rev

Rev 6451 | Rev 6866 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
3 paul 7
#ifndef MPALETTE_H
8
#define MPALETTE_H
9
 
10
#include <qbuttongroup.h>
11
#include <qcheckbox.h>
12
#include <qcombobox.h>
13
#include <qframe.h>
14
#include <qgroupbox.h>
15
#include <qlabel.h>
16
#include <qpushbutton.h>
17
#include <qradiobutton.h>
18
#include <qspinbox.h>
19
#include <qtoolbutton.h>
20
#include <qwidget.h>
21
#include <qwidgetstack.h>
22
#include <qlayout.h>
23
#include <qtooltip.h>
24
#include <qimage.h>
25
#include <qpixmap.h>
27 Franz 26
#include <qlistbox.h>
68 Franz 27
#include <qlineedit.h>
1263 tsoots 28
#include <qtimer.h>
2148 fschmid 29
#include <qtoolbox.h>
2309 fschmid 30
#include <qpopupmenu.h>
2969 craig 31
 
32
#include "scribusapi.h"
1525 cbradney 33
#include "scrpalettebase.h"
3 paul 34
#include "mspinbox.h"
35
#include "pageitem.h"
36
#include "page.h"
838 cbradney 37
class ScribusDoc;
3 paul 38
#include "linkbutton.h"
39
#include "linecombo.h"
40
#include "spalette.h"
33 Franz 41
#include "fontcombo.h"
4689 mrdocs 42
#include "colorcombo.h"
710 cbradney 43
class StyleSelect;
173 Franz 44
#include "alignselect.h"
45
#include "shadebutton.h"
3540 cbradney 46
class Cpalette;
121 Franz 47
class Autoforms;
740 fschmid 48
class ArrowChooser;
5832 fschmid 49
class ScComboBox;
5257 cbradney 50
class ScribusMainWindow;
1502 tsoots 51
class UserActionSniffer;
5832 fschmid 52
/*
2969 craig 53
class SCRIBUS_API LabelButton : public QLabel
265 Franz 54
{
55
        Q_OBJECT
56
 
57
public:
58
        LabelButton(QWidget* parent, QString text1, QString text2);
59
        ~LabelButton() {};
60
        void setTexts(QString text1, QString text2);
61
        bool getState();
62
 
63
private:
64
        bool state;
65
        QString TextA;
66
        QString TextB;
67
 
68
signals:
69
        void clicked();
70
 
71
protected:
266 Franz 72
        virtual void enterEvent(QEvent*);
73
        virtual void leaveEvent(QEvent*);
74
        virtual void mousePressEvent(QMouseEvent*);
265 Franz 75
        virtual void mouseReleaseEvent(QMouseEvent *);
76
};
5832 fschmid 77
*/
2969 craig 78
class SCRIBUS_API NameWidget : public QLineEdit
68 Franz 79
{
248 Franz 80
        Q_OBJECT
68 Franz 81
 
82
public:
168 Franz 83
        NameWidget(QWidget* parent);
84
        ~NameWidget() {};
68 Franz 85
 
86
signals:
168 Franz 87
        void Leaved();
68 Franz 88
 
89
protected:
248 Franz 90
        virtual void focusOutEvent(QFocusEvent *);
68 Franz 91
};
92
 
2969 craig 93
class SCRIBUS_API Mpalette : public ScrPaletteBase
168 Franz 94
{
95
        Q_OBJECT
96
 
3 paul 97
public:
2834 cbradney 98
        Mpalette(QWidget* parent);
248 Franz 99
        ~Mpalette() {};
3540 cbradney 100
 
101
        void updateColorSpecialGradient();
102
        const VGradient getFillGradient();
103
        void updateColorList();
4704 cbradney 104
        void setGradientEditMode(bool);
168 Franz 105
        void updateCList();
106
        void updateCmsList();
5620 jghali 107
        void setTextFlowMode(PageItem::TextFlowMode mode);
168 Franz 108
        void ShowCMS();
4645 subik 109
        /*! \brief fills the langs combobox in language specific order
110
        \author 10/07/2004 - Petr Vanek - rewritten to fix #1185.
111
        Uses sortQStringList from utils.cpp - STL!
112
        \param langMap a structure with languages/hyphs*/
332 Franz 113
        void fillLangCombo(QMap<QString,QString> langMap);
1278 tsoots 114
        /** @brief Returns true if there is a user action going on at the moment of call. */
1286 tsoots 115
        bool userActionOn(); // not yet implemented!!! This is needed badly.
116
                         // When user releases the mouse button or arrow key, changes must be checked
117
                         // and if in ScribusView a groupTransaction has been started it must be also
118
                         // commmited
332 Franz 119
 
3540 cbradney 120
        Cpalette *Cpal;
332 Franz 121
        Autoforms* SCustom;
6451 fschmid 122
        Autoforms* SCustom2;
3540 cbradney 123
        Spalette *Spal;
2508 fschmid 124
        FontComboH* Fonts;
740 fschmid 125
        ArrowChooser* startArrow;
126
        ArrowChooser* endArrow;
332 Franz 127
        QButtonGroup* RotationGroup;
5620 jghali 128
        QButtonGroup* textFlowOptions; 
3540 cbradney 129
 
3 paul 130
public slots:
5257 cbradney 131
        void setMainWindow(ScribusMainWindow *mw);
2199 cbradney 132
        void languageChange();
3691 cbradney 133
        void setDoc(ScribusDoc *d);
134
        void unsetDoc();
4738 cbradney 135
        void unsetItem();
3985 cbradney 136
        void setCurrentItem(PageItem *);
4131 cbradney 137
        void setMultipleSelection(bool);
168 Franz 138
        void NewSel(int nr);
139
        void SetCurItem(PageItem *i);
4619 cbradney 140
        void unitChange();
272 Franz 141
        void setLevel(uint l);
248 Franz 142
        void setXY(double x, double y);
143
        void setBH(double x, double y);
168 Franz 144
        void setR(double r);
145
        void setRR(double r);
146
        void setCols(int r, double g);
2309 fschmid 147
        void setLspMode(int id);
168 Franz 148
        void setLsp(double r);
149
        void setSize(int s);
4073 cbradney 150
        void setFontFace(QString);
2382 fschmid 151
        void setExtra(int e);
275 Franz 152
        void setDvals(double left, double top, double bottom, double right);
168 Franz 153
        void ChangeScaling();
154
        void setLvalue(double scx, double scy, double x, double y);
155
        void setSvalue(double s);
3934 cbradney 156
        void setLIvalue(Qt::PenStyle p, Qt::PenCapStyle pc, Qt::PenJoinStyle pj);
168 Franz 157
        void setStil(int s);
158
        void setAli(int e);
5774 avox 159
        void setParStyle(int e);
2247 fschmid 160
        void setShadowOffs(int x, int y);
2262 fschmid 161
        void setUnderline(int p, int w);
162
        void newUnderline();
2272 fschmid 163
        void setStrike(int p, int w);
164
        void newStrike();
2257 fschmid 165
        void setOutlineW(int x);
166
        void newOutlineW();
168 Franz 167
        void setTScale(int e);
168
        void NewTScale();
2230 fschmid 169
        void NewTScaleV();
2234 fschmid 170
        void NewTBase();
2230 fschmid 171
        void setTScaleV(int e);
2234 fschmid 172
        void setTBase(int e);
168 Franz 173
        void SetLineFormats(ScribusDoc *dd);
174
        void SetSTline(QListBoxItem *c);
2508 fschmid 175
        void NewTFont(QString);
168 Franz 176
        void newTxtFill();
177
        void newTxtStroke();
173 Franz 178
        void setActShade();
168 Franz 179
        void setActFarben(QString p, QString b, int shp, int shb);
180
        void ManageTabs();
4695 cbradney 181
        void setLocked(bool);
182
        void setSizeLocked(bool);
4699 cbradney 183
        void setPrintingEnabled(bool);
184
        void setFlippedH(bool);
185
        void setFlippedV(bool);
248 Franz 186
 
3 paul 187
private slots:
168 Franz 188
        void SelTab(int t);
189
        void NewX();
190
        void NewY();
191
        void NewW();
192
        void NewH();
193
        void NewR();
194
        void NewRR();
195
        void NewLsp();
265 Franz 196
        void HandleGapSwitch();
168 Franz 197
        void NewCols();
198
        void NewGap();
199
        void NewSize();
200
        void NewExtra();
4699 cbradney 201
        void handleFlipH();
202
        void handleFlipV();
168 Franz 203
        void ToggleKette();
204
        void HChange();
205
        void VChange();
2389 fschmid 206
        void ToggleKetteD();
207
        void HChangeD();
208
        void VChangeD();
168 Franz 209
        void NewLocalXY();
210
        void NewLocalSC();
2389 fschmid 211
        void NewLocalDpi();
6057 fschmid 212
        void EditEff();
213
        void EditPSD();
168 Franz 214
        void NewLS();
215
        void NewLSty();
216
        void NewLJoin();
217
        void NewLEnd();
173 Franz 218
        void NewAli(int a);
168 Franz 219
        void setTypeStyle(int s);
2247 fschmid 220
        void newShadowOffs();
168 Franz 221
        void NewLMode();
222
        void DoLower();
223
        void DoRaise();
224
        void DoFront();
225
        void DoBack();
226
        void NewRotMode(int m);
2183 fschmid 227
        void DoFlow(int id);
168 Franz 228
        void MakeIrre(int f, int c, double *vals);
229
        void EditSh();
6451 fschmid 230
        void EditSh2();
168 Franz 231
        void NewTDist();
294 Franz 232
        void NewSpGradient(double x1, double y1, double x2, double y2);
735 fschmid 233
        void toggleGradientEdit();
168 Franz 234
        void DoRevert();
235
        void handleLock();
4695 cbradney 236
        void handleLockSize();
168 Franz 237
        void handlePrint();
238
        void handlePathLine();
239
        void handlePathDist();
240
        void handlePathOffs();
4477 fschmid 241
        void handleFillRule();
5320 fschmid 242
        void handleOverprint();
168 Franz 243
        void ChProf(const QString& prn);
244
        void ChIntent();
245
        void NewName();
246
        void NewLanguage();
232 Franz 247
        void HandleTLines();
740 fschmid 248
        void setStartArrow(int id);
249
        void setEndArrow(int id);
6451 fschmid 250
        void setGroupTransparency(int trans);
251
        void setGroupBlending(int blend);
6722 fschmid 252
        void doGrouping();
248 Franz 253
 
1448 cbradney 254
protected slots:
1525 cbradney 255
        //virtual void reject();
1502 tsoots 256
        void mspinboxStartUserAction();
257
        void mspinboxFinishUserAction();
4110 cbradney 258
        void updateSpinBoxConstants();
1448 cbradney 259
 
3 paul 260
signals:
261
        void DocChanged();
5774 avox 262
        void NewParStyle(int);
263
        void NewAlignment(int);
264
        void NewEffects(int);
265
        void ShapeEdit();
266
        void NewFont(const QString&);
162 Franz 267
        void UpdtGui(int);
3 paul 268
 
269
protected:
5781 cbradney 270
        ScribusMainWindow *m_ScMW;
5257 cbradney 271
 
248 Franz 272
        QVBoxLayout* MpalLayout;
273
        QVBoxLayout* pageLayout;
274
        QVBoxLayout* pageLayout_2;
275
        QVBoxLayout* pageLayout_2a;
276
        QVBoxLayout* pageLayout_2b;
4477 fschmid 277
        QVBoxLayout* pageLayout_2c;
248 Franz 278
        QVBoxLayout* pageLayout_3;
279
        QVBoxLayout* pageLayout_4;
280
        QVBoxLayout* pageLayout_5;
281
        QVBoxLayout* pageLayout_5a;
282
        QVBoxLayout* pageLayout_5b;
5320 fschmid 283
        QVBoxLayout* pageLayout_6;
284
        QVBoxLayout* OverPLayout;
248 Franz 285
        QVBoxLayout* TLineLayout;
286
        QHBoxLayout* layout60;
287
        QGridLayout* Layout44;
288
        QHBoxLayout* Layout13;
289
        QGridLayout* Layout12;
290
        QHBoxLayout* layout47;
291
        QVBoxLayout* layout46;
292
        QGridLayout* layout41;
293
        QHBoxLayout* Layout1;
294
        QGridLayout* layout43;
295
        QVBoxLayout* Layout24;
296
        QHBoxLayout* Layout18;
297
        QHBoxLayout* Layout13_2;
298
        QGridLayout* Layout12_2;
299
        QHBoxLayout* NameGroupLayout;
300
        QGridLayout* GeoGroupLayout;
301
        QGridLayout* LayerGroupLayout;
302
        QHBoxLayout* RotationGroupLayout;
303
        QHBoxLayout* ShapeGroupLayout;
304
        QGridLayout* DistanceLayout;
305
        QGridLayout* DistanceLayout2;
4477 fschmid 306
        QVBoxLayout* DistanceLayout3;
248 Franz 307
        QGridLayout* GroupBox3aLayout;
308
        QVBoxLayout* GroupBoxCMLayout;
5620 jghali 309
        QVBoxLayout* textFlowOptionsLayout;
248 Franz 310
        QHBoxLayout* layout23;
311
        QHBoxLayout* layout24;
6451 fschmid 312
        QVBoxLayout* page_group_layout;
313
        QHBoxLayout* ShapeGroupLayout2;
314
        QGridLayout* Layout1t;
3540 cbradney 315
 
316
        NameWidget* NameEdit;
317
 
318
        QWidget* page;
319
        QWidget* page_2;
320
        QWidget* page_2a;
321
        QWidget* page_2b;
4477 fschmid 322
        QWidget* page_2c;
3540 cbradney 323
        QWidget* page_3;
324
        QWidget* page_4;
325
        QWidget* page_5;
326
        QWidget* page_5a;
327
        QWidget* page_5b;
5320 fschmid 328
        QWidget* page_6;
6451 fschmid 329
        QWidget* page_group;
3540 cbradney 330
 
331
        QLabel* xposLabel;
332
        QLabel* widthLabel;
333
        QLabel* yposLabel;
334
        QLabel* heightLabel;
335
        QLabel* rotationLabel;
336
        QLabel* basepointLabel;
337
        QLabel* LevelTxt;
338
        QLabel* SRect;
6451 fschmid 339
        QLabel* SRect2;
3540 cbradney 340
        QLabel* rndcornersLabel;
341
        QLabel* startoffsetLabel;
342
        QLabel* distfromcurveLabel;
343
        QLabel* topLabel;
344
        QLabel* columnsLabel;
345
        QLabel* bottomLabel;
346
        QLabel* leftLabel;
347
        QLabel* rightLabel;
348
        QLabel* trackingLabel;
349
        QLabel* fontsizeLabel;
350
        QLabel* yscaleLabel;
351
        QLabel* xscaleLabel;
352
        QLabel* xposImgLabel;
353
        QLabel* yposImgLabel;
354
        QLabel* linewidthLabel;
355
        QLabel* endingsLabel;
356
        QLabel* linetypeLabel;
357
        QLabel* StrokeIcon;
358
        QLabel* ShadeTxt2;
359
        QLabel* ShadeTxt1;
360
        QLabel* FillIcon;
361
        QLabel* styleLabel;
362
        QLabel* langLabel;
363
        QLabel* LineModeT;
364
        QLabel* TextCms1;
365
        QLabel* TextCms2;
366
        QLabel* edgesLabel;
367
        QLabel* ChBaseTxt;
368
        QLabel* ScaleTxt;
369
        QLabel* ScaleTxtV;
370
        QLabel* imgDPIXLabel;
371
        QLabel* imgDPIYLabel;
372
        QLabel* startArrowText;
6451 fschmid 373
        QLabel* endArrowText;
374
        QLabel* TransTxt;
375
        QLabel* TransTxt2;
3540 cbradney 376
 
377
 
5832 fschmid 378
//      LabelButton* colgapLabel;
379
        ScComboBox* colgapLabel;
3540 cbradney 380
        StyleSelect* SeStyle;
381
        AlignSelect* GroupAlign;
382
 
383
        LinkButton* keepImageWHRatioButton;
384
        LinkButton* keepFrameWHRatioButton;
385
        LinkButton* keepImageDPIRatioButton;
386
        LineCombo* LStyle;
387
 
388
        ShadeButton *PM1;
389
        ShadeButton *PM2;
390
        PageItem *CurItem;
391
        bool HaveDoc;
392
        bool HaveItem;
393
        ScribusDoc *doc;
394
        double Umrech;
395
        bool LMode;
396
        double RoVal;
397
 
398
 
399
        QButtonGroup* ShapeGroup;
6451 fschmid 400
        QButtonGroup* ShapeGroup2;
4477 fschmid 401
        QButtonGroup* Distance3;
5320 fschmid 402
        QButtonGroup* OverP;
3540 cbradney 403
 
404
        QToolButton* TabsButton;
405
 
406
        QToolButton* Zup;
407
        QToolButton* ZDown;
408
        QToolButton* ZTop;
409
        QToolButton* ZBottom;
410
 
411
        QToolBox* TabStack;
412
        QWidgetStack* TabStack2;
413
        QWidgetStack* TabStack3;
414
 
415
 
416
        QGroupBox* NameGroup;
417
        QGroupBox* GeoGroup;
418
        QGroupBox* LayerGroup;
419
        QGroupBox* Distance;
420
        QGroupBox* Distance2;
421
        QGroupBox* GroupBoxCM;
422
        QGroupBox* TLines;
423
        QGroupBox* GroupBox3a;
6451 fschmid 424
        QGroupBox* TransGroup;
3540 cbradney 425
 
5705 jghali 426
        QToolButton* textFlowDisabled;
427
        QToolButton* textFlowUsesFrameShape;
428
        QToolButton* textFlowUsesBoundingBox;
429
        QToolButton* textFlowUsesContourLine;
3540 cbradney 430
        QCheckBox* Aspect;
431
        QCheckBox* showcurveCheckBox;
432
        QCheckBox* TopLine;
433
        QCheckBox* LeftLine;
434
        QCheckBox* RightLine;
435
        QCheckBox* BottomLine;
436
 
437
        QComboBox* langCombo;
438
        QComboBox* InputP;
439
        QComboBox* MonitorI;
440
        QComboBox* LineMode;
4689 mrdocs 441
        ColorCombo* TxStroke;
3540 cbradney 442
        QComboBox* LJoinStyle;
443
        QComboBox* LEndStyle;
4689 mrdocs 444
        ColorCombo* TxFill;
6451 fschmid 445
        ScComboBox* blendMode;
3540 cbradney 446
 
447
        QListBox* StyledLine;
448
 
449
        MSpinBox* Width;
450
        MSpinBox* Xpos;
451
        MSpinBox* Ypos;
452
        MSpinBox* Height;
453
        MSpinBox* Rot;
454
        MSpinBox* RoundRect;
455
        MSpinBox* dGap;
456
        MSpinBox* DTop;
457
        MSpinBox* DBottom;
458
        MSpinBox* DLeft;
459
        MSpinBox* DRight;
460
        MSpinBox* Dist;
461
        MSpinBox* LineW;
462
        MSpinBox* Size;
463
        MSpinBox* LineSp;
464
        MSpinBox* Extra;
4821 cbradney 465
        MSpinBox* imageYOffsetSpinBox;
466
        MSpinBox* imageXOffsetSpinBox;
467
        MSpinBox* imageYScaleSpinBox;
468
        MSpinBox* imageXScaleSpinBox;
3540 cbradney 469
        MSpinBox* imgDpiX;
470
        MSpinBox* imgDpiY;
471
        MSpinBox* LSize;
472
 
473
        MSpinBox* ChScale;
474
        MSpinBox* ChScaleV;
475
        MSpinBox* ChBase;
476
        QSpinBox* DCol;
6451 fschmid 477
        QSpinBox* TransSpin;
3540 cbradney 478
 
479
        QRadioButton* TopLeft;
480
        QRadioButton* TopRight;
481
        QRadioButton* Center;
482
        QRadioButton* BottomLeft;
483
        QRadioButton* BottomRight;
484
        QRadioButton* FreeScale;
485
        QRadioButton* FrameScale;
4477 fschmid 486
        QRadioButton* EvenOdd;
487
        QRadioButton* NonZero;
5320 fschmid 488
        QRadioButton* KnockOut;
489
        QRadioButton* Overprint;
3540 cbradney 490
 
491
        QFrame* Line1;
492
        QFrame* Line2;
493
        QFrame* Line4;
494
        QFrame* Line5;
495
        QFrame* Line5_2;
496
        QFrame* Frame4;
497
 
498
        QPopupMenu* lineSpacingPop;
499
 
4963 cbradney 500
        QToolButton* linespacingButton;
6722 fschmid 501
        QToolButton* DoGroup;
502
        QToolButton* DoUnGroup;
3540 cbradney 503
        QToolButton* FlipH;
504
        QToolButton* FlipV;
505
        QToolButton* Locked;
506
        QToolButton* NoPrint;
507
        QToolButton* NoResize;
508
        QToolButton* Revert;
509
        QToolButton* EditShape;
6451 fschmid 510
        QToolButton* EditShape2;
6057 fschmid 511
        QToolButton* EditEffects;
512
        QToolButton* EditPSDProps;
3540 cbradney 513
 
514
 
1502 tsoots 515
        bool _userActionOn;
516
        UserActionSniffer *userActionSniffer;
517
        void installSniffer(MSpinBox *spinBox);
2207 cbradney 518
 
519
        int idXYZItem;
520
        int idShapeItem;
521
        int idTextItem;
522
        int idImageItem;
523
        int idLineItem;
524
        int idColorsItem;
6451 fschmid 525
        int idGroupItem;
3 paul 526
};
527
 
2969 craig 528
class SCRIBUS_API UserActionSniffer : public QObject
1502 tsoots 529
{
530
        Q_OBJECT
531
 
532
public:
533
        UserActionSniffer();
534
protected:
535
        bool eventFilter( QObject *o, QEvent *e );
536
signals:
537
        void actionStart();
538
        void actionEnd();
539
};
540
 
3 paul 541
#endif