Subversion Repositories Scribus

Rev

Rev 5781 | Rev 5880 | 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;
68 Franz 52
extern bool CMSavail;
5832 fschmid 53
/*
2969 craig 54
class SCRIBUS_API LabelButton : public QLabel
265 Franz 55
{
56
        Q_OBJECT
57
 
58
public:
59
        LabelButton(QWidget* parent, QString text1, QString text2);
60
        ~LabelButton() {};
61
        void setTexts(QString text1, QString text2);
62
        bool getState();
63
 
64
private:
65
        bool state;
66
        QString TextA;
67
        QString TextB;
68
 
69
signals:
70
        void clicked();
71
 
72
protected:
266 Franz 73
        virtual void enterEvent(QEvent*);
74
        virtual void leaveEvent(QEvent*);
75
        virtual void mousePressEvent(QMouseEvent*);
265 Franz 76
        virtual void mouseReleaseEvent(QMouseEvent *);
77
};
5832 fschmid 78
*/
2969 craig 79
class SCRIBUS_API NameWidget : public QLineEdit
68 Franz 80
{
248 Franz 81
        Q_OBJECT
68 Franz 82
 
83
public:
168 Franz 84
        NameWidget(QWidget* parent);
85
        ~NameWidget() {};
68 Franz 86
 
87
signals:
168 Franz 88
        void Leaved();
68 Franz 89
 
90
protected:
248 Franz 91
        virtual void focusOutEvent(QFocusEvent *);
68 Franz 92
};
93
 
