Subversion Repositories Scribus

Rev

Rev 5832 | Rev 6057 | 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;
3540 cbradney 122
        Spalette *Spal;
2508 fschmid 123
        FontComboH* Fonts;
740 fschmid 124
        ArrowChooser* startArrow;
125
        ArrowChooser* endArrow;
332 Franz 126
        QButtonGroup* RotationGroup;
5620 jghali 127
        QButtonGroup* textFlowOptions; 
3540 cbradney 128
 
3 paul 129
public slots:
5257 cbradney 130
        void setMainWindow(ScribusMainWindow *mw);
2199 cbradney 131
        void languageChange();
3691 cbradney 132
        void setDoc(ScribusDoc *d);
133
        void unsetDoc();
4738 cbradney 134
        void unsetItem();
3985 cbradney 135
        void setCurrentItem(PageItem *);
4131 cbradney 136
        void setMultipleSelection(bool);
168 Franz 137
        void NewSel(int nr);
138
        void SetCurItem(PageItem *i);
4619 cbradney 139
        void unitChange();
272 Franz 140
        void setLevel(uint l);
248 Franz 141
        void setXY(double x, double y);
142
        void setBH(double x, double y);
168 Franz 143
        void setR(double r);
144
        void setRR(double r);
145
        void setCols(int r, double g);
2309 fschmid 146
        void setLspMode(int id);
168 Franz 147
        void setLsp(double r);
148
        void setSize(int s);
4073 cbradney 149
        void setFontFace(QString);
2382 fschmid 150
        void setExtra(int e);
275 Franz 151
        void setDvals(double left, double top, double bottom, double right);
168 Franz 152
        void ChangeScaling();
153
        void setLvalue(double scx, double scy, double x, double y);
154
        void setSvalue(double s);
3934 cbradney 155
        void setLIvalue(Qt::PenStyle p, Qt::PenCapStyle pc, Qt::PenJoinStyle pj);
168 Franz 156
        void setStil(int s);
157
        void setAli(int e);
5774 avox 158
        void setParStyle(int e);
2247 fschmid 159
        void setShadowOffs(int x, int y);
2262 fschmid 160
        void setUnderline(int p, int w);
161
        void newUnderline();
2272 fschmid 162
        void setStrike(int p, int w);
163
        void newStrike();
2257 fschmid 164
        void setOutlineW(int x);
165
        void newOutlineW();
168 Franz 166
        void setTScale(int e);
167
        void NewTScale();
2230 fschmid 168
        void NewTScaleV();
2234 fschmid 169
        void NewTBase();
2230 fschmid 170
        void setTScaleV(int e);
2234 fschmid 171
        void setTBase(int e);
168 Franz 172
        void SetLineFormats(ScribusDoc *dd);
173
        void SetSTline(QListBoxItem *c);
2508 fschmid 174
        void NewTFont(QString);
168 Franz 175
        void newTxtFill();
176
        void newTxtStroke();
173 Franz 177
        void setActShade();
168 Franz 178
        void setActFarben(QString p, QString b, int shp, int shb);
179
        void ManageTabs();
4695 cbradney 180
        void setLocked(bool);
181
        void setSizeLocked(bool);
4699 cbradney 182
        void setPrintingEnabled(bool);
183
        void setFlippedH(bool);
184
        void setFlippedV(bool);
248 Franz 185
 
3 paul 186
private slots:
168 Franz 187
 
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();
168 Franz 212
        void NewLS();
213
        void NewLSty();
214
        void NewLJoin();
215
        void NewLEnd();
173 Franz 216
        void NewAli(int a);
168 Franz 217
        void setTypeStyle(int s);
2247 fschmid 218
        void newShadowOffs();
168 Franz 219
        void NewLMode();
220
        void DoLower();
221
        void DoRaise();
222
        void DoFront();
223
        void DoBack();
224
        void NewRotMode(int m);
2183 fschmid 225
        void DoFlow(int id);
168 Franz 226
        void MakeIrre(int f, int c, double *vals);
