Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
838 cbradney 1
#ifndef SCRIBUSSTRUCTS_H
2
#define SCRIBUSSTRUCTS_H
3
 
4
#ifdef HAVE_CONFIG_H
2688 craig 5
#include "scconfig.h"
838 cbradney 6
#endif
7
 
8
#include <qvaluestack.h>
9
#include <qvaluelist.h>
1429 subik 10
#include <qvaluevector.h>
838 cbradney 11
#include <qstring.h>
1208 cbradney 12
#include <qaction.h>
839 cbradney 13
#include <vector>
838 cbradney 14
 
15
#include "scfonts.h"
2886 fschmid 16
#include "sccolor.h"
838 cbradney 17
#include "fpointarray.h"
18
#include "vgradient.h"
19
#include "pageitem.h"
1208 cbradney 20
#include "scraction.h"
838 cbradney 21
 
22
/* Struktur fuer Pageitem Text */
1065 cbradney 23
struct ScText
1429 subik 24
{
1065 cbradney 25
        bool cselect;
844 fschmid 26
        int csize;
1781 fschmid 27
        short cshade;
28
        short cshade2;
29
        short cstyle;
2933 fschmid 30
/**     Meaning of the values in cstyle
2434 fschmid 31
        1                       = Superscript
32
        2                       = Subscript
33
        4                       = Outline
34
        8                       = Underline
2185 fschmid 35
        16              = Strikethru
36
        32              = All Caps
37
        64              = Small Caps
2434 fschmid 38
        128             = Hyphenation possible here (Smart Hyphen)
2257 fschmid 39
        256     = Shadowed
2219 fschmid 40
        512     = Underline Words
2257 fschmid 41
        1024    = free, not used in the moment
2362 fschmid 42
        2048    = Char is a DropCap
2185 fschmid 43
        4096    = internal use in PageItem (Suppresses spaces when in Block alignment)
44
        8192    = Smart Hyphen visible at line end
45
        16384   = Start of Line
46
*/
1781 fschmid 47
        short cab;
48
        short cscale;
2230 fschmid 49
        short cscalev;
2234 fschmid 50
        short cbase;
2247 fschmid 51
        short cshadowx;
52
        short cshadowy;
2257 fschmid 53
        short coutline;
2262 fschmid 54
        short cunderpos;
55
        short cunderwidth;
2272 fschmid 56
        short cstrikepos;
57
        short cstrikewidth;
2382 fschmid 58
        short cextra;
1781 fschmid 59
        float xp;
60
        float yp;
61
        float PtransX;
62
        float PtransY;
63
        float PRot;
1789 fschmid 64
        Foi* cfont;
2434 fschmid 65
        PageItem* cembedded;
1065 cbradney 66
        QString ccolor;
67
        QString cstroke;
68
        QString ch;
2933 fschmid 69
 /** Special Characters used:
70
        QChar(24) =     Non breaking Hyphen
71
        QChar(25) =     Marks an inline Object
72
        QChar(26) =     Column Break
73
        QChar(27) =     Frame Break
74
        QChar(28) =     New Line, doesn't break Paragraph
75
        QChar(29) =     Non breaking Space
76
        QChar(30) =     Automatic Pagenumbering  */
844 fschmid 77
};
838 cbradney 78
 