2969 craig 94
class SCRIBUS_API Mpalette : public ScrPaletteBase
168 Franz 95
{
96
        Q_OBJECT
97
 
3 paul 98
public:
2834 cbradney 99
        Mpalette(QWidget* parent);
248 Franz 100
        ~Mpalette() {};
3540 cbradney 101
 
102
        void updateColorSpecialGradient();
103
        const VGradient getFillGradient();
104
        void updateColorList();
4704 cbradney 105
        void setGradientEditMode(bool);
168 Franz 106
        void updateCList();
107
        void updateCmsList();
5620 jghali 108
        void setTextFlowMode(PageItem::TextFlowMode mode);
168 Franz 109
        void ShowCMS();
4645 subik 110
        /*! \brief fills the langs combobox in language specific order
111
        \author 10/07/2004 - Petr Vanek - rewritten to fix #1185.
112
        Uses sortQStringList from utils.cpp - STL!
113
        \param langMap a structure with languages/hyphs*/
332 Franz 114
        void fillLangCombo(QMap<QString,QString> langMap);
1278 tsoots 115
        /** @brief Returns true if there is a user action going on at the moment of call. */
1286 tsoots 116
        bool userActionOn(); // not yet implemented!!! This is needed badly.
117
                         // When user releases the mouse button or arrow key, changes must be checked
118
                         // and if in ScribusView a groupTransaction has been started it must be also
119
                         // commmited
332 Franz 120
 
3540 cbradney 121
        Cpalette *Cpal;
332 Franz 122
        Autoforms* SCustom;
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
 
189
        void SelTab(int t);
190
        void NewX();
191
        void NewY();
192
        void NewW();
193
        void NewH();
194
        void NewR();
195
        void NewRR();
196
        void NewLsp();
265 Franz 197
        void HandleGapSwitch();
168 Franz 198
        void NewCols();
199
        void NewGap();
200
        void NewSize();
201
        void NewExtra();
4699 cbradney 202
        void handleFlipH();
203
        void handleFlipV();
168 Franz 204
        void ToggleKette();
205
        void HChange();
206
        void VChange();
2389 fschmid 207
        void ToggleKetteD();
208
        void HChangeD();
209
        void VChangeD();
168 Franz 210
        void NewLocalXY();
211
        void NewLocalSC();
2389 fschmid 212
        void NewLocalDpi();
168 Franz 213
        void NewLS();
214
        void NewLSty();
215
        void NewLJoin();
216
        void NewLEnd();
173 Franz 217
        void NewAli(int a);
168 Franz 218
        void setTypeStyle(int s);
2247 fschmid 219
        void newShadowOffs();
168 Franz 220
        void NewLMode();
221
        void DoLower();
222
        void DoRaise();
223
        void DoFront();
224
        void DoBack();
225
        void NewRotMode(int m);
2183 fschmid 226
        void DoFlow(int id);
168 Franz 227
        void MakeIrre(int f, int c, double *vals);
228
        void EditSh();
229
        void NewTDist();
294 Franz 230
        void NewSpGradient(double x1, double y1, double x2, double y2);
735 fschmid 231
        void toggleGradientEdit();
168 Franz 232
        void DoRevert();
233
        void handleLock();
4695 cbradney 234
        void handleLockSize();
168 Franz 235
        void handlePrint();
236
        void handlePathLine();
237
        void handlePathDist();
238
        void handlePathOffs();
4477 fschmid 239
        void handleFillRule();
5320 fschmid 240
        void handleOverprint();
168 Franz 241
        void ChProf(const QString& prn);
242
        void ChIntent();
243
        void NewName();
244
        void NewLanguage();
232 Franz 245
        void HandleTLines();
740 fschmid 246
        void setStartArrow(int id);
247
        void setEndArrow(int id);
248 Franz 248
 
1448 cbradney 249
protected slots:
1525 cbradney 250
        //virtual void reject();
1502 tsoots 251
        void mspinboxStartUserAction();
252
        void mspinboxFinishUserAction();
4110 cbradney 253
        void updateSpinBoxConstants();
1448 cbradney 254
 
3 paul 255
signals:
256
        void DocChanged();
5774 avox 257
        void NewParStyle(int);
258
        void NewAlignment(int);
259
        void NewEffects(int);
260
        void ShapeEdit();
261
        void NewFont(const QString&);
162 Franz 262
        void UpdtGui(int);
3 paul 263
 
264
protected:
5781 cbradney 265
        ScribusMainWindow *m_ScMW;
5257 cbradney 266
 
248 Franz 267
        QVBoxLayout* MpalLayout;
268
        QVBoxLayout* pageLayout;
269
        QVBoxLayout* pageLayout_2;
270
        QVBoxLayout* pageLayout_2a;
271
        QVBoxLayout* pageLayout_2b;
4477 fschmid 272
        QVBoxLayout* pageLayout_2c;
248 Franz 273
        QVBoxLayout* pageLayout_3;
274
        QVBoxLayout* pageLayout_4;
275
        QVBoxLayout* pageLayout_5;
276
        QVBoxLayout* pageLayout_5a;
277
        QVBoxLayout* pageLayout_5b;
5320 fschmid 278
        QVBoxLayout* pageLayout_6;
279
        QVBoxLayout* OverPLayout;
248 Franz 280
        QVBoxLayout* TLineLayout;
281
        QHBoxLayout* layout60;
282
        QGridLayout* Layout44;
283
        QHBoxLayout* Layout13;
284
        QGridLayout* Layout12;
285
        QHBoxLayout* layout47;
286
        QVBoxLayout* layout46;
287
        QGridLayout* layout41;
288
        QHBoxLayout* Layout1;
289
        QGridLayout* layout43;
290
        QVBoxLayout* Layout24;
291
        QHBoxLayout* Layout18;
292
        QHBoxLayout* Layout13_2;
293
        QGridLayout* Layout12_2;
294
        QHBoxLayout* NameGroupLayout;
295
        QGridLayout* GeoGroupLayout;
296
        QGridLayout* LayerGroupLayout;
297
        QHBoxLayout* RotationGroupLayout;
298
        QHBoxLayout* ShapeGroupLayout;
299
        QGridLayout* DistanceLayout;
300
        QGridLayout* DistanceLayout2;
4477 fschmid 301
        QVBoxLayout* DistanceLayout3;
248 Franz 302
        QGridLayout* GroupBox3aLayout;
303
        QVBoxLayout* GroupBoxCMLayout;
5620 jghali 304
        QVBoxLayout* textFlowOptionsLayout;
248 Franz 305
        QHBoxLayout* layout23;
306
        QHBoxLayout* layout24;
3540 cbradney 307
 
308
        NameWidget* NameEdit;
309
 
310
        QWidget* page;
311
        QWidget* page_2;
312
        QWidget* page_2a;
313
        QWidget* page_2b;
4477 fschmid 314
        QWidget* page_2c;
3540 cbradney 315
        QWidget* page_3;
316
        QWidget* page_4;
317
        QWidget* page_5;
318
        QWidget* page_5a;
319
        QWidget* page_5b;
5320 fschmid 320
        QWidget* page_6;
3540 cbradney 321
 
322
        QLabel* xposLabel;
323
        QLabel* widthLabel;
324
        QLabel* yposLabel;
325
        QLabel* heightLabel;
326
        QLabel* rotationLabel;
327
        QLabel* basepointLabel;
328
        QLabel* LevelTxt;
329
        QLabel* SRect;
330
        QLabel* rndcornersLabel;
331
        QLabel* startoffsetLabel;
332
        QLabel* distfromcurveLabel;
333
        QLabel* topLabel;
334
        QLabel* columnsLabel;
335
        QLabel* bottomLabel;
336
        QLabel* leftLabel;
337
        QLabel* rightLabel;
338
        QLabel* trackingLabel;
339
        QLabel* fontsizeLabel;
340
        QLabel* yscaleLabel;
341
        QLabel* xscaleLabel;
342
        QLabel* xposImgLabel;
343
        QLabel* yposImgLabel;
344
        QLabel* linewidthLabel;
345
        QLabel* endingsLabel;
346
        QLabel* linetypeLabel;
347
        QLabel* StrokeIcon;
348
        QLabel* ShadeTxt2;
349
        QLabel* ShadeTxt1;
350
        QLabel* FillIcon;
351
        QLabel* styleLabel;
352
        QLabel* langLabel;
353
        QLabel* LineModeT;
354
        QLabel* TextCms1;
355
        QLabel* TextCms2;
356
        QLabel* edgesLabel;
357
        QLabel* ChBaseTxt;
358
        QLabel* ScaleTxt;
359
        QLabel* ScaleTxtV;
360
        QLabel* imgDPIXLabel;
361
        QLabel* imgDPIYLabel;
362
        QLabel* startArrowText;
363
        QLabel* endArrowText;  
364
 
365
 
5832 fschmid 366
//      LabelButton* colgapLabel;
367
        ScComboBox* colgapLabel;
3540 cbradney 368
        StyleSelect* SeStyle;
369
        AlignSelect* GroupAlign;
370
 
371
        LinkButton* keepImageWHRatioButton;
372
        LinkButton* keepFrameWHRatioButton;
373
        LinkButton* keepImageDPIRatioButton;
374
        LineCombo* LStyle;
375
 
376
        ShadeButton *PM1;
377
        ShadeButton *PM2;
378
        PageItem *CurItem;
379
        bool HaveDoc;
380
        bool HaveItem;
381
        ScribusDoc *doc;
382
        double Umrech;
383
        bool LMode;
384
        double RoVal;
385
 
386
 
387
        QButtonGroup* ShapeGroup;
4477 fschmid 388
        QButtonGroup* Distance3;
5320 fschmid 389
        QButtonGroup* OverP;
3540 cbradney 390
 
391
        QToolButton* TabsButton;
392
 
393
        QToolButton* Zup;
394
        QToolButton* ZDown;
395
        QToolButton* ZTop;
396
        QToolButton* ZBottom;
397
 
398
        QToolBox* TabStack;
399
        QWidgetStack* TabStack2;
400
        QWidgetStack* TabStack3;
401
 
402
 
403
        QGroupBox* NameGroup;
404
        QGroupBox* GeoGroup;
405
        QGroupBox* LayerGroup;
406
        QGroupBox* Distance;
407
        QGroupBox* Distance2;
408
        QGroupBox* GroupBoxCM;
409
        QGroupBox* TLines;
410
        QGroupBox* GroupBox3a;
411
 
5705 jghali 412
        QToolButton* textFlowDisabled;
413
        QToolButton* textFlowUsesFrameShape;
414
        QToolButton* textFlowUsesBoundingBox;
415
        QToolButton* textFlowUsesContourLine;
3540 cbradney 416
        QCheckBox* Aspect;
417
        QCheckBox* showcurveCheckBox;
418
        QCheckBox* TopLine;
419
        QCheckBox* LeftLine;
420
        QCheckBox* RightLine;
421
        QCheckBox* BottomLine;
422
 
423
        QComboBox* langCombo;
424
        QComboBox* InputP;
425
        QComboBox* MonitorI;
426
        QComboBox* LineMode;
4689 mrdocs 427
        ColorCombo* TxStroke;
3540 cbradney 428
        QComboBox* LJoinStyle;
429
        QComboBox* LEndStyle;
4689 mrdocs 430
        ColorCombo* TxFill;
3540 cbradney 431
 
432
        QListBox* StyledLine;
433
 
434
        MSpinBox* Width;
435
        MSpinBox* Xpos;
436
        MSpinBox* Ypos;
437
        MSpinBox* Height;
438
        MSpinBox* Rot;
439
        MSpinBox* RoundRect;
440
        MSpinBox* dGap;
441
        MSpinBox* DTop;
442
        MSpinBox* DBottom;
443
        MSpinBox* DLeft;
444
        MSpinBox* DRight;
445
        MSpinBox* Dist;
446
        MSpinBox* LineW;
447
        MSpinBox* Size;
448
        MSpinBox* LineSp;
449
        MSpinBox* Extra;
4821 cbradney 450
        MSpinBox* imageYOffsetSpinBox;
451
        MSpinBox* imageXOffsetSpinBox;
452
        MSpinBox* imageYScaleSpinBox;
453
        MSpinBox* imageXScaleSpinBox;
3540 cbradney 454
        MSpinBox* imgDpiX;
455
        MSpinBox* imgDpiY;
456
        MSpinBox* LSize;
457
 
458
        MSpinBox* ChScale;
459
        MSpinBox* ChScaleV;
460
        MSpinBox* ChBase;
461
        QSpinBox* DCol;
462
 
463
        QRadioButton* TopLeft;
464
        QRadioButton* TopRight;
465
        QRadioButton* Center;
466
        QRadioButton* BottomLeft;
467
        QRadioButton* BottomRight;
468
        QRadioButton* FreeScale;
469
        QRadioButton* FrameScale;
4477 fschmid 470
        QRadioButton* EvenOdd;
471
        QRadioButton* NonZero;
5320 fschmid 472
        QRadioButton* KnockOut;
473
        QRadioButton* Overprint;
3540 cbradney 474
 
475
        QFrame* Line1;
476
        QFrame* Line2;
477
        QFrame* Line4;
478
        QFrame* Line5;
479
        QFrame* Line5_2;
480
        QFrame* Frame4;
481
 
482
        QPopupMenu* lineSpacingPop;
483
 
4963 cbradney 484
        QToolButton* linespacingButton;
3540 cbradney 485
        QToolButton* FlipH;
486
        QToolButton* FlipV;
487
        QToolButton* Locked;
488
        QToolButton* NoPrint;
489
        QToolButton* NoResize;
490
        QToolButton* Revert;
491
        QToolButton* EditShape;
492
 
493
 
1502 tsoots 494
        bool _userActionOn;
495
        UserActionSniffer *userActionSniffer;
496
        void installSniffer(MSpinBox *spinBox);
2207 cbradney 497
 
498
        int idXYZItem;
499
        int idShapeItem;
500
        int idTextItem;
501
        int idImageItem;
502
        int idLineItem;
503
        int idColorsItem;
3 paul 504
};
505
 
2969 craig 506
class SCRIBUS_API UserActionSniffer : public QObject
1502 tsoots 507
{
508
        Q_OBJECT
509
 
510
public:
511
        UserActionSniffer();
512
protected:
513
        bool eventFilter( QObject *o, QEvent *e );
514
signals:
515
        void actionStart();
516
        void actionEnd();
517
};
518
 
3 paul 519
#endif