227
        void EditSh();
228
        void NewTDist();
294 Franz 229
        void NewSpGradient(double x1, double y1, double x2, double y2);
735 fschmid 230
        void toggleGradientEdit();
168 Franz 231
        void DoRevert();
232
        void handleLock();
4695 cbradney 233
        void handleLockSize();
168 Franz 234
        void handlePrint();
235
        void handlePathLine();
236
        void handlePathDist();
237
        void handlePathOffs();
4477 fschmid 238
        void handleFillRule();
5320 fschmid 239
        void handleOverprint();
168 Franz 240
        void ChProf(const QString& prn);
241
        void ChIntent();
242
        void NewName();
243
        void NewLanguage();
232 Franz 244
        void HandleTLines();
740 fschmid 245
        void setStartArrow(int id);
246
        void setEndArrow(int id);
248 Franz 247
 
1448 cbradney 248
protected slots:
1525 cbradney 249
        //virtual void reject();
1502 tsoots 250
        void mspinboxStartUserAction();
251
        void mspinboxFinishUserAction();
4110 cbradney 252
        void updateSpinBoxConstants();
1448 cbradney 253
 
3 paul 254
signals:
255
        void DocChanged();
5774 avox 256
        void NewParStyle(int);
257
        void NewAlignment(int);
258
        void NewEffects(int);
259
        void ShapeEdit();
260
        void NewFont(const QString&);
162 Franz 261
        void UpdtGui(int);
3 paul 262
 
263
protected:
5781 cbradney 264
        ScribusMainWindow *m_ScMW;
5257 cbradney 265
 
248 Franz 266
        QVBoxLayout* MpalLayout;
267
        QVBoxLayout* pageLayout;
268
        QVBoxLayout* pageLayout_2;
269
        QVBoxLayout* pageLayout_2a;
270
        QVBoxLayout* pageLayout_2b;
4477 fschmid 271
        QVBoxLayout* pageLayout_2c;
248 Franz 272
        QVBoxLayout* pageLayout_3;
273
        QVBoxLayout* pageLayout_4;
274
        QVBoxLayout* pageLayout_5;
275
        QVBoxLayout* pageLayout_5a;
276
        QVBoxLayout* pageLayout_5b;
5320 fschmid 277
        QVBoxLayout* pageLayout_6;
278
        QVBoxLayout* OverPLayout;
248 Franz 279
        QVBoxLayout* TLineLayout;
280
        QHBoxLayout* layout60;
281
        QGridLayout* Layout44;
282
        QHBoxLayout* Layout13;
283
        QGridLayout* Layout12;
284
        QHBoxLayout* layout47;
285
        QVBoxLayout* layout46;
286
        QGridLayout* layout41;
287
        QHBoxLayout* Layout1;
288
        QGridLayout* layout43;
289
        QVBoxLayout* Layout24;
290
        QHBoxLayout* Layout18;
291
        QHBoxLayout* Layout13_2;
292
        QGridLayout* Layout12_2;
293
        QHBoxLayout* NameGroupLayout;
294
        QGridLayout* GeoGroupLayout;
295
        QGridLayout* LayerGroupLayout;
296
        QHBoxLayout* RotationGroupLayout;
297
        QHBoxLayout* ShapeGroupLayout;
298
        QGridLayout* DistanceLayout;
299
        QGridLayout* DistanceLayout2;
4477 fschmid 300
        QVBoxLayout* DistanceLayout3;
248 Franz 301
        QGridLayout* GroupBox3aLayout;
302
        QVBoxLayout* GroupBoxCMLayout;
5620 jghali 303
        QVBoxLayout* textFlowOptionsLayout;
248 Franz 304
        QHBoxLayout* layout23;
305
        QHBoxLayout* layout24;
3540 cbradney 306
 
307
        NameWidget* NameEdit;
308
 
309
        QWidget* page;
310
        QWidget* page_2;
311
        QWidget* page_2a;
