Subversion Repositories Scribus

Rev

Rev 4832 | Rev 5184 | 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
*/
838 cbradney 7
#ifndef SCRIBUSSTRUCTS_H
8
#define SCRIBUSSTRUCTS_H
9
 
10
#ifdef HAVE_CONFIG_H
2688 craig 11
#include "scconfig.h"
838 cbradney 12
#endif
13
 
14
#include <qvaluestack.h>
15
#include <qvaluelist.h>
1429 subik 16
#include <qvaluevector.h>
838 cbradney 17
#include <qstring.h>
1208 cbradney 18
#include <qaction.h>
3933 avox 19
#include <qkeysequence.h>
839 cbradney 20
#include <vector>
838 cbradney 21
 
3878 cbradney 22
#include "sctextstruct.h"
838 cbradney 23
#include "scfonts.h"
24
#include "fpointarray.h"
25
#include "vgradient.h"
4084 cbradney 26
#include "annotation.h"
838 cbradney 27
#include "pageitem.h"
28
 
1065 cbradney 29
struct CopyPasteBuffer
1429 subik 30
{
1460 cbradney 31
        PageItem::ItemType PType;
844 fschmid 32
        double Xpos;
33
        double Ypos;
34
        double Width;
35
        double Height;
36
        double RadRect;
37
        int FrameType;
38
        bool ClipEdited;
39
        double Pwidth;
40
        QString Pcolor;
41
        QString Pcolor2;
42
        int Shade;
43
        int Shade2;
44
        QString GrColor;
45
        QString GrColor2;
46
        int GrShade;
47
        int GrShade2;
48
        VGradient fill_gradient;
49
        int GrType;
50
        double GrStartX;
51
        double GrStartY;
52
        double GrEndX;
53
        double GrEndY;
54
        QString TxtStroke;
55
        QString TxtFill;
56
        int ShTxtStroke;
57
        int ShTxtFill;
58
        int TxtScale;
2230 fschmid 59
        int TxtScaleV;
844 fschmid 60
        int TxTStyle;
2234 fschmid 61
        int TxTBase;
2247 fschmid 62
        int TxtShadowX;
63
        int TxtShadowY;
2257 fschmid 64
        int TxtOutline;
2262 fschmid 65
        int TxtUnderPos;
66
        int TxtUnderWidth;
2272 fschmid 67
        int TxtStrikePos;
68
        int TxtStrikeWidth;
844 fschmid 69
        double Rot;
70
        int PLineArt;
71
        int PLineJoin;
72
        int PLineEnd;
73
        double LineSp;
2309 fschmid 74
        int LineSpMode;
2382 fschmid 75
        int ExtraV;
844 fschmid 76
        double LocalScX;
77
        double LocalScY;
78
        double LocalX;
79
        double LocalY;
80
        bool PicArt;
1392 cbradney 81
        bool flippedH;
82
        bool flippedV;
844 fschmid 83
        bool isPrintable;
84
        bool isBookmark;
4084 cbradney 85
        bool m_isAnnotation;
86
        Annotation m_annotation;
87
        QString AnName;
844 fschmid 88
        double Extra;
89
        double TExtra;
90
        double BExtra;
91
        double RExtra;
92
        QString Pfile;
93
        QString Pfile2;
94
        QString Pfile3;
95
        QString IProfile;
96
        QString EmProfile;
97
        int IRender;
98
        bool UseEmbedded;
1065 cbradney 99
        QString itemText;
844 fschmid 100
        QPointArray Clip;
101
        FPointArray PoLine;
102
        FPointArray ContourLine;
103
        bool PoShow;
104
        double BaseOffs;
105
        bool Textflow;
106
        bool Textflow2;
107
        bool UseContour;
1065 cbradney 108
        int textAlignment;
844 fschmid 109
        QString IFont;
110
        int ISize;
111
        QValueStack<int> Groups;
112
        int LayerNr;
113
        bool ScaleType;
114
        bool AspectRatio;
115
        bool Locked;
116
        bool LockRes;
117
        double Transparency;
118
        double TranspStroke;
119
        bool Reverse;
120
        QString NamedLStyle;
121
        QString Language;
122
        QString guiLanguage;
123
        int Cols;
124
        double ColGap;
2282 fschmid 125
        QValueList<PageItem::TabRecord> TabValues;
844 fschmid 126
        QValueList<double> DashValues;
127
        double DashOffset;
128
        bool isTableItem;
129
        bool TopLine;
130
        bool LeftLine;
131
        bool RightLine;
132
        bool BottomLine;
133
        int LeftLinkID;
134
        int RightLinkID;
135
        int TopLinkID;
136
        int BottomLinkID;
137
        int startArrowIndex;
138
        int endArrowIndex;
1655 cbradney 139
        ObjAttrVector pageItemAttributes;
844 fschmid 140
};
838 cbradney 141
 
