Subversion Repositories Scribus

Rev

Rev 5880 | Rev 6451 | 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();
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();
230
        void NewTDist();
294 Franz 231
        void NewSpGradient(double x1, double y1, double x2, double y2);
735 fschmid 232
        void toggleGradientEdit();
168 Franz 233
        void DoRevert();
234
        void handleLock();
4695 cbradney 235
        void handleLockSize();
168 Franz 236
        void handlePrint();
237
        void handlePathLine();
238
        void handlePathDist();
239
        void handlePathOffs();
4477 fschmid 240
        void handleFillRule();
5320 fschmid 241
        void handleOverprint();
168 Franz 242
        void ChProf(const QString& prn);
243
        void ChIntent();
244
        void NewName();
245
        void NewLanguage();
232 Franz 246
        void HandleTLines();
740 fschmid 247
        void setStartArrow(int id);
248
        void setEndArrow(int id);
248 Franz 249
 
1448 cbradney 250
protected slots:
1525 cbradney 251
        //virtual void reject();
1502 tsoots 252
        void mspinboxStartUserAction();
253
        void mspinboxFinishUserAction();
4110 cbradney 254
        void updateSpinBoxConstants();
1448 cbradney 255
 
3 paul 256
signals:
257
        void DocChanged();
5774 avox 258
        void NewParStyle(int);
259
        void NewAlignment(int);
260
        void NewEffects(int);
261
        void ShapeEdit();
262
        void NewFont(const QString&);
162 Franz 263
        void UpdtGui(int);
3 paul 264
 
265
protected:
5781 cbradney 266
        ScribusMainWindow *m_ScMW;
5257 cbradney 267
 
248 Franz 268
        QVBoxLayout* MpalLayout;
269
        QVBoxLayout* pageLayout;
270
        QVBoxLayout* pageLayout_2;
271
        QVBoxLayout* pageLayout_2a;
272
        QVBoxLayout* pageLayout_2b;
4477 fschmid 273
        QVBoxLayout* pageLayout_2c;
248 Franz 274
        QVBoxLayout* pageLayout_3;
275
        QVBoxLayout* pageLayout_4;
276
        QVBoxLayout* pageLayout_5;
277
        QVBoxLayout* pageLayout_5a;
278
        QVBoxLayout* pageLayout_5b;
5320 fschmid 279
        QVBoxLayout* pageLayout_6;
280
        QVBoxLayout* OverPLayout;
248 Franz 281
        QVBoxLayout* TLineLayout;
282
        QHBoxLayout* layout60;
283
        QGridLayout* Layout44;
284
        QHBoxLayout* Layout13;
285
        QGridLayout* Layout12;
286
        QHBoxLayout* layout47;
287
        QVBoxLayout* layout46;
288
        QGridLayout* layout41;
289
        QHBoxLayout* Layout1;
290
        QGridLayout* layout43;
291
        QVBoxLayout* Layout24;
292
        QHBoxLayout* Layout18;
293
        QHBoxLayout* Layout13_2;
294
        QGridLayout* Layout12_2;
295
        QHBoxLayout* NameGroupLayout;
296
        QGridLayout* GeoGroupLayout;
297
        QGridLayout* LayerGroupLayout;
298
        QHBoxLayout* RotationGroupLayout;
299
        QHBoxLayout* ShapeGroupLayout;
300
        QGridLayout* DistanceLayout;
301
        QGridLayout* DistanceLayout2;
4477 fschmid 302
        QVBoxLayout* DistanceLayout3;
248 Franz 303
        QGridLayout* GroupBox3aLayout;
304
        QVBoxLayout* GroupBoxCMLayout;
5620 jghali 305
        QVBoxLayout* textFlowOptionsLayout;
248 Franz 306
        QHBoxLayout* layout23;
307
        QHBoxLayout* layout24;
3540 cbradney 308
 
309
        NameWidget* NameEdit;
310
 
311
        QWidget* page;
312
        QWidget* page_2;
313
        QWidget* page_2a;
314
        QWidget* page_2b;