312
        QWidget* page_2b;
4477 fschmid 313
        QWidget* page_2c;
3540 cbradney 314
        QWidget* page_3;
315
        QWidget* page_4;
316
        QWidget* page_5;
317
        QWidget* page_5a;
318
        QWidget* page_5b;
5320 fschmid 319
        QWidget* page_6;
3540 cbradney 320
 
321
        QLabel* xposLabel;
322
        QLabel* widthLabel;
323
        QLabel* yposLabel;
324
        QLabel* heightLabel;
325
        QLabel* rotationLabel;
326
        QLabel* basepointLabel;
327
        QLabel* LevelTxt;
328
        QLabel* SRect;
329
        QLabel* rndcornersLabel;
330
        QLabel* startoffsetLabel;
331
        QLabel* distfromcurveLabel;
332
        QLabel* topLabel;
333
        QLabel* columnsLabel;
334
        QLabel* bottomLabel;
335
        QLabel* leftLabel;
336
        QLabel* rightLabel;
337
        QLabel* trackingLabel;
338
        QLabel* fontsizeLabel;
339
        QLabel* yscaleLabel;
340
        QLabel* xscaleLabel;
341
        QLabel* xposImgLabel;
342
        QLabel* yposImgLabel;
343
        QLabel* linewidthLabel;
344
        QLabel* endingsLabel;
345
        QLabel* linetypeLabel;
346
        QLabel* StrokeIcon;
347
        QLabel* ShadeTxt2;
348
        QLabel* ShadeTxt1;
349
        QLabel* FillIcon;
350
        QLabel* styleLabel;
351
        QLabel* langLabel;
352
        QLabel* LineModeT;
353
        QLabel* TextCms1;
354
        QLabel* TextCms2;
355
        QLabel* edgesLabel;
356
        QLabel* ChBaseTxt;
357
        QLabel* ScaleTxt;
358
        QLabel* ScaleTxtV;
359
        QLabel* imgDPIXLabel;
360
        QLabel* imgDPIYLabel;
361
        QLabel* startArrowText;
362
        QLabel* endArrowText;  
363
 
364
 
5832 fschmid 365
//      LabelButton* colgapLabel;
366
        ScComboBox* colgapLabel;
3540 cbradney 367
        StyleSelect* SeStyle;
368
        AlignSelect* GroupAlign;
369
 
370
        LinkButton* keepImageWHRatioButton;
371
        LinkButton* keepFrameWHRatioButton;
372
        LinkButton* keepImageDPIRatioButton;
373
        LineCombo* LStyle;
374
 
375
        ShadeButton *PM1;
376
        ShadeButton *PM2;
377
        PageItem *CurItem;
378
        bool HaveDoc;
379
        bool HaveItem;
380
        ScribusDoc *doc;
381
        double Umrech;
382
        bool LMode;
383
        double RoVal;
384
 
385
 
386
        QButtonGroup* ShapeGroup;
4477 fschmid 387
        QButtonGroup* Distance3;
5320 fschmid 388
        QButtonGroup* OverP;
3540 cbradney 389
 
390
        QToolButton* TabsButton;
391
 
392
        QToolButton* Zup;
393
        QToolButton* ZDown;
394
        QToolButton* ZTop;
395
        QToolButton* ZBottom;
396
 
397
        QToolBox* TabStack;
398
        QWidgetStack* TabStack2;
399
        QWidgetStack* TabStack3;
400
 
401
 
402
        QGroupBox* NameGroup;
403
        QGroupBox* GeoGroup;
404
        QGroupBox* LayerGroup;
405
        QGroupBox* Distance;
406
        QGroupBox* Distance2;
407
        QGroupBox* GroupBoxCM;
408
        QGroupBox* TLines;
409
        QGroupBox* GroupBox3a;
410
 
5705 jghali 411
        QToolButton* textFlowDisabled;
412
        QToolButton* textFlowUsesFrameShape;
413
        QToolButton* textFlowUsesBoundingBox;