1065 cbradney 79
struct CopyPasteBuffer
1429 subik 80
{
1460 cbradney 81
        PageItem::ItemType PType;
844 fschmid 82
        double Xpos;
83
        double Ypos;
84
        double Width;
85
        double Height;
86
        double RadRect;
87
        int FrameType;
88
        bool ClipEdited;
89
        double Pwidth;
90
        QString Pcolor;
91
        QString Pcolor2;
92
        int Shade;
93
        int Shade2;
94
        QString GrColor;
95
        QString GrColor2;
96
        int GrShade;
97
        int GrShade2;
98
        VGradient fill_gradient;
99
        int GrType;
100
        double GrStartX;
101
        double GrStartY;
102
        double GrEndX;
103
        double GrEndY;
104
        QString TxtStroke;
105
        QString TxtFill;
106
        int ShTxtStroke;
107
        int ShTxtFill;
108
        int TxtScale;
2230 fschmid 109
        int TxtScaleV;
844 fschmid 110
        int TxTStyle;
2234 fschmid 111
        int TxTBase;
2247 fschmid 112
        int TxtShadowX;
113
        int TxtShadowY;
2257 fschmid 114
        int TxtOutline;
2262 fschmid 115
        int TxtUnderPos;
116
        int TxtUnderWidth;
2272 fschmid 117
        int TxtStrikePos;
118
        int TxtStrikeWidth;
844 fschmid 119
        double Rot;
120
        int PLineArt;
121
        int PLineJoin;
122
        int PLineEnd;
123
        double LineSp;
2309 fschmid 124
        int LineSpMode;
2382 fschmid 125
        int ExtraV;
844 fschmid 126
        double LocalScX;
127
        double LocalScY;
128
        double LocalX;
129
        double LocalY;
130
        bool PicArt;
1392 cbradney 131
        bool flippedH;
132
        bool flippedV;
844 fschmid 133
        double BBoxX;
134
        double BBoxH;
135
        bool isPrintable;
136
        bool isBookmark;
137
        int BMnr;
138
        bool isAnnotation;
139
        int AnType;
140
        QString AnAction;
141
        QString An_E_act;
142
        QString An_X_act;
143
        QString An_D_act;
144
        QString An_Fo_act;
145
        QString An_Bl_act;
146
        QString An_K_act;
147
        QString An_F_act;
148
        QString An_V_act;
149
        QString An_C_act;
150
        QString An_Extern;
151
        int AnZiel;
152
        int AnActType;
153
        QString AnName;
154
        QString AnToolTip;
155
        QString AnRollOver;
156
        QString AnDown;
157
        QString AnBColor;
158
        int AnBwid;
159
        int AnBsty;
160
        int AnFeed;
161
        int AnFlag;
162
        int AnMaxChar;
163
        int AnVis;
164
        int AnFont;
165
        int AnChkStil;
166
        int AnFormat;
167
        bool AnIsChk;
168
        bool AnAAact;
169
        bool AnHTML;
170
        bool AnUseIcons;
171
        int AnIPlace;
172
        int AnScaleW;
173
        double Extra;
174
        double TExtra;
175
        double BExtra;
176
        double RExtra;
177
        QString Pfile;
178
        QString Pfile2;
179
        QString Pfile3;
180
        QString IProfile;
181
        QString EmProfile;
182
        int IRender;
183
        bool UseEmbedded;
1065 cbradney 184
        QString itemText;
844 fschmid 185
        QPointArray Clip;
186
        FPointArray PoLine;
187
        FPointArray ContourLine;
188
        bool PoShow;
189
        double BaseOffs;
190
        bool Textflow;
191
        bool Textflow2;
192
        bool UseContour;
1065 cbradney 193
        int textAlignment;
844 fschmid 194
        QString IFont;
195
        int ISize;
196
        QValueStack<int> Groups;
197
        int LayerNr;
198
        bool ScaleType;
199
        bool AspectRatio;
200
        bool Locked;
201
        bool LockRes;
202
        double Transparency;
203
        double TranspStroke;
204
        bool Reverse;
205
        QString NamedLStyle;
206
        QString Language;
207
        QString guiLanguage;
208
        int Cols;
209
        double ColGap;
2282 fschmid 210
        QValueList<PageItem::TabRecord> TabValues;
844 fschmid 211
        QValueList<double> DashValues;
212
        double DashOffset;
213
        bool isTableItem;
214
        bool TopLine;
215
        bool LeftLine;
216
        bool RightLine;
217
        bool BottomLine;
218
        int LeftLinkID;
219
        int RightLinkID;
220
        int TopLinkID;
221
        int BottomLinkID;
222
        int startArrowIndex;
223
        int endArrowIndex;
1655 cbradney 224
        ObjAttrVector pageItemAttributes;
844 fschmid 225
};
838 cbradney 226
 
1065 cbradney 227
  /** Pagemargins */
228
struct MarginStruct
1429 subik 229
{
844 fschmid 230
        double Top;
231
        double Left;
232
        double Right;
233
        double Bottom;
234
};
838 cbradney 235
 
3016 fschmid 236
struct PageSet
237
{
238
        QString Name;
239
        int FirstPage;
240
        int Rows;
241
        int Columns;
242
        double GapHorizontal;
243
        double GapVertical;
244
        double GapBelow;
3026 fschmid 245
        QStringList pageNames;
3016 fschmid 246
};
247
 
1065 cbradney 248
struct ParagraphStyle
1429 subik 249
{
844 fschmid 250
        QString Vname;
2379 fschmid 251
        int LineSpaMode;      // 0 = fixed; 1 = Automatic; 2 = Adjust to Baseline Grid
844 fschmid 252
        double LineSpa;
1065 cbradney 253
        int textAlignment;
844 fschmid 254
        double Indent;
255
        double First;
1065 cbradney 256
        double gapBefore;
257
        double gapAfter;
844 fschmid 258
        QString Font;
259
        int FontSize;
2282 fschmid 260
        QValueList<PageItem::TabRecord> TabValues;
844 fschmid 261
        bool Drop;
262
        int DropLin;
2362 fschmid 263
        double DropDist;
844 fschmid 264
        int FontEffect;
265
        QString FColor;
266
        int FShade;
267
        QString SColor;
268
        int SShade;
269
        bool BaseAdj;
2273 fschmid 270
        int txtShadowX;
271
        int txtShadowY;
272
        int txtOutline;
273
        int txtUnderPos;
274
        int txtUnderWidth;
275
        int txtStrikePos;
276
        int txtStrikeWidth;
2379 fschmid 277
        int scaleH;
278
        int scaleV;
279
        int baseOff;
2434 fschmid 280
        int kernVal;
844 fschmid 281
};
838 cbradney 282
 