4477 fschmid 315
        QWidget* page_2c;
3540 cbradney 316
        QWidget* page_3;
317
        QWidget* page_4;
318
        QWidget* page_5;
319
        QWidget* page_5a;
320
        QWidget* page_5b;
5320 fschmid 321
        QWidget* page_6;
3540 cbradney 322
 
323
        QLabel* xposLabel;
324
        QLabel* widthLabel;
325
        QLabel* yposLabel;
326
        QLabel* heightLabel;
327
        QLabel* rotationLabel;
328
        QLabel* basepointLabel;
329
        QLabel* LevelTxt;
330
        QLabel* SRect;
331
        QLabel* rndcornersLabel;
332
        QLabel* startoffsetLabel;
333
        QLabel* distfromcurveLabel;
334
        QLabel* topLabel;
335
        QLabel* columnsLabel;
336
        QLabel* bottomLabel;
337
        QLabel* leftLabel;
338
        QLabel* rightLabel;
339
        QLabel* trackingLabel;
340
        QLabel* fontsizeLabel;
341
        QLabel* yscaleLabel;
342
        QLabel* xscaleLabel;
343
        QLabel* xposImgLabel;
344
        QLabel* yposImgLabel;
345
        QLabel* linewidthLabel;
346
        QLabel* endingsLabel;
347
        QLabel* linetypeLabel;
348
        QLabel* StrokeIcon;
349
        QLabel* ShadeTxt2;
350
        QLabel* ShadeTxt1;
351
        QLabel* FillIcon;
352
        QLabel* styleLabel;
353
        QLabel* langLabel;
354
        QLabel* LineModeT;
355
        QLabel* TextCms1;
356
        QLabel* TextCms2;
357
        QLabel* edgesLabel;
358
        QLabel* ChBaseTxt;
359
        QLabel* ScaleTxt;
360
        QLabel* ScaleTxtV;
361
        QLabel* imgDPIXLabel;
362
        QLabel* imgDPIYLabel;
363
        QLabel* startArrowText;
364
        QLabel* endArrowText;  
365
 
366
 
5832 fschmid 367
//      LabelButton* colgapLabel;
368
        ScComboBox* colgapLabel;
3540 cbradney 369
        StyleSelect* SeStyle;
370
        AlignSelect* GroupAlign;
371
 
372
        LinkButton* keepImageWHRatioButton;
373
        LinkButton* keepFrameWHRatioButton;
374
        LinkButton* keepImageDPIRatioButton;
375
        LineCombo* LStyle;
376
 
377
        ShadeButton *PM1;
378
        ShadeButton *PM2;
379
        PageItem *CurItem;
380
        bool HaveDoc;
381
        bool HaveItem;
382
        ScribusDoc *doc;
383
        double Umrech;
384
        bool LMode;
385
        double RoVal;
386
 
387
 
388
        QButtonGroup* ShapeGroup;
4477 fschmid 389
        QButtonGroup* Distance3;
5320 fschmid 390
        QButtonGroup* OverP;
3540 cbradney 391
 
392
        QToolButton* TabsButton;
393
 
394
        QToolButton* Zup;
395
        QToolButton* ZDown;
396
        QToolButton* ZTop;
397
        QToolButton* ZBottom;
398
 
399
        QToolBox* TabStack;
400
        QWidgetStack* TabStack2;
401
        QWidgetStack* TabStack3;
402
 
403
 
404
        QGroupBox* NameGroup;
405
        QGroupBox* GeoGroup;
406
        QGroupBox* LayerGroup;
407
        QGroupBox* Distance;
408
        QGroupBox* Distance2;
409
        QGroupBox* GroupBoxCM;
410
        QGroupBox* TLines;
411
        QGroupBox* GroupBox3a;
412
 
5705 jghali 413
        QToolButton* textFlowDisabled;
414
        QToolButton* textFlowUsesFrameShape;
415
        QToolButton* textFlowUsesBoundingBox;
416
        QToolButton* textFlowUsesContourLine;