4579 cbradney 142
struct CopyContentsBuffer
143
{
144
        PageItem::ItemType sourceType;
145
        QString contentsFileName;
146
        double LocalScX;
147
        double LocalScY;
148
        double LocalX;
149
        double LocalY;
4831 cbradney 150
        double ItemX;
151
        double ItemY;
4581 cbradney 152
        QString inputProfile;
153
        bool useEmbedded;
154
        int renderingIntent;
4579 cbradney 155
};
156
 
5087 subik 157
/** \brief Pagemargins */
1065 cbradney 158
struct MarginStruct
1429 subik 159
{
3987 craig 160
        MarginStruct() : Top(0), Left(0), Bottom(0), Right(0) {}
161
        MarginStruct(double top, double left, double bottom, double right) :
162
                Top(top), Left(left), Bottom(bottom), Right(right) {}
844 fschmid 163
        double Top;
164
        double Left;
3987 craig 165
        double Bottom;
844 fschmid 166
        double Right;
167
};
838 cbradney 168
 
3016 fschmid 169
struct PageSet
170
{
171
        QString Name;
172
        int FirstPage;
173
        int Rows;
174
        int Columns;
175
        double GapHorizontal;
176
        double GapVertical;
177
        double GapBelow;
3026 fschmid 178
        QStringList pageNames;
3016 fschmid 179
};
180
 
1065 cbradney 181
struct ParagraphStyle
1429 subik 182
{
844 fschmid 183
        QString Vname;
2379 fschmid 184
        int LineSpaMode;      // 0 = fixed; 1 = Automatic; 2 = Adjust to Baseline Grid
844 fschmid 185
        double LineSpa;
1065 cbradney 186
        int textAlignment;
844 fschmid 187
        double Indent;
188
        double First;
1065 cbradney 189
        double gapBefore;
190
        double gapAfter;
844 fschmid 191
        QString Font;
192
        int FontSize;
2282 fschmid 193
        QValueList<PageItem::TabRecord> TabValues;
844 fschmid 194
        bool Drop;
195
        int DropLin;
2362 fschmid 196
        double DropDist;
844 fschmid 197
        int FontEffect;
198
        QString FColor;
199
        int FShade;
200
        QString SColor;
201
        int SShade;
202
        bool BaseAdj;
2273 fschmid 203
        int txtShadowX;
204
        int txtShadowY;
205
        int txtOutline;
206
        int txtUnderPos;
207
        int txtUnderWidth;
208
        int txtStrikePos;
209
        int txtStrikeWidth;
2379 fschmid 210
        int scaleH;
211
        int scaleV;
212
        int baseOff;
2434 fschmid 213
        int kernVal;
844 fschmid 214
};
838 cbradney 215
 
1065 cbradney 216
struct CMSData
844 fschmid 217
{
218
        QString DefaultMonitorProfile;
219
        QString DefaultPrinterProfile;
2984 fschmid 220
        QString DefaultImageRGBProfile;
221
        QString DefaultImageCMYKProfile;
222
        QString DefaultSolidColorProfile;
844 fschmid 223
        int ComponentsInput2;
224
        int ComponentsPrinter;
225
        int DefaultIntentMonitor;
2984 fschmid 226
        int DefaultIntentImages;
844 fschmid 227
        int DefaultIntentPrinter;
228
        bool CMSinUse;
229
        bool SoftProofOn;
230
        bool GamutCheck;
231
        bool BlackPoint;
232
} ;
838 cbradney 233
 
1065 cbradney 234
struct SingleLine
1429 subik 235
{
844 fschmid 236
        double Width;
237
        int Dash;
238
        int LineEnd;
239
        int LineJoin;
240
        QString Color;
241
        int Shade;
242
};
838 cbradney 243
 
1065 cbradney 244
struct ArrowDesc
844 fschmid 245
{
246
        QString name;
247
        bool userArrow;
248
        FPointArray points;
249
};
838 cbradney 250
 
