diff options
Diffstat (limited to 'kpresenter/KPrView.h')
-rw-r--r-- | kpresenter/KPrView.h | 1228 |
1 files changed, 1228 insertions, 0 deletions
diff --git a/kpresenter/KPrView.h b/kpresenter/KPrView.h new file mode 100644 index 00000000..01c67e16 --- /dev/null +++ b/kpresenter/KPrView.h @@ -0,0 +1,1228 @@ +/* This file is part of the KDE project + Copyright (C) 1998, 1999 Reginald Stadlbauer <reggie@kde.org> + Copyright (C) 2005-2006 Thorsten Zachmann <zachmann@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#ifndef kpresenter_view_h +#define kpresenter_view_h + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <qguardedptr.h> +#include <qtimer.h> +#include <qdatetime.h> + +#include <KoView.h> +#include "global.h" +#include <KoBrush.h> +#include <KoPen.h> +#include <KoRuler.h> + +class QPopupMenu; +class QSplitter; +class QLabel; +class DCOPObject; +class KPrView; +class KPrBackDialog; +class KoRuler; +class QScrollBar; +class AFChoose; +class KPrPropertyEditor; +class KPrPgConfDia; +class KPrSlideTransitionDia; +class KPrRotationDialogImpl; +class KPrShadowDialogImpl; +class KPrImageEffectDia; +class ConfPieDia; +class ConfRectDia; +class ConfPolygonDia; +class ConfPictureDia; +class KPrPresDurationDia; +class QToolButton; +class KPrSideBar; +class KPrNoteBar; + +class KAction; +class KActionMenu; +class KToggleAction; +class TKSelectColorAction; +class KoPartSelectAction; +class KoPicture; +class KoParagStyle; +class KoLineStyleAction; +class KoLineWidthAction; +class KoRect; + +class KoCharSelectDia; +class KoTextFormat; +class KoTextObject; +class KoTextZoomHandler; + +class KCommand; +class KMacroCommand; +class KFontSizeAction; +class KColorAction; +class KSelectAction; +class KFontAction; +class KoParagCounter; +class KActionMenu; +class KoSearchContext; +class KPrFindReplace; +class KPrCanvas; +class KoFontDia; +class KoParagDia; +class KPrObject; +class KPrPixmapObject; +class KPrDocument; +class KPrPage; +class KPrTextObject; +class KoTextIterator; +class KStatusBarLabel; + +class KoSpell; +#include <kspell2/broker.h> +namespace KSpell2 { + class Dialog; +} + +class PageBase : public QWidget +{ +public: + PageBase( QWidget *parent, KPrView *v ) : QWidget( parent ), view( v ) {} + void resizeEvent( QResizeEvent *e ); + +private: + KPrView *view; + +}; + + +class KPrView : public KoView +{ + friend class PageBase; + Q_OBJECT + +public: + KPrView( KPrDocument* _doc, QWidget *_parent = 0, const char *_name = 0 ); + ~KPrView(); + + void initGui(); + virtual DCOPObject* dcopObject(); + + // for dcop interface + int getCurrentPresPage() const; + int getCurrentPresStep() const; + int getPresStepsOfPage() const; + int getNumPresPages() const; + bool gotoPresPage( int pg ); + + virtual void setupPrinter( KPrinter &printer ); + virtual void print( KPrinter &printer ); + + void showFormat( const KoTextFormat &format ); + + void showZoom( int zoom ); // show a zoom value in the combo + void setZoom( int zoom, bool updateViews ); // change the zoom value + void changeZoomMenu( int zoom=-1); + void showStyle( const QString & styleName ); + void updateStyleList(); + + KoTextZoomHandler *zoomHandler() const; + + //used this function when we when to print/create web presentation etc... + //=>we unzoom it. + void unZoomDocument(int &dpiX,int &dpiY); + void zoomDocument(int zoom); + + //refresh footer/header button when we make undo/redo show/hide header/footer + void updateHeaderFooterButton(); + void updateDisplayObjectMasterPageButton(); + + void updateDisplayBackgroundButton(); + virtual int leftBorder() const { return canvas()->mapTo(const_cast<KPrView *>(this), QPoint(0,0)).x(); }; + virtual int rightBorder() const { return width() - canvas()->mapTo(const_cast<KPrView *>(this), QPoint(canvas()->width(), 0)).x(); }; + virtual int topBorder() const { return canvas()->mapTo(const_cast<KPrView *>(this), QPoint(0,0)).y(); }; + virtual int bottomBorder() const { return height() - canvas()->mapTo(const_cast<KPrView *>(this), QPoint(0, canvas()->height())).y(); }; + + void updateGuideLineButton(); + + void updateGridButton(); + void savePicture( const QString& oldName, KoPicture& picture); + void savePicture( KPrPixmapObject* obj ); + + void insertFile(const QString &path); + void testAndCloseAllTextObjectProtectedContent(); + void updateRulerInProtectContentMode(); + QPtrList<KAction> listOfResultOfCheckWord( const QString &word ); + + /** + * Returns the KPresenter global KSpell2 Broker object. + */ + KSpell2::Broker *broker() const; + bool editMaster() const { return m_editMaster;} + +signals: + void currentPageChanged( int ); + void presentationFinished(); + +public slots: + // edit menu + void editCut(); + void editCopy(); + void editPaste(); + void editDelete(); + void editSelectAll(); + void editDeSelectAll(); + void editCopyPage(); + void editDuplicatePage(); + void editDelPage(); + void editFind(); + void editReplace(); + + // view menu + void viewShowSideBar(); + void viewShowNoteBar(); + void viewSlideMaster(); + void viewZoom( const QString &s ); + + void viewFooter(); + void viewHeader(); + void insertComment(); + void editComment(); + + void viewGuideLines(); + + void viewGrid(); + + void viewSnapToGrid(); + + // insert menu + void insertPage(); + void insertPicture(); + void insertPicture(const QString &file); + void insertSpecialChar(); + + // tools menu + void toolsMouse(); + void toolsRotate(); + void toolsZoom(); + void toolsLine(); + void toolsLinePopup(); + void toolsShapePopup(); + void toolsRectangle(); + void toolsCircleOrEllipse(); + void toolsPie(); + void toolsText(); + void toolsAutoform(); + void toolsDiagramm(); + void toolsTable(); + void toolsFormula(); + void toolsObject(); + void toolsFreehand(); + void toolsPolyline(); + void toolsQuadricBezierCurve(); + void toolsCubicBezierCurve(); + void toolsConvexOrConcavePolygon(); + void toolsClosedLinePopup(); + void toolsClosedFreehand(); + void toolsClosedPolyline(); + void toolsClosedQuadricBezierCurve(); + void toolsClosedCubicBezierCurve(); + + // extra menu + void extraProperties(); + void extraRaise(); + void extraLower(); + void extraRotate(); + void extraSendBackward(); + void extraBringForward(); + void extraArrangePopup(); + + void extraShadow(); + void extraBackground(); + void extraLayout(); + void extraConfigure(); + void extraLineBegin(); + void extraLineEnd(); + void extraWebPres(); + void extraMSPres(); + void extraCreateTemplate(); + void extraDefaultTemplate(); + void extraGroup(); + void extraUnGroup(); + void extraPenStyle( int newStyle ); + void extraPenWidth( double newWidth ); + + void configureCompletion(); + + void extraAlignObjLeft(); + void extraAlignObjCenterH(); + void extraAlignObjRight(); + void extraAlignObjTop(); + void extraAlignObjCenterV(); + void extraAlignObjBottom(); + + // screen menu + void screenConfigPages(); + void screenAssignEffect(); + void screenTransEffect(); + void screenStart(); + void screenStartFromFirst(); + void screenStop(); + void screenPause(); + void screenFirst(); + /** + * Go to previous step of the presentation. + * gotoPreviousPage: if is set to true go to beginning of the + * previous page. + */ + void screenPrev( bool gotoPreviousPage = false ); + /** + * Go to the next step of the presentation. + * gotoNextPage: if is set to true go to beginning of the + * next page. + */ + void screenNext( bool gotoNextPage = false ); + void screenLast(); + void screenSkip(); + + // text toolbar + void sizeSelected( int size ); + void fontSelected( const QString &fontFamily ); + void textBold(); + void textItalic(); + void textUnderline(); + void textStrikeOut(); + void textColor(); + void textAlignLeft(); + void textAlignCenter(); + void textAlignRight(); + void textAlignBlock(); + void mtextFont(); + + void slotCounterStyleSelected(); + + void textDepthPlus(); + void textDepthMinus(); + void textContentsToHeight(); + void textObjectToContents(); + void textInsertPageNum(); + void textDefaultFormat(); + + // color bar + void penChosen(); + void brushChosen(); + + void skipToPage( int _num ); + void nextPage(); + void prevPage(); + + /** + * Update a given item in the sidebar + */ + void updateSideBarItem( KPrPage * page ); + void addSideBarItem( int pos ); + void moveSideBarItem( int oldPos, int newPos ); + void removeSideBarItem( int pos ); + + //statusbar updates + void updatePageInfo(); + void updateObjectStatusBarItem(); + void pageNumChanged(); + void updateSideBarMenu(); + + void objectSelectedChanged(); + + void renamePageTitle(); + + void picViewOriginalSize(); + void picViewOrig640x480(); + void picViewOrig800x600(); + void picViewOrig1024x768(); + void picViewOrig1280x1024(); + void picViewOrig1600x1200(); + + void chPic(); + void imageEffect(); + + void textSubScript(); + void textSuperScript(); + + void slotSpecialChar(QChar, const QString &); + void slotSpecialCharDlgClosed(); + + void insertLink(); + void changeLink(); + void copyLink(); + void removeLink(); + void addToBookmark(); + void slotSoftHyphen(); + void slotNonbreakingSpace(); + void slotNonbreakingHyphen(); + void slotLineBreak(); + void slotIncreaseNumberingLevel(); + void slotDecreaseNumberingLevel(); + + void extraAutoFormat(); + void slotSpellCheck(); + + + void spellCheckerDone( const QString & ); + void spellCheckerCancel(); + void startKSpell(); + void spellAddAutoCorrect (const QString & originalword, const QString & newword); + void spellCheckerMisspelling( const QString &, int ); + void spellCheckerCorrected( const QString &, int, const QString & ); + void alignChanged( int ); + + void formatParagraph(); + void changeNbOfRecentFiles(int _nb); + + void insertVariable(); + + void insertCustomVariable(); + void insertNewCustomVariable(); + void refreshCustomMenu(); + + void editCustomVars (); + void openLink(); + + void increaseFontSize(); + void decreaseFontSize(); + + void tabListChanged( const KoTabulatorList & tabList ); + + void newLeftIndent( double _leftIndent); + void newFirstIndent( double _firstIndent); + void newRightIndent( double _rightIndent); + void slotUpdateRuler(); + + void slotHRulerDoubleClicked( double ptpos ); + void slotHRulerDoubleClicked(); + + void changeCaseOfText(); + void slotStyleSelected(); + void textStyleSelected( int ); + void extraStylist(); + + void slotAllowAutoFormat(); + + void slotCompletion(); + + void removeComment(); + void copyTextOfComment(); + + //zoom menu + void zoomMinus(); + void zoomPageWidth(); + void zoomEntirePage(); + void zoomPlus(); + void zoomSelectedObject(); + void zoomPageHeight(); + void zoomAllObject(); + + void flipHorizontal(); + void flipVertical(); + void closeObject(); + + void duplicateObj(); + void applyAutoFormat(); + void createStyleFromSelection(); + + void alignVerticalTop(); + void alignVerticalBottom(); + void alignVerticalCenter(); + + + void savePicture(); + void autoSpellCheck(); + + void insertFile(); + void editCustomVariable(); + void importStyle(); + + void backgroundPicture(); + void updateBgSpellCheckingState(); + void updatePresentationButton(bool); + void refreshGroupButton(); + void slotAddIgnoreAllWord(); + void addWordToDictionary(); + void customSlideShow(); + + void displayObjectFromMasterPage(); + void displayBackground(); + void slotUnitChanged(KoUnit::Unit); + void documentModified( bool ); + +public: + // create GUI + virtual void createGUI(); + + // get current pagenum, 1-based + unsigned int getCurrPgNum() const; + /** + * Recalculate the currPgNum from the activePage of the canvas + * This is necessary after a page has inserted. + */ + void recalcCurrentPageNum(); + + // return pointer to document + KPrDocument *kPresenterDoc() const {return m_pKPresenterDoc; } + + // properties + void changePicture( const QString & ); + + KPrCanvas* getCanvas() const { return m_canvas;} + + void setRulerMouseShow( bool _show ); + void setRulerMousePos( int mx, int my ); + + // set scrollbar ranges + void setRanges(); + + KoRuler *getHRuler() const { return h_ruler; } + KoRuler *getVRuler() const { return v_ruler; } + KoTabChooser *getTabChooser() const { return tabChooser; } + QScrollBar *getHScrollBar() const { return horz; } + QScrollBar *getVScrollBar() const { return vert; } + + /** + * @brief Show the rect where object lies + * + * It will move the screen to the top right corner of object + * when it is not allready totaly visible on the screen. + * + * @param object which should be shown + */ + void showObjectRect( const KPrObject * object ); + + PieType getPieType() const { return pieType; } + int getPieAngle() const { return pieAngle; } + int getPieLength() const { return pieLength; } + KoPen getPen() const { return pen; } + QBrush getBrush() const { return brush; } + LineEnd getLineBegin() const { return lineBegin; } + LineEnd getLineEnd() const{ return lineEnd; } + QColor getGColor1() const { return gColor1; } + QColor getGColor2() const { return gColor2; } + BCType getGType() const { return gType; } + FillType getFillType() const { return fillType; } + bool getGUnbalanced() const { return gUnbalanced; } + int getGXFactor() const { return gXFactor; } + int getGYFactor() const { return gYFactor; } + TKSelectColorAction* getActionBrushColor() const { return actionBrushColor; } + TKSelectColorAction* getActionPenColor() const { return actionPenColor; } + + void setPieType(PieType _pieType) { pieType = _pieType; } + void setPieAngle(int _pieAngle) { pieAngle = _pieAngle; } + void setPieLength(int _pieLength) { pieLength = _pieLength; } + void setPen(KoPen _pen) { pen = _pen; } + void setBrush(QBrush _brush) { brush = _brush; } + void setLineBegin(LineEnd _lineBegin) { lineBegin = _lineBegin; } + void setLineEnd(LineEnd _lineEnd){ lineEnd = _lineEnd; } + void setGColor1(QColor _gColor1) { gColor1 = _gColor1; } + void setGColor2(QColor _gColor2) { gColor2 = _gColor2; } + void setGType(BCType _gType) { gType = _gType; } + void setFillType(FillType _fillType) { fillType = _fillType; } + void setGUnbalanced(bool _gUnbalanced) { gUnbalanced = _gUnbalanced; } + void setGXFactor(int _gXFactor) { gXFactor = _gXFactor; } + void setGYFactor(int _gYFactor) { gYFactor = _gYFactor; } + + void setTool( ToolEditMode toolEditMode ); + + int getRndX() const { return rndX; } + int getRndY() const { return rndY; } + + void setRndX(int _rndX) { rndX = _rndX; } + void setRndY(int _rndY) { rndY = _rndY; } + +// QFont &currFont() { return tbFont; } +// QColor &currColor() { return tbColor; } + + void enableWebPres(); + void enableMSPres(); + + /** + * Overloaded from View + */ + bool doubleClickActivation() const; + /** + * Overloaded from View + */ + QWidget* canvas() const; + /** + * Overloaded from View + */ + int canvasXOffset() const; + /** + * Overloaded from View + */ + int canvasYOffset() const; + + /** + * Rebuild the whole sidebar + */ + void updateSideBar(); + + void refreshPageButton(); + + void setCanvasXOffset( int _x ); + void setCanvasYOffset( int _y ); + + void openPopupMenuObject( const QString & name , const QPoint & _point ); + void openPopupMenuMenuPage( const QPoint & _point ); + void openPopupMenuSideBar(const QPoint & _point); + + void openPopupMenuZoom( const QPoint & _point ); + + void penColorChanged( const KoPen & _pen ); + void brushColorChanged( const QBrush & _brush ); + + /** + * Restart the timer for going to the next page. + * This is used in automatic presentation mode. + */ + void restartAutoPresTimer(); + + /** + * Continue the stopped timer for going to the next page. + * This is used in automatic presentation mode. + */ + void continueAutoPresTimer(); + + /** + * Stop the timer for going to the next page. + * This is used in automatic presentation mode. + */ + void stopAutoPresTimer(); + + /** + * Set the timer for going to next step to sec seconds. + * This is used in automatic presentation mode. + */ + void setAutoPresTimer( int sec ); + + void showCounter( KoParagCounter &c ); + + QPopupMenu * popupMenu( const QString& name ); + + void showRulerIndent( double _leftMargin, double _firstLine, double _rightMargin, bool rtl ); + + void reorganize(); + + // For KPrNoteBar + KPrNoteBar *getNoteBar() const { return notebar; } + + // Used by Page to plug/unplug the datatool actions + QPtrList<KAction>& actionList() { return m_actionList; } + // Used by Page to plug/unplug the variable actions + QPtrList<KAction> &variableActionList() { return m_variableActionList; } + + // for Polygon object + bool getCheckConcavePolygon() const { return checkConcavePolygon; } + int getCornersValue() const { return cornersValue; } + int getSharpnessValue() const { return sharpnessValue; } + + void setCheckConcavePolygon(bool _concavePolygon) { checkConcavePolygon = _concavePolygon; } + void setCornersValue(int _cornersValue) { cornersValue = _cornersValue; } + void setSharpnessValue(int _sharpnessValue) { sharpnessValue = _sharpnessValue; } + + // for Picture Object + PictureMirrorType getPictureMirrorType() const { return mirrorType; } + int getPictureDepth() const { return depth; } + bool getPictureSwapRGB() const { return swapRGB; } + bool getPictureGrayscal() const { return grayscal; } + int getPictureBright() const { return bright; } + + /** + * Set the duration of the given page ( zero based ). + * This reads out m_duration and adds it to the given page. + * m_duration is restarted. + */ + void setPageDuration( int _pgNum ); + + /** + * @brief Zoom the rect + * + * @param rect The rect which should be zoomed to. + */ + void setZoomRect( const KoRect & rect ); + void changeVerticalAlignmentStatus(VerticalAlignmentType _type ); + + void closeTextObject(); + void deSelectAllObjects(); + + void insertDirectCursor(bool b); + void updateDirectCursorButton(); + + void setEditMaster( bool editMaster ); + +protected slots: + // dialog slots + void backOk( KPrBackDialog*, bool ); + void afChooseOk( const QString & ); + void slotAfchooseCanceled(); + void propertiesOk(); + void pgConfOk(); + void rotateOk(); + void shadowOk(); + void pddClosed(); + + // scrolling + void scrollH( int ); + void scrollV( int ); + + // textobject + void fontChanged( const QFont & ); + void colorChanged( const QColor &color ); + + void extraLineBeginNormal(); + void extraLineBeginArrow(); + void extraLineBeginRect(); + void extraLineBeginCircle(); + void extraLineBeginLineArrow(); + void extraLineBeginDimensionLine(); + void extraLineBeginDoubleArrow(); + void extraLineBeginDoubleLineArrow(); + void setExtraLineBegin(LineEnd lb); + void extraLineEndNormal(); + void extraLineEndArrow(); + void extraLineEndRect(); + void extraLineEndCircle(); + void extraLineEndLineArrow(); + void extraLineEndDimensionLine(); + void extraLineEndDoubleArrow(); + void extraLineEndDoubleLineArrow(); + void setExtraLineEnd(LineEnd le); + + void setExtraPenStyle( Qt::PenStyle style ); + void setExtraPenWidth( double width ); + + /** + * Restart the presenation from the first shown slide. + * This only works in automatic presentation and infinite loop mode. + */ + void restartPresentation() { m_autoPresRestart = true; } + /** + * Finish the automatic presentation mode. + * This only works in automatic presentation mode. + */ + void stopAutomaticPresentation() { m_autoPresStop = true; } + + void newPageLayout( const KoPageLayout &_layout ); + void openPageLayoutDia() { extraLayout(); } + void unitChanged( KoUnit::Unit ); + + void doAutomaticScreenPres(); + + void getPageMouseWheelEvent( QWheelEvent *e ); + void updateRuler(); + + void refreshAllVariable(); + void slotViewFormattingChars(); + void slotUpdateScrollBarRanges(); + + void addGuideLine(); + + void refreshRuler( bool state ); + void slotApplyFont(); + void slotApplyParag(); + void slotObjectEditChanged(); + void slotChangeCutState(bool ); + + void insertDirectCursor(); + void slotCorrectWord(); + void editFindNext(); + void editFindPrevious(); + + void initialLayoutOfSplitter(); + + virtual void slotChildActivated(bool a); + + void loadingFinished(); + +protected: + virtual void resizeEvent( QResizeEvent* ); + virtual void dragEnterEvent( QDragEnterEvent *e ); + virtual void dragMoveEvent( QDragMoveEvent *e ); + virtual void dragLeaveEvent( QDragLeaveEvent *e ); + virtual void dropEvent( QDropEvent *e ); + + virtual void keyPressEvent( QKeyEvent* ); + + virtual void guiActivateEvent( KParts::GUIActivateEvent *ev ); + +// GUI + void setupActions(); + void setupPopupMenus(); + void setupScrollbars(); + void setupRulers(); + + void startScreenPres( int pgNum = -1 ); + + virtual void updateReadWrite( bool readwrite ); + + void addVariableActions( int type, const QStringList & texts, + KActionMenu * parentMenu, const QString & menuText ); + + void showParagraphDialog( int initialPage = -1, double initialTabPos = 0.0 ); + + QValueList<KoTextObject *> spellAddTextObject() const; + + bool switchInOtherPage( const QString & text ); + + void openThePresentationDurationDialog(); + QString presentationDurationDataFormatChange( int _time ); + + int getZoomEntirePage() const; + + KCommand * applyAutoFormatToCurrentPage( const QPtrList<KoTextObject> & lst); + void textStyleSelected( KoParagStyle *_sty ); + + /* + * create a command which sets the pen according to the flags + * for the selected objects on the active and sticky page + */ + KCommand * getPenCmd( const QString &name, KoPen pen, LineEnd lb, LineEnd le, int flags ); + + void spellCheckerRemoveHighlight(); + + void updateNoteBarText(); +private: + void clearSpellChecker(bool cancelSpellCheck = false); + +// ********** variables ********** + + // document + KPrDocument *m_pKPresenterDoc; + + // flags + /** + * Set to true if the presentation sould be restarted. + * This only works in automatic presentation and infinite loop mode. + */ + bool m_autoPresRestart; + + /** + * Set to true if the presentation sould be stoped. + * This only works in automatic presentation mode. + */ + bool m_autoPresStop; + bool m_screenSaverWasEnabled; + bool m_dpmsWasEnabled; + + // right button popup menus + QPopupMenu *rb_lbegin, *rb_lend; + QPopupMenu *m_arrangeObjectsPopup; + QPtrList<KAction> m_actionList; // for the kodatatools + QPtrList<KAction> m_variableActionList; + + // scrollbars + QScrollBar *vert, *horz; + + // dialogs + AFChoose *afChoose; + KPrPropertyEditor *m_propertyEditor; + KPrPgConfDia *pgConfDia; + KPrRotationDialogImpl *rotateDia; + KPrShadowDialogImpl *shadowDia; + KPrImageEffectDia *imageEffectDia; + KPrPresDurationDia *presDurationDia; + + // default pen and brush + KoPen pen; + QBrush brush; + LineEnd lineBegin; + LineEnd lineEnd; + QColor gColor1, gColor2; + BCType gType; + FillType fillType; + PieType pieType; + bool gUnbalanced; + int gXFactor, gYFactor; + int pieLength, pieAngle; + int rndX, rndY; + // for Convex/Concave Polygon + bool checkConcavePolygon; + int cornersValue; + int sharpnessValue; + /// used to save mouse pos + QPoint m_mousePos; + + // for Picture Object + PictureMirrorType mirrorType; + int depth; + bool swapRGB; + bool grayscal; + int bright; + + // the page + KPrCanvas *m_canvas; + KoRuler *h_ruler, *v_ruler; + KoTabChooser *tabChooser; + // text toolbar values + QFont tbFont; + int tbAlign; + QColor tbColor; + + bool m_bShowGUI; + bool presStarted; + /** + * Indicates if the master page is edited + */ + bool m_editMaster; + bool allowWebPres; + bool allowMSPres; + int currPg; // 0-based + + QSize oldSize; + + int screensaver_pid; + + // Statusbar items + QLabel * m_sbPageLabel; // 'Current page number and page count' label + QLabel * m_sbObjectLabel; // Info about selected object + QLabel *m_sbSavingLabel; // use when saving file + KStatusBarLabel* m_sbModifiedLabel; + KStatusBarLabel* m_sbUnitLabel; + KStatusBarLabel* m_sbZoomLabel; + + // actions + KAction *actionEditCut; + KAction *actionEditCustomVars; + KAction *actionEditCopy; + KAction *actionEditPaste; + KAction *actionEditDelete; + KAction *actionEditSelectAll; + KAction *actionEditDeSelectAll; + KAction *actionEditCopyPage; + KAction *actionEditDuplicatePage; + KAction *actionEditDelPage; + + KToggleAction *actionViewShowSideBar; + KToggleAction *actionViewShowNoteBar; + KToggleAction *actionViewSlideMaster; + + KToggleAction *actionViewShowGuideLine; + + KToggleAction *actionViewFormattingChars; + KToggleAction *actionViewShowGrid; + KToggleAction *actionViewSnapToGrid; + + KAction *actionInsertPage; + KAction *actionInsertPicture; + + KToggleAction *actionToolsMouse; + KToggleAction *actionToolsRotate; + KToggleAction *actionToolsZoom; + KToggleAction *actionToolsLine; + KToggleAction *actionToolsRectangle; + KToggleAction *actionToolsCircleOrEllipse; + KToggleAction *actionToolsPie; + KToggleAction *actionToolsText; + KToggleAction *actionToolsAutoform; + KToggleAction *actionToolsDiagramm; + KToggleAction *actionToolsTable; + KToggleAction *actionToolsFormula; + KToggleAction *actionToolsFreehand; + KToggleAction *actionToolsPolyline; + KToggleAction *actionToolsQuadricBezierCurve; + KToggleAction *actionToolsCubicBezierCurve; + KToggleAction *actionToolsConvexOrConcavePolygon; + KToggleAction *actionToolsClosedFreehand; + KToggleAction *actionToolsClosedPolyline; + KToggleAction *actionToolsClosedQuadricBezierCurve; + KToggleAction *actionToolsClosedCubicBezierCurve; + KoPartSelectAction *actionToolsObject; + KActionMenu *actionToolsLinePopup; + KActionMenu *actionToolsShapePopup; + KActionMenu *actionToolsClosedLinePopup; + + KAction *actionTextFont; + KFontSizeAction *actionTextFontSize; + KFontAction *actionTextFontFamily; + KToggleAction *actionTextAlignLeft; + KToggleAction *actionTextAlignCenter; + KToggleAction *actionTextAlignRight; + KToggleAction *actionTextAlignBlock; + + KActionMenu *actionFormatBullet; + KActionMenu *actionFormatNumber; + + + KAction *actionTextDepthPlus; + KAction *actionTextDepthMinus; + KAction *actionTextExtentCont2Height; + KAction *actionTextExtendObj2Cont; + KToggleAction *actionTextBold; + KToggleAction *actionTextItalic; + KToggleAction *actionTextUnderline; + KToggleAction *actionFormatStrikeOut; + KAction *actionTextInsertPageNum; + + KAction *actionExtraProperties; + KAction *actionExtraRaise; + KAction *actionExtraLower; + + KAction *actionExtraBringForward; + KAction *actionExtraSendBackward; + KActionMenu *actionExtraArrangePopup; + + KAction *actionExtraRotate; + KAction *actionExtraShadow; + KActionMenu *actionExtraAlignObjsPopup; + KAction *actionExtraAlignObjLeft; + KAction *actionExtraAlignObjCenterH; + KAction *actionExtraAlignObjRight; + KAction *actionExtraAlignObjTop; + KAction *actionExtraAlignObjCenterV; + KAction *actionExtraAlignObjBottom; + KAction *actionExtraBackground; + KAction *actionExtraLayout; + KAction *actionExtraConfigure; + KAction *actionExtraWebPres; + KAction *actionExtraMSPres; + KAction *actionExtraCreateTemplate; + KAction *actionExtraLineBegin; + KAction *actionExtraLineEnd; + KAction *actionExtraGroup; + KAction *actionExtraUnGroup; + KoLineStyleAction *actionExtraPenStyle; + KoLineWidthAction *actionExtraPenWidth; + + KAction *actionScreenConfigPages; + KAction *actionScreenAssignEffect; + KAction *actionScreenTransEffect; + KAction *actionScreenStart; + KAction *actionScreenStartFromFirst; + KAction *actionScreenStop; + KAction *actionScreenPause; + KAction *actionScreenFirst; + KAction *actionScreenPrev; + KAction *actionScreenNext; + KAction *actionScreenLast; + KAction *actionScreenSkip; + + KAction *actionEditFind; + KAction *actionEditFindNext; + KAction *actionEditFindPrevious; + KAction *actionEditReplace; + + KAction *actionCustomSlideShow; + + KAction *actionColorBar; + KAction *actionExtraDefaultTemplate; + + TKSelectColorAction* actionBrushColor; + TKSelectColorAction* actionPenColor; + TKSelectColorAction* actionTextColor; + + + KAction *actionResizeTextObject; + KAction *actionExtendObjectHeight; + KAction *actionObjectProperties; + + KAction *actionRenamePage; + + KAction *actionPicOriginalSize; + KAction *actionPic640x480; + KAction *actionPic800x600; + KAction *actionPic1024x768; + KAction *actionPic1280x1024; + KAction *actionPic1600x1200; + KAction *actionChangePic; + KAction *actionExtraSpellCheck; + KAction *actionFormatDefault; + + KAction *actionImageEffect; + + KAction *actionInsertComment; + KAction *actionEditComment; + KAction *actionRemoveComment; + KAction *actionCopyTextOfComment; + + KAction *actionImportStyle; + + DCOPObject *dcop; + + QToolButton *pgNext, *pgPrev; + KPrSideBar *sidebar; + KPrNoteBar *notebar; + QSplitter *splitter; + PageBase *pageBase; + + KToggleAction *actionFormatSuper; + KToggleAction *actionFormatSub; + + KToggleAction *m_actionExtraHeader; + KToggleAction *m_actionExtraFooter; + + KAction* actionInsertSpecialChar; + KAction *actionInsertLink; + + KAction * actionChangeLink; + KAction *actionCopyLink; + KAction *actionRemoveLink; + + KAction *actionAddLinkToBookmak; + KAction *actionFormatParag; + KAction *actionOpenLink; + KAction *actionIncreaseFontSize; + KAction *actionDecreaseFontSize; + KAction *actionChangeCase; + KAction *actionRefreshAllVariable; + + KSelectAction *actionViewZoom; + + KSelectAction *actionFormatStyle; + + KToggleAction *actionAllowAutoFormat; + + KToggleAction *actionDisplayObjectFromMasterPage; + + KToggleAction *actionDisplayBackgroundPage; + + KAction *actionFormatStylist; + + KAction *actionAddGuideLine; + + KAction *actionConfigureCompletion; + + KAction *actionZoomMinus; + KAction *actionZoomPageWidth; + KAction *actionZoomEntirePage; + KAction *actionZoomPlus; + KAction *actionZoomSelectedObject; + KAction *actionZoomPageHeight; + KAction *actionZoomAllObject; + + KAction *actionFlipHorizontal; + KAction *actionFlipVertical; + KAction *actionCloseObject; + + KAction *actionDuplicateObj; + KAction *actionApplyAutoFormat; + + KAction *actionCreateStyleFromSelection; + + KAction *actionSavePicture; + + KAction *actionSaveBackgroundPicture; + + + KAction *actionInsertFile; + + KAction *actionSpellIgnoreAll; + + KToggleAction *actionAlignVerticalTop; + KToggleAction *actionAlignVerticalBottom; + KToggleAction *actionAlignVerticalCenter; + + KToggleAction *actionAllowBgSpellCheck; + KAction *actionEditCustomVarsEdit; + KActionMenu *actionFormatStyleMenu; + KToggleAction *actionInsertDirectCursor; + + KAction *actionAddWordToPersonalDictionary; + + /// timer for automatic presentation mode + QTimer m_autoPresTimer; + /// time for messuring the elapsed time of the timer + QTime m_autoPresTime; + /// the elapsed time if the timer gets stopped in milliseconds + int m_autoPresElapsedTime; + /// the value of m_autoPresTimer in milliseconds + int m_autoPresTimerValue; + /// true if the timer is connected to doAutomaticScreenPres + bool m_autoPresTimerConnected; + + /// timer for duration of a page + QTime m_duration; + /// list for saving the duration of the pages + QValueList<int> m_presentationDurationList; + + KoCharSelectDia *m_specialCharDlg; + + // store the currently selected line-tool + enum CurrentLineTool { + LtLine = 1, + LtFreehand = 2, + LtPolyline = 4, + LtQuadricBezier = 8, + LtCubicBezier = 16 + }; + + CurrentLineTool m_currentLineTool; + + // store the currently selected shape-tool + enum CurrentShapeTool { + StRectangle = 1, + StCircle = 2, + StPie = 4, + StPolygon = 8 + }; + + CurrentShapeTool m_currentShapeTool; + + // store the currently selected closed-line-tool + enum CurrentClosedLineTool { + CltFreehand = 1, + CltPolyline = 2, + CltQuadricBezier = 4, + CltCubicBezier = 8 + }; + + CurrentClosedLineTool m_currentClosedLineTool; + + // Spell-checking + struct { + KoSpell *kospell; + KMacroCommand * macroCmdSpellCheck; + QStringList replaceAll; + KoTextIterator * textIterator; + KSpell2::Dialog *dlg; + } m_spell; + + KSpell2::Broker::Ptr m_broker; + + + + KActionMenu *actionInsertVariable; + KActionMenu *actionInsertCustom; + + struct VariableDef { + int type; + int subtype; + }; + typedef QMap<KAction *, VariableDef> VariableDefMap; + VariableDefMap m_variableDefMap; + + KoSearchContext *m_searchEntry, *m_replaceEntry; + KPrFindReplace *m_findReplace; + KoFontDia *m_fontDlg; + KoParagDia *m_paragDlg; + int m_switchPage; + int m_initSwitchPage; + + int xOffsetSaved, yOffsetSaved; // saved when going fullscreen + bool m_bDisplayFieldCode; //save state before to go to presentation mode +}; + +#endif |