Subversion Repositories Scribus

Rev

Rev 6606 | Rev 6954 | 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
/***************************************************************************
8
                          scribus.h  -  description
9
                             -------------------
10
    begin                : Fre Apr  6 21:09:31 CEST 2001
11
    copyright            : (C) 2001 by Franz Schmid
12
    email                : Franz.Schmid@altmuehlnet.de
13
 ***************************************************************************/
14
 
15
/***************************************************************************
16
 *                                                                         *
17
 *   This program is free software; you can redistribute it and/or modify  *
18
 *   it under the terms of the GNU General Public License as published by  *
19
 *   the Free Software Foundation; either version 2 of the License, or     *
20
 *   (at your option) any later version.                                   *
21
 *                                                                         *
22
 ***************************************************************************/
23
 
24
#ifndef SCRIBUS_H
25
#define SCRIBUS_H
26
 
516 fschmid 27
#define VERS13x
3 paul 28
 
326 Franz 29
// include from stl
30
#include <vector>
31
 
3 paul 32
// include files for QT
33
#include <qapplication.h>
34
#include <qmainwindow.h>
35
#include <qaction.h>
36
#include <qmenubar.h>
37
#include <qpopupmenu.h>
38
#include <qtoolbar.h>
39
#include <qtoolbutton.h>
40
#include <qstatusbar.h>
41
#include <qtooltip.h>
42
#include <qstring.h>
43
#include <qpixmap.h>
44
#include <qmessagebox.h>
45
#include <qpainter.h>
46
#include <qmap.h>
1208 cbradney 47
#include <qdict.h>
1478 cbradney 48
#include <qguardedptr.h>
3 paul 49
#include <qfont.h>
50
#include <qtimer.h>
51
#include <qintdict.h>
52
#include <qprogressdialog.h>
53
#include <qprogressbar.h>
54
#include <qworkspace.h>
55
#include <qptrlist.h>
56
#include <qclipboard.h>
1155 fschmid 57
#include <qprocess.h>
3 paul 58
 
59
// application specific includes
2969 craig 60
#include "scribusapi.h"
3 paul 61
#include "scribusview.h"
62
#include "scribusdoc.h"
1429 subik 63
#include "scribusstructs.h"
5846 jghali 64
#include "customfdialog.h"
1208 cbradney 65
 
3699 cbradney 66
class ActionManager;
67
class AlignDistributePalette;
169 Franz 68
class Autoforms;
3699 cbradney 69
class Biblio;
70
class BookPalette;
71
class CheckDocument;
5243 cbradney 72
 
169 Franz 73
class FontCombo;
5087 subik 74
class GuideManager;
4689 mrdocs 75
class ColorCombo;
3699 cbradney 76
class LayerPalette;
225 Franz 77
class LineFormate;
265 Franz 78
class Mpalette;
284 Franz 79
class Measurements;
1208 cbradney 80
class MenuManager;
3699 cbradney 81
class NodePalette;
82
class PageItem;
83
class PagePalette;
5504 subik 84
class Preferences;
2834 cbradney 85
class PrefsManager;
3251 craig 86
class PrefsContext;
3699 cbradney 87
class PSLib;
5502 subik 88
class ReformDoc;
3699 cbradney 89
class ScrAction;
5243 cbradney 90
class ScribusCore;
4026 craig 91
class ScribusMainWindow;
3627 cbradney 92
class ScribusQApp;
3699 cbradney 93
class ScribusWin;
4541 tsoots 94
class ScToolBar;
3699 cbradney 95
class SimpleState;
96
class StilFormate;
97
class StoryEditor;
4829 tsoots 98
class StyleManager;
3699 cbradney 99
class TOCGenerator;
100
class Tree;
101
class UndoManager;
102
class UndoPalette;
103
class UndoState;
5279 cbradney 104
class ModeToolBar;
105
class PDFToolBar;
3205 craig 106
 