844 fschmid 251
struct Layer
1429 subik 252
{
844 fschmid 253
        int LNr;
254
        int Level;
255
        QString Name;
1065 cbradney 256
        bool isPrintable;
257
        bool isViewable;
4832 fschmid 258
        bool isEditable;
844 fschmid 259
};
838 cbradney 260
 
1065 cbradney 261
struct PDFPresentationData
1429 subik 262
{
1065 cbradney 263
        int pageEffectDuration;
264
        int pageViewDuration;
265
        int effectType;
844 fschmid 266
        int Dm;
267
        int M;
268
        int Di;
269
};
838 cbradney 270
 
1065 cbradney 271
struct LPIData
1429 subik 272
{
844 fschmid 273
        int Frequency;
274
        int Angle;
275
        int SpotFunc;
276
};
838 cbradney 277
 
844 fschmid 278
struct Keys
1429 subik 279
{
1230 cbradney 280
        QString actionName;
1392 cbradney 281
        QString cleanMenuText;
3933 avox 282
        QKeySequence keySequence;
1392 cbradney 283
        int tableRow;
844 fschmid 284
};
838 cbradney 285
 
1429 subik 286
struct PrintOptions
844 fschmid 287
{
838 cbradney 288
        QString printer;
289
        QString filename;
290
        bool toFile;
291
        bool useAltPrintCommand;
292
        QString printerCommand;
293
        int PSLevel;
294
        bool outputSeparations;
295
        QString separationName;
3068 fschmid 296
        QStringList allSeparations;
297
        bool useSpotColors;
838 cbradney 298
        bool useColor;
299
        bool mirrorH;
300
        bool mirrorV;
301
        bool useICC;
302
        bool doGCR;
4649 fschmid 303
        bool doClip;
1861 fschmid 304
        bool setDevParam;
838 cbradney 305
        int copies;
306
        std::vector<int> pageNumbers;
307
        QString printerOptions;
308
};
309
 
844 fschmid 310
typedef QMap<QString,QString> ProfilesL;
1065 cbradney 311
typedef QValueVector<SingleLine> multiLine;
1460 cbradney 312
 
4512 cbradney 313
 
314
typedef enum {
315
        MissingGlyph=1,
316
        TextOverflow=2,
317
        ObjectNotOnPage=3,
318
        MissingImage=4,
319
        ImageDPITooLow=5,
320
        Transparency=6,
321
        PDFAnnotField=7,
322
        PlacedPDF=8
323
} PreflightError;
324
 
325
typedef QMap<PreflightError, int> errorCodes;
326
 
1065 cbradney 327
enum AppMode
328
{
2603 cbradney 329
        modeNormal,
330
        modeDrawShapes,
331
        modeStoryEditor,
332
        modeDrawPicture,
333
        modeDrawText,
334
        modeMagnifier,
335
        modeEdit,
336
        modeDrawLine,
337
        modeRotation,
338
        modeLinkFrames,
339
        modeUnlinkFrames,
340
        modeDrawRegularPolygon,
341
        modeDrawBezierLine,
342
        modeInsertPDFButton,
343
        modeInsertPDFTextfield,
344
        modeInsertPDFCheckbox,
345
        modeInsertPDFCombobox,
346
        modeInsertPDFListbox,
347
        modeInsertPDFTextAnnotation,
348
        modeInsertPDFLinkAnnotation,
349
        modeDrawFreehandLine,
350
        modeDrawTable,
351
        modePanning,
352
        modeMeasurementTool,
353
        modeEditGradientVectors,
354
        modeEyeDropper,
355
        modeCopyProperties
1065 cbradney 356
};
844 fschmid 357
 
2355 cbradney 358
struct AlignObjs
359
{
360
        int ObjNr;
361
        int Group;
362
        double x1;
363
        double y1;
364
        double x2;
365
        double y2;
2380 cbradney 366
        double width;
367
        double height;
2355 cbradney 368
        QPtrList<PageItem> Objects;
369
};
1641 cbradney 370
 
5087 subik 371
/*! \brief Human readable orientations */
3071 subik 372
enum PageOrientation
373
{
374
        portraitPage = 0,
375
        landscapePage = 1,
376
        customPage = 30
377
};
378
 
5087 subik 379
//! \brief Common type for guides list
380
typedef QValueList<double> Guides;
381
 
838 cbradney 382
#endif