414
        QToolButton* textFlowUsesContourLine;
3540 cbradney 415
        QCheckBox* Aspect;
416
        QCheckBox* showcurveCheckBox;
417
        QCheckBox* TopLine;
418
        QCheckBox* LeftLine;
419
        QCheckBox* RightLine;
420
        QCheckBox* BottomLine;
421
 
422
        QComboBox* langCombo;
423
        QComboBox* InputP;
424
        QComboBox* MonitorI;
425
        QComboBox* LineMode;
4689 mrdocs 426
        ColorCombo* TxStroke;
3540 cbradney 427
        QComboBox* LJoinStyle;
428
        QComboBox* LEndStyle;
4689 mrdocs 429
        ColorCombo* TxFill;
3540 cbradney 430
 
431
        QListBox* StyledLine;
432
 
433
        MSpinBox* Width;
434
        MSpinBox* Xpos;
435
        MSpinBox* Ypos;
436
        MSpinBox* Height;
437
        MSpinBox* Rot;
438
        MSpinBox* RoundRect;
439
        MSpinBox* dGap;
440
        MSpinBox* DTop;
441
        MSpinBox* DBottom;
442
        MSpinBox* DLeft;
443
        MSpinBox* DRight;
444
        MSpinBox* Dist;
445
        MSpinBox* LineW;
446
        MSpinBox* Size;
447
        MSpinBox* LineSp;
448
        MSpinBox* Extra;
4821 cbradney 449
        MSpinBox* imageYOffsetSpinBox;
450
        MSpinBox* imageXOffsetSpinBox;
451
        MSpinBox* imageYScaleSpinBox;
452
        MSpinBox* imageXScaleSpinBox;
3540 cbradney 453
        MSpinBox* imgDpiX;
454
        MSpinBox* imgDpiY;
455
        MSpinBox* LSize;
456
 
457
        MSpinBox* ChScale;
458
        MSpinBox* ChScaleV;
459
        MSpinBox* ChBase;
460
        QSpinBox* DCol;
461
 
462
        QRadioButton* TopLeft;
463
        QRadioButton* TopRight;
464
        QRadioButton* Center;
465
        QRadioButton* BottomLeft;
466
        QRadioButton* BottomRight;
467
        QRadioButton* FreeScale;
468
        QRadioButton* FrameScale;
4477 fschmid 469
        QRadioButton* EvenOdd;
470
        QRadioButton* NonZero;
5320 fschmid 471
        QRadioButton* KnockOut;
472
        QRadioButton* Overprint;
3540 cbradney 473
 
474
        QFrame* Line1;
475
        QFrame* Line2;
476
        QFrame* Line4;
477
        QFrame* Line5;
478
        QFrame* Line5_2;
479
        QFrame* Frame4;
480
 
481
        QPopupMenu* lineSpacingPop;
482
 
4963 cbradney 483
        QToolButton* linespacingButton;
3540 cbradney 484
        QToolButton* FlipH;
485
        QToolButton* FlipV;
486
        QToolButton* Locked;
487
        QToolButton* NoPrint;
488
        QToolButton* NoResize;
489
        QToolButton* Revert;
490
        QToolButton* EditShape;
491
 
492
 
1502 tsoots 493
        bool _userActionOn;
494
        UserActionSniffer *userActionSniffer;
495
        void installSniffer(MSpinBox *spinBox);
2207 cbradney 496
 
497
        int idXYZItem;
498
        int idShapeItem;
499
        int idTextItem;
500
        int idImageItem;
501
        int idLineItem;
502
        int idColorsItem;
3 paul 503
};
504
 
2969 craig 505
class SCRIBUS_API UserActionSniffer : public QObject
1502 tsoots 506
{
507
        Q_OBJECT
508
 
509
public:
510
        UserActionSniffer();
511
protected:
512
        bool eventFilter( QObject *o, QEvent *e );
513
signals:
514
        void actionStart();
515
        void actionEnd();
516
};
517
 
3 paul 518
#endif