4194 fschmid 107
extern SCRIBUS_API ScribusQApp* ScQApp;
3205 craig 108
 
3 paul 109
/**
4650 subik 110
  * \brief This Class is the base class for your application. It sets up the main
3 paul 111
  * window and providing a menubar, toolbar
112
  * and statusbar. For the main view, an instance of class ScribusView is
113
  * created which creates your view.
114
  */
4026 craig 115
class SCRIBUS_API ScribusMainWindow : public QMainWindow, public UndoObject
3 paul 116
{
162 Franz 117
        Q_OBJECT
1429 subik 118
 
168 Franz 119
public:
4650 subik 120
        /** \brief constructor */
4026 craig 121
        ScribusMainWindow();
4650 subik 122
        /** \brief destructor */
4208 craig 123
        ~ScribusMainWindow();
4650 subik 124
        /*!
125
        * \retval 0 - ok, 1 - no fonts, ...
126
        */
5243 cbradney 127
        int initScMW(bool primaryMainwWindow);
1525 cbradney 128
        bool warningVersion(QWidget *parent);
162 Franz 129
        void SetShortCut();
2833 fschmid 130
        void startUpDialog();
2859 cbradney 131
        void setDefaultPrinter(const QString&, const QString&, const QString&);
132
        void getDefaultPrinter(QString*, QString*, QString*);
3873 subik 133
 
5808 cbradney 134
        ScribusDoc *doFileNew(double width, double height, double topMargin, double leftMargin, double rightMargin, double bottomMargin, double columnDistance, double columnCount, bool autoTextFrames, int pageArrangement, int unitIndex, int firstPageLocation, int orientation, int firstPageNumber, const QString& defaultPageSize, bool requiresGUI, int pageCount=1, bool showView=true);
135
        ScribusDoc *newDoc(double width, double height, double topMargin, double leftMargin, double rightMargin, double bottomMargin, double columnDistance, double columnCount, bool autoTextFrames, int pageArrangement, int unitIndex, int firstPageLocation, int orientation, int firstPageNumber, const QString& defaultPageSize, bool requiresGUI, int pageCount=1, bool showView=true);
5800 fschmid 136
        bool DoFileSave(QString fn);
137
        void closeEvent(QCloseEvent *ce);
138
        void keyPressEvent(QKeyEvent *k);
139
        void keyReleaseEvent(QKeyEvent *k);
140
        void mouseReleaseEvent(QMouseEvent *m);
141
        void wheelEvent(QWheelEvent *w);
142
        void setTBvals(PageItem *currItem);
143
        void ShowSubs();
144
        void applyNewMaster(QString name);
145
        void updateRecent(QString fn);
146
        QString GetLang(QString inLang);
147
        bool getPDFDriver(const QString & fn, const QString & nam,
148
                                          int Components, const std::vector<int> & pageNs,
149
                                          const QMap<int,QPixmap> & thumbs);
150
        bool DoSaveAsEps(QString fn);
151
        QString CFileDialog(QString wDir = ".", QString caption = "", QString filter = "", QString defNa = "",
5846 jghali 152
                                                int optionFlags = fdExistingFiles, bool *docom = 0, bool *doFont = 0, bool *doProfiles = 0);
5800 fschmid 153
        /*! \brief Recalculate the colors after changing CMS settings.
154
        Call the appropriate document function and then update the GUI elements.
155
        \param dia optional progress widget */
156
        void recalcColors(QProgressBar *dia = 0);
157
        void SwitchWin();
158
        void RestoreBookMarks();
159
        void ReorgFonts();
160
 
161
        void emergencySave();
162
 
163
        /**
164
         * @brief Returns true if an arrow key is pressed down.
165
         * @return true if an arrow key is pressed down otherwise returns false
166
         */
167
        bool arrowKeyDown();
168
        /**
169
         * @brief Returns true if application is in object specific undo mode, other wise returns false.
170
         * @return true if application is in object specific undo mode, other wise returns false
171
         */
172
        bool isObjectSpecificUndo();
173
        void restore(UndoState* state, bool isUndo);
6578 cbradney 174
        void restoreGrouping(SimpleState *state, bool isUndo);
175
        void restoreUngrouping(SimpleState *state, bool isUndo);
5800 fschmid 176
        void restoreAddPage(SimpleState *state, bool isUndo);
177
        void restoreDeletePage(SimpleState *state, bool isUndo);
178
        struct CopyPasteBuffer Buffer;
179
        struct CopyContentsBuffer contentsBuffer;
180
        QString Buffer2;
181
        QString Buffer3;
182
        bool BuFromApp;
183
        int HaveDoc;
184
        PrefsContext* dirs;
185
        /** \brief view is the main widget which represents your working area. The View
186
         * class should handle all events of the view widget.  It is kept empty so
187
         * you can create your view according to your application's needs by
188
         * changing the view class.
189
         */
190
        ScribusView *view;
191
        /** \brief doc represents your actual document and is created only once. It keeps
192
         * information such as filename and does the serialization of your files.
193
         */
194
        ScribusDoc *doc;
195
 
196
 
197
        QProgressBar* mainWindowProgressBar;
198
        QLabel* mainWindowXPosLabel;
199
        QLabel* mainWindowXPosDataLabel;
200
        QLabel* mainWindowYPosLabel;
201
        QLabel* mainWindowYPosDataLabel;
202
        GuideManager *guidePalette;
203
        Mpalette *propertiesPalette;
204
        NodePalette *nodePalette;
205
        Tree *outlinePalette;
206
        Biblio *scrapbookPalette;
207
        LayerPalette* layerPalette;
208
        PagePalette *pagePalette;
209
        BookPalette *bookmarkPalette;
210
        Measurements* measurementPalette;
211
        CheckDocument * docCheckerPalette;
212
        UndoPalette* undoPalette;
213
        AlignDistributePalette *alignDistributePalette;
214
        StoryEditor* storyEditor;
215
        StoryEditor* CurrStED;
216
        QMap<QString,QString> Sprachen;
217
        QWorkspace *wsp;
218
        ScribusWin* ActWin;
5890 subik 219
        //QString PrefsPfad;
5800 fschmid 220
        QClipboard *ClipB;
221
        QString LoadEnc;
222
        bool ScriptRunning;
223
        Autoforms* SCustom;
224
        ModeToolBar* mainToolBar;
225
 
226
        QMap<QString, QStringList> InstLang;
227
        QMap<QString,QString> LangTransl;
228
 
229
        QProcess *ExternalApp;
230
 
231
        QMap<QString, QGuardedPtr<ScrAction> > scrActions;
232
        QMap<QString, QGuardedPtr<ScrAction> > scrRecentFileActions;
233
        QMap<QString, QGuardedPtr<ScrAction> > scrWindowsActions;
234
        QMap<QString, QGuardedPtr<ScrAction> > scrLayersActions;
235
        QMap<QString, QGuardedPtr<ScrAction> > scrRecentPasteActions;
236
        QDict<QActionGroup> scrActionGroups;
237
        MenuManager* scrMenuMgr;
238
        ActionManager* actionManager;
239
        QStringList RecentDocs;
240
 
241
public slots:
242
        void languageChange();
243
        void specialActionKeyEvent(QString actionName, int unicodevalue);
244
        void newView();
245
        void ToggleAllGuides();
246
        void ToggleAllPalettes();
247
        void slotStoryEditor();
248
        void slotCharSelect();
249
        void ImageEffects();
5843 jghali 250
        QString Collect(const bool compress = false, const bool withFonts = false, const bool withProfiles = false, const QString& newDirectory=QString::null);
5800 fschmid 251
        void AddBookMark(PageItem *ite);
252
        void DelBookMark(PageItem *ite);
253
        void BookMarkTxT(PageItem *ite);
254
        void StoreBookmarks();
255
        //void ManageGuides();
256
        //void setItemFillTransparency(double t);
257
        //void setItemLineTransparency(double t);
258
        void setStatusBarMousePosition(double xp, double yp);
259
        void setStatusBarInfoText(QString newText);
260
        bool DoFileClose();
261
        //bool DoSaveClose();
262
        void windowsMenuAboutToShow();
263
        void newActWin(QWidget *w);
264
        void closeActiveWindowMasterPageEditor();
265
        void updateActiveWindowCaption(const QString &newCaption);
266
        void windowsMenuActivated(int id);
267
        void UnDoAction();
268
        void RedoAction();
269
        //void doHyphenate();
270
        //void doDeHyphenate();
271
        void slotTest();
272
        void slotTest2();
273
        void PutScrap();
6410 fschmid 274
        void PutToPatterns();
5800 fschmid 275
        void changeLayer(int);
276
        void showLayer();
277
        //void LayerRemove(int l, bool dl = false);
278
        void ManageJava();
279
        void manageMasterPages(QString temp = "");
280
        void manageMasterPagesEnd();
281
        /** \brief generate a new document in the current view */
282
        bool slotFileNew();
283
        bool slotPageImport();
284
        bool loadPage(QString fileName, int Nr, bool Mpa, const QString& renamedPageName=QString::null);
285
 
286
        void slotGetContent();
287
        void slotGetContent2(); // kk2006
288
        /*!
289
        \author Franz Schmid
290
        \brief Appends a Textfile to the Text in the selected Textframe at the Cursorposition
291
        */
292
        void slotFileAppend();
293
 
294
        void removeRecent(QString fn);
295
        void loadRecent(QString fn);
296
        void rebuildRecentFileMenu();
297
        void rebuildRecentPasteMenu();
298
        void pasteRecent(QString fn);
299
        void rebuildLayersList();
300
        bool slotDocOpen();
301
        bool loadDoc(QString);
302
        /**
303
         * @brief Do post loading functions
304
         */
305
        bool postLoadDoc();
306
        void slotAutoSaved();
307
        /** \brief save a document */
308
        bool slotFileSave();
309
        /** \brief save a document under a different filename*/
310
        bool slotFileSaveAs();
311
        void slotFileRevert();
312
        /** \brief Sichert den Text eines Elements */
313
        void SaveText();
314
        /** \brief close the actual file */
315
        bool slotFileClose();
316
        /** \brief print the actual file */
317
        void slotFilePrint();
318
        void slotReallyPrint();
319
        /*!
320
        \author Franz Schmid
321
        \brief Generate and print PostScript from a doc
322
        \param options PrintOptions struct to control all settings
323
        \sa ScribusMainWindow::slotFilePrint()
324
        \retval bool True for success */
325
        bool doPrint(PrintOptions *options);
326
        /** \brief exits the application */
327
        void slotFileQuit();
328
        /** \brief put the marked text/object into the clipboard and remove
329
         * it from the document */
330
        void slotEditCut();
331
        /** \brief put the marked text/object into the clipboard*/
332
        void slotEditCopy();
333
        /** \brief paste the clipboard into the document*/
334
        void slotEditPaste();
335
        void slotEditCopyContents();
336
        void slotEditPasteContents(int absolute=0);
337
        void EnableTxEdit();
338
        void DisableTxEdit();
339
        void SelectAll();
340
        void deselectAll();
341
        void ClipChange();
342
        //void clearContents();
343
        /** \brief shows an about dialog*/
344
        void slotHelpAbout();
345
        void slotHelpAboutPlugins();
346
    void slotHelpAboutQt();
347
        void slotOnlineHelp();
348
        void ToggleTips();
349
        /** \brief Erzeugt eine neue Seite */
350
        void slotNewPageP(int wo, QString templ);
351
        void slotNewPageM();
352
        void slotNewMasterPage(int w, const QString &);
353
        void slotNewPage(int w, const QString& masterPageName=QString::null, bool mov = true);
354
        void duplicateToMasterPage();
355
        /** \brief Loescht die aktuelle Seite */
356
        void DeletePage();
357
        /**
358
         * \brief Delete pages
359
         * @param from First page to delete
360
         * @param to Last page to delete
361
         */
362
        void DeletePage(int from, int to);
363
        void DeletePage2(int pg);
364
        /** \brief Verschiebt Seiten */
365
        void MovePage();
366
        void CopyPage();
367
        void changePageMargins();
368
        /*!
369
        \author Craig Bradney
370
        \date Sun 30 Jan 2005
371
        \brief Zoom the view.
372
        Take the ScMW zoom actions and pass the view a %. Actions have whole number values like 20.0, 100.0, etc. Zoom to Fit uses -100 as a marker.
373
        \param zoomFactor Value stored in the ScrAction.
374
         */
375
        void slotZoom(double zoomFactor); // 20, 50, 100, or -100 for Fit
376
        /** \brief Schaltet Raender ein/aus */
377
        void ToggleMarks();
378
        void ToggleFrames();
379
        void ToggleLayerMarkers();
380
        void ToggleTextLinks();
381
        void ToggleTextControls();
382
        void ToggleColumnBorders();
383
        void ToggleRulers();
384
        void ToggleRulerMode();
385
        /* Schaltet Masspalette ein/aus */
386
        //void togglePropertiesPalette();
387
        /* Schaltet Uebersichtspalette ein/aus*/
388
        //void toggleOutlinePalette();
389
        //void toggleScrapbookPalette();
390
        //void toggleLayerPalette();
391
        void togglePagePalette();
392
        void setPagePalette(bool visible);
393
        //void toggleBookmarkPalette();
394
        void toggleUndoPalette();
395
        void setUndoPalette(bool visible);
396
        void toggleCheckPal();
397
        /** \brief Schaltet M_ViewShowImages ein/aus */
398
        void TogglePics();
399
        /** \brief Schaltet Raster ein/aus */
400
        void ToggleRaster();
401
        /** \brief Schaltet Rasterbenutzung ein/aus */
402
        void ToggleURaster();
403
        /** \brief Schaltet Rahmenbearbeitung ein/aus */
404
        void ToggleFrameEdit();
405
        void slotSelect();
406
        /** \brief Switch appMode
407
        \param mode TODO learn modes*/
408
        void setAppMode(int mode);
409
        void setAppModeByToggle(bool isOn, int newMode);
410
        /** \brief Neues Dokument erzeugt */
411
        void HaveNewDoc();
412
        void HaveNewSel(int Nr);
413
        void rebuildStyleMenu(int itemType);
414
        /** Dokument ist geaendert worden */
415
        void slotDocCh(bool reb = true);
416
        /** Setzt die Farbe */
417
        void setItemFarbe(int id);
418
        /** Setzt die Abstufung */
419
        void setItemShade(int id);
420
        /** Setzt den Font */
421
        void setItemFont(int id);
422
        void setItemFont2(int id);
423
        /** Korrigiert das FontMenu */
424
        void AdjustFontMenu(QString nf);
425
        void SetNewFont(const QString& nf);
426
        /** Setz die Zeichensatzgroesse */
427
        void setItemFSize(int id);
428
        void setFSizeMenu(int size);
429
        /** Farbeditor */
430
        void slotEditColors();
431
        /** Style Manager */
432
        void slotStyleManager();
433
        /*
434
        // Setzt den Pen-Tonwert
435
        void setPenShade(int sh);
436
        // Setzt den Brush-Tonwert
437
        void setBrushShade(int sh);
438
        void setGradFill(int typ);
439
        */
440
        void updtGradFill();
441
        /*
442
        // Setzt die Pen-Farbe
443
        void setPenFarbe(QString farbe);
444
        // Setzt die Brush-Farbe
445
        void setBrushFarbe(QString farbe);
446
        */
447
        void setCSMenu(QString f, QString l, int fs, int ls);
448
        /** Fragt nach den Farben */
449
        void GetBrushPen();
450
        /** Erzeugt einen Rahmen */
451
        void MakeFrame(int f, int c, double *vals);
452
        //** Loescht ein Element */
453
        //void DeleteObjekt();
454
        /** Dupliziert das Element */
455
        void ObjektDup();
456
        /** Dupliziert das Element mehrfach*/
457
        void ObjektDupM();
458
        /** \brief Refromat the document when user click "OK" in ReformDoc dialog.
459
        See docSetup() for more info. */
460
        bool slotDocSetup();
461
        void objectAttributes();
462
        void getImageInfo();
463
        void generateTableOfContents();
464
        void buildFontMenu();
465
        /*! \brief Change Preferences dialog.
466
        See prefsOrg for more info. It's very similar to docSetup/slotDocSetup. */
467
        void slotPrefsOrg();
468
        void slotEditStyles();
469
        void saveStyles(StilFormate *dia);
470
        void slotEditLineStyles();
471
        void saveLStyles(LineFormate *dia);
472
        void setNewAlignment(int a);
473
        void setNewParStyle(int a);
474
        void setAbsValue(int a);
475
        void selectItemsFromOutlines(PageItem *ite);
476
        void selectItemsFromOutlines(int Page, int Item, bool single = false);
477
        void selectPagesFromOutlines(int Page);
478
        void doPrintPreview();
479
        void printPreview();
480
        void SaveAsEps();
481
        void reallySaveAsEps();
482
        void SaveAsPDF();
483
        void doSaveAsPDF();
484
        void setMainWindowActive();
485
        void setItemHoch(int h);
486
        void setStilvalue(int s);
487
        void setItemTypeStyle(int id);
488
        void slotElemRead(QString Name, double x, double y, bool art, bool loca, ScribusDoc* docc, ScribusView* vie);
489
        void slotChangeUnit(int art, bool draw = true);
490
        void NoFrameEdit();
491
        /*!
492
         * @brief Apply master pages from the Apply Master Page dialog
493
         * @todo Make this work with real page numbers, negative numbers and document sections when they are implemented
494
        */
495
        void ApplyMasterPage();
6578 cbradney 496
        void Apply_MasterPage(QString pageName, int pageNumber, bool reb = true);
5800 fschmid 497
        void GroupObj(bool showLockDia = true);
498
        void UnGroupObj();
499
        void StatusPic();
500
        void ModifyAnnot();
501
        void ToggleGuides();
502
        void ToggleBase();
503
        void ToggleUGuides();
504
        void HaveRaster(bool art);
505
        void EditTabs();
506
        void SearchText();
507
        void imageEditorExited();
508
        /*! \brief call gimp and wait upon completion */
509
        void callImageEditor();
510
        void docCheckToggle(bool visible);
6715 cbradney 511
        //! \brief Scan a document for errors, return true on errors found
512
        bool scanDocument();
5800 fschmid 513
        void setUndoMode(bool isObjectSpecific);
514
        //! \brief Apply a Lorem Ipsum to the each item in a selection
515
        void insertSampleText();
516
        //void sendToLayer(int layerNumber);
517
        void updateItemLayerList();
518
        /*! \brief Apply changes from ReformDoc dialog.
519
        It's called from this->slotDocSetup() or from ReformDoc directly.
520
        \param dia a reference to the ReformDoc dialog */
521
        void docSetup(ReformDoc* dia);
522
        /*! \brief Apply changes from Preferences dialog.
523
        It's called from this->slotPrefsOrg() or from Preferences directly.
524
        \param dia a reference to the Preferences dialog */
525
        void prefsOrg(Preferences* dia);
6083 cbradney 526
        //! \brief Insert a frame friendly dialog
527
        void slotInsertFrame();
6368 fschmid 528
        //! \brief manages the documents patterns
529
        void managePatterns();
5800 fschmid 530
 
531
signals:
532
        void TextISize(int);
533
        void TextIFont(QString);
534
        void TextUSval(int);
535
        void TextStil(int);
536
        void TextFarben(QString, QString, int, int);
537
        void TextScale(int);
538
        void TextScaleV(int);
539
        void TextBase(int);
540
        void TextShadow(int, int);
541
        void TextOutline(int);
542
        void TextUnderline(int, int);
543
        void TextStrike(int, int);
544
 
545
protected:
546
        /*!
547
        \brief Receive key events from palettes such as palette hiding events. Possibly easier way but this is cleaner than before. No need to modify all those palettes and each new one in future.
548
         */
549
        bool eventFilter( QObject *o, QEvent *e );
550
        virtual void dragEnterEvent( QDragEnterEvent* e);
551
        virtual void dropEvent( QDropEvent* e);
552
 
553
private:
554
    /** init methods */
555
        void initSplash(bool showSplash);
556
        void initMenuBar(); // initMenuBar creates the menu_bar and inserts the menuitems
557
        void addDefaultWindowMenuItems(); // addDefaultWindowMenuItems adds the basic Windows menu items, excluding the actual list of windows
558
        void initStatusBar(); // setup the statusbar
559
        void initToolBars(); // setup the toolbars
560
        //Returns false when there are no fonts
561
        void initHyphenator();
562
        void initDefaultValues();
563
        void initKeyboardShortcuts();
564
        void initPalettes();
565
        void initScrapbook();
566
 
567
        void updateColorMenu(QProgressBar* progressBar=NULL);
568
 
569
        QLabel* mainWindowStatusLabel;
570
        QString recentFileMenuName;
571
        QString recentPasteMenuName;
572
        QString layerMenuName;
573
        QPixmap noIcon;
574
        ColorCombo *ColorMenC;
575
        /** ShapeMenu enthaelt die Rahmenformen */
576
        QPopupMenu *ShapeMenu;
577
        /** FontMenu enthaelt die Fonts */
578
        QPopupMenu *FontMenu;
579
        FontCombo* FontSub;
580
        ScToolBar *fileToolBar;
581
        ScToolBar *editToolBar;
582
        PDFToolBar* pdfToolBar;
583
        QToolButton* DatOpe;
584
        QToolButton* DatSav;
585
        QToolButton* DatClo;
586
        QToolButton* DatPri;
587
        QToolButton* DatPDF;
588
        QToolButton* DatNeu;
589
        int toolbarMenuTools;
590
        int toolbarMenuPDFTools;
591
        int viewToolbars;
592
        int viewPropertiesPalette;
593
        int viewOutlinePalette;
594
        int viewNodePalette;
595
        int viewBpal;
596
        int viewLayerPalette;
597
        int viewPagePalette;
598
        int viewBopal;
599
        int viewUndoPalette;
600
 
601
        bool palettesStatus[10];
602
        bool guidesStatus[12];
603
 
604
        bool keyrep;
605
        /** @brief Tells if an arrow key is pressed down */
606
        bool _arrowKeyDown;
607
        /** @brief tells the undo mode */
608
        bool objectSpecificUndo;
609
 
610
        void addNewPages(int wo, int where, int numPages, double height, double width, int orient, QString siz, bool mov, QStringList* basedOn = 0);
611
        QMap<int,QString> FontID;
612
 
613
        void *PSDriver;
614
        int DocNr;
615
        bool PrinterUsed;
616
        struct PDe {
617
                                        QString Pname;
618
                                        QString Dname;
619
                                        QString Command;
620
                                        QByteArray DevMode;
621
                                } PDef ;
622
        TOCGenerator *tocGenerator;
623
        int storedPageNum;
624
        int storedViewXCoor;
625
        int storedViewYCoor;
626
        double storedViewScale;
627
        StyleManager *styleManager;
628
        UndoManager *undoManager;
629
        PrefsManager *prefsManager;    
630
};
631
 
632
#endif