1065 cbradney 283
struct CMSData
844 fschmid 284
{
285
        QString DefaultMonitorProfile;
286
        QString DefaultPrinterProfile;
2984 fschmid 287
        QString DefaultImageRGBProfile;
288
        QString DefaultImageCMYKProfile;
289
        QString DefaultSolidColorProfile;
844 fschmid 290
        int ComponentsInput2;
291
        int ComponentsPrinter;
292
        int DefaultIntentMonitor;
2984 fschmid 293
        int DefaultIntentImages;
844 fschmid 294
        int DefaultIntentPrinter;
295
        bool CMSinUse;
296
        bool SoftProofOn;
297
        bool GamutCheck;
298
        bool BlackPoint;
299
} ;
838 cbradney 300
 
1065 cbradney 301
struct SingleLine
1429 subik 302
{
844 fschmid 303
        double Width;
304
        int Dash;
305
        int LineEnd;
306
        int LineJoin;
307
        QString Color;
308
        int Shade;
309
};
838 cbradney 310
 
1065 cbradney 311
struct ArrowDesc
844 fschmid 312
{
313
        QString name;
314
        bool userArrow;
315
        FPointArray points;
316
};
838 cbradney 317
 
844 fschmid 318
struct Layer
1429 subik 319
{
844 fschmid 320
        int LNr;
321
        int Level;
322
        QString Name;
1065 cbradney 323
        bool isPrintable;
324
        bool isViewable;
844 fschmid 325
};
838 cbradney 326
 
1065 cbradney 327
struct PDFPresentationData
1429 subik 328
{
1065 cbradney 329
        int pageEffectDuration;
330
        int pageViewDuration;
331
        int effectType;
844 fschmid 332
        int Dm;
333
        int M;
334
        int Di;
335
};
838 cbradney 336
 
1065 cbradney 337
struct LPIData
1429 subik 338
{
844 fschmid 339
        int Frequency;
340
        int Angle;
341
        int SpotFunc;
342
};
838 cbradney 343
 
844 fschmid 344
struct Keys
1429 subik 345
{
1230 cbradney 346
        QString actionName;
1392 cbradney 347
        QString cleanMenuText;
348
        QString keySequence;
349
        int tableRow;
844 fschmid 350
};
838 cbradney 351
 
844 fschmid 352
/** Definition der Farbenlisten */
2886 fschmid 353
typedef QMap<QString,ScColor> ColorList;
838 cbradney 354
 
1235 fschmid 355
 
838 cbradney 356
 
1429 subik 357
struct PrintOptions
844 fschmid 358
{
838 cbradney 359
        QString printer;
360
        QString filename;
361
        bool toFile;
362
        bool useAltPrintCommand;
363
        QString printerCommand;
364
        int PSLevel;
365
        bool outputSeparations;
366
        QString separationName;
3068 fschmid 367
        QStringList allSeparations;
368
        bool useSpotColors;
838 cbradney 369
        bool useColor;
370
        bool mirrorH;
371
        bool mirrorV;
372
        bool useICC;
373
        bool doGCR;
1861 fschmid 374
        bool setDevParam;
838 cbradney 375
        int copies;
376
        std::vector<int> pageNumbers;
377
        QString printerOptions;
378
};
379
 
844 fschmid 380
typedef QMap<QString,QString> ProfilesL;
1065 cbradney 381
typedef QValueVector<SingleLine> multiLine;
1229 fschmid 382
typedef QMap<int, int> errorCodes;
1460 cbradney 383
 
2894 fschmid 384
enum PageLayout
385
{
386
        singlePage,
387
        doublePage,
388
        triplePage,
389
        quadroPage
390
};
391
 
1065 cbradney 392
enum AppMode
393
{
2603 cbradney 394
        modeNormal,
395
        modeDrawShapes,
396
        modeStoryEditor,
397
        modeDrawPicture,
398
        modeDrawText,
399
        modeMagnifier,
400
        modeEdit,
401
        modeDrawLine,
402
        modeRotation,
403
        modeLinkFrames,
404
        modeUnlinkFrames,
405
        modeDrawRegularPolygon,
406
        modeDrawBezierLine,
407
        modeInsertPDFButton,
408
        modeInsertPDFTextfield,
409
        modeInsertPDFCheckbox,
410
        modeInsertPDFCombobox,
411
        modeInsertPDFListbox,
412
        modeInsertPDFTextAnnotation,
413
        modeInsertPDFLinkAnnotation,
414
        modeDrawFreehandLine,
415
        modeDrawTable,
416
        modePanning,
417
        modeMeasurementTool,
418
        modeEditGradientVectors,
419
        modeEyeDropper,
420
        modeCopyProperties
1065 cbradney 421
};
844 fschmid 422
 
2355 cbradney 423
struct AlignObjs
424
{
425
        int ObjNr;
426
        int Group;
427
        double x1;
428
        double y1;
429
        double x2;
430
        double y2;
2380 cbradney 431
        double width;
432
        double height;
2355 cbradney 433
        QPtrList<PageItem> Objects;
434
};
1641 cbradney 435
 
3071 subik 436
/*! Human readable orientations */
437
enum PageOrientation
438
{
439
        portraitPage = 0,
440
        landscapePage = 1,
441
        customPage = 30
442
};
443
 
838 cbradney 444
#endif