3540 cbradney 417
        QCheckBox* Aspect;
418
        QCheckBox* showcurveCheckBox;
419
        QCheckBox* TopLine;
420
        QCheckBox* LeftLine;
421
        QCheckBox* RightLine;
422
        QCheckBox* BottomLine;
423
 
424
        QComboBox* langCombo;
425
        QComboBox* InputP;
426
        QComboBox* MonitorI;
427
        QComboBox* LineMode;
4689 mrdocs 428
        ColorCombo* TxStroke;
3540 cbradney 429
        QComboBox* LJoinStyle;
430
        QComboBox* LEndStyle;
4689 mrdocs 431
        ColorCombo* TxFill;
3540 cbradney 432
 
433
        QListBox* StyledLine;
434
 
435
        MSpinBox* Width;
436
        MSpinBox* Xpos;
437
        MSpinBox* Ypos;
438
        MSpinBox* Height;
439
        MSpinBox* Rot;
440
        MSpinBox* RoundRect;
441
        MSpinBox* dGap;
442
        MSpinBox* DTop;
443
        MSpinBox* DBottom;
444
        MSpinBox* DLeft;
445
        MSpinBox* DRight;
446
        MSpinBox* Dist;
447
        MSpinBox* LineW;
448
        MSpinBox* Size;
449
        MSpinBox* LineSp;
450
        MSpinBox* Extra;
4821 cbradney 451
        MSpinBox* imageYOffsetSpinBox;
452
        MSpinBox* imageXOffsetSpinBox;
453
        MSpinBox* imageYScaleSpinBox;
454
        MSpinBox* imageXScaleSpinBox;
3540 cbradney 455
        MSpinBox* imgDpiX;
456
        MSpinBox* imgDpiY;
457
        MSpinBox* LSize;
458
 
459
        MSpinBox* ChScale;
460
        MSpinBox* ChScaleV;
461
        MSpinBox* ChBase;
462
        QSpinBox* DCol;
463
 
464
        QRadioButton* TopLeft;
465
        QRadioButton* TopRight;
466
        QRadioButton* Center;
467
        QRadioButton* BottomLeft;
468
        QRadioButton* BottomRight;
469
        QRadioButton* FreeScale;
470
        QRadioButton* FrameScale;
4477 fschmid 471
        QRadioButton* EvenOdd;
472
        QRadioButton* NonZero;
5320 fschmid 473
        QRadioButton* KnockOut;
474
        QRadioButton* Overprint;
3540 cbradney 475
 
476
        QFrame* Line1;
477
        QFrame* Line2;
478
        QFrame* Line4;
479
        QFrame* Line5;
480
        QFrame* Line5_2;
481
        QFrame* Frame4;
482
 
483
        QPopupMenu* lineSpacingPop;
484
 
4963 cbradney 485
        QToolButton* linespacingButton;
3540 cbradney 486
        QToolButton* FlipH;
487
        QToolButton* FlipV;
488
        QToolButton* Locked;
489
        QToolButton* NoPrint;
490
        QToolButton* NoResize;
491
        QToolButton* Revert;
492
        QToolButton* EditShape;
6057 fschmid 493
        QToolButton* EditEffects;
494
        QToolButton* EditPSDProps;
3540 cbradney 495
 
496
 
1502 tsoots 497
        bool _userActionOn;
498
        UserActionSniffer *userActionSniffer;
499
        void installSniffer(MSpinBox *spinBox);
2207 cbradney 500
 
501
        int idXYZItem;
502
        int idShapeItem;
503
        int idTextItem;
504
        int idImageItem;
505
        int idLineItem;
506
        int idColorsItem;
3 paul 507
};
508
 
2969 craig 509
class SCRIBUS_API UserActionSniffer : public QObject
1502 tsoots 510
{
511
        Q_OBJECT
512
 
513
public:
514
        UserActionSniffer();
515
protected:
516
        bool eventFilter( QObject *o, QEvent *e );
517
signals:
518
        void actionStart();
519
        void actionEnd();
520
};
521
 
3 paul 522
#endif