diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kword/KWView.h | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kword/KWView.h')
-rw-r--r-- | kword/KWView.h | 879 |
1 files changed, 879 insertions, 0 deletions
diff --git a/kword/KWView.h b/kword/KWView.h new file mode 100644 index 00000000..7463435a --- /dev/null +++ b/kword/KWView.h @@ -0,0 +1,879 @@ +/* This file is part of the KDE project + Copyright (C) 1998, 1999 Reginald Stadlbauer <[email protected]> + Copyright (C) 2005 Thomas Zander <[email protected]> + + 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 kwview_h +#define kwview_h + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <kprinter.h> + +#include <KoBorder.h> +#include "defs.h" +#include "KWTextParag.h" + +#include <KoPageLayoutDia.h> +#include <KoView.h> +#include <KoPoint.h> +#include <kshortcut.h> +#include <KoZoomMode.h> + +#include <qbrush.h> +#include <qhbox.h> + +class KWPage; +class KWViewMode; +class KWDocStruct; +class KWCanvas; +class KWDocument; +class KWGUI; +class KWFrame; +class KWFrameView; +class KWFrameViewManager; +class KWTextFrameSetEdit; +class KMacroCommand; +class KWFrameSet; +class KWFindReplace; +class KWFrameStyle; +class KWTableStyle; +class KWTableFrameSet; + +class KoPicture; +class KoSearchContext; +class KoTextFormatInterface; +class KoRuler; +class TKSelectColorAction; +class KoPartSelectAction; +class KoCharSelectDia; +class KoTextFormat; +class KoFontDia; +class KoParagDia; +class KoTextIterator; + +class DCOPObject; +class KStatusBarLabel; +class KoSpell; +class KURL; +class KAction; +class KActionMenu; +class KSelectAction; +class KToggleAction; +class KFontSizeAction; +class KFontAction; +class QResizeEvent; +class QSplitter; + +#include <kspell2/broker.h> +namespace KSpell2 { + class Dialog; +} + + +/******************************************************************/ +/* Class: KWView */ +/******************************************************************/ + +class KWView : public KoView +{ + Q_OBJECT + +public: + KWView( const QString& viewMode, QWidget *parent, const char *name, KWDocument *doc ); + virtual ~KWView(); + + virtual DCOPObject* dcopObject(); + + // Those methods update the UI (from the given formatting info) + // They do NOT do anything to the text + void showFormat( const KoTextFormat ¤tFormat ); + void showAlign( int align ); + void showCounter( KoParagCounter &c ); + void showSpacing( int spacing ); + /** + * Updates the checked state of the border buttons based on the parameters. + * @param left represents the left border being currently visible + * @param right represents the right border being currently visible + * @param top represents the top border being currently visible + * @param bottom represents the bottom border being currently visible + */ + void updateBorderButtons( const KoBorder& left, const KoBorder& right, + const KoBorder& top, const KoBorder& bottom ); + + void showStyle( const QString & styleName ); + void showRulerIndent( double leftMargin, double firstLine, double rightMargin, bool rtl ); + void showZoom( int zoom ); // show a zoom value in the combo + void showZoom( const QString& zoom ); // show a zoom value in the combo + void setZoom( int zoom, bool updateViews ); // change the zoom value + + bool viewFrameBorders() const { return m_viewFrameBorders; } + void setViewFrameBorders(bool b); + + /** + * Returns the KWord global KSpell2 Broker object. + */ + KSpell2::Broker *broker() const; + + void setNoteType(NoteType nt, bool change=true); + + KWDocument *kWordDocument()const { return m_doc; } + KWGUI *getGUI()const { return m_gui; } + KWViewMode* viewMode() const; + + void updateStyleList(); + void updateFrameStyleList(); + void updateTableStyleList(); + + void initGui(); + + /// returns the current page number this view is looking at + int currentPage() const; + + /** + * Overloaded from View + */ + bool doubleClickActivation() const; + /** + * Overloaded from View + */ + QWidget* canvas() const; + /** + * Overloaded from View + */ + int canvasXOffset() const; + /** + * Overloaded from View + */ + int canvasYOffset() const; + /** + * Overloaded vrom View + */ + void canvasAddChild( KoViewChild *child ); + + virtual void setupPrinter( KPrinter &printer ); + virtual void print( KPrinter &printer ); + + virtual QPoint applyViewTransformations( const QPoint& ) const; + virtual QPoint reverseViewTransformations( const QPoint& ) const; + + void changeNbOfRecentFiles(int nb); + + void changeZoomMenu( int zoom=-1); + + void refreshMenuExpression(); + + void updateGridButton(); + + void deleteFrame(bool warning=true); + + QPopupMenu * popupMenu( const QString& name ); + + QPtrList<KAction> &dataToolActionList() { return m_actionList; } + QPtrList<KAction> &variableActionList() { return m_variableActionList; } + QPtrList<KAction> &tableActions() { return m_tableActionList; } + + enum { // bitfield + ProvidesImage = 1, + ProvidesPlainText = 2, + ProvidesOasis = 4, + ProvidesFormula = 8 + }; + static int checkClipboard( QMimeSource *data ); + + bool insertInlinePicture(); + + void displayFrameInlineInfo(); + + void initGUIButton(); + + void updateHeaderFooterButton(); + void updateFooter(); + void updateHeader(); + void switchModeView(); + void changeFootNoteMenuItem( bool b); + void insertFile(const KURL& url); + void testAndCloseAllFrameSetProtectedContent(); + void updateBgSpellCheckingState(); + void updateRulerInProtectContentMode(); + void deselectAllFrames(); + void autoSpellCheck(bool b); + void insertDirectCursor(bool b); + void updateDirectCursorButton(); + + void deleteFrameSet( KWFrameSet *); + + QPtrList<KAction> listOfResultOfCheckWord( const QString &word ); + + int tableSelectCell(const QString &tableName, uint row, uint col); + void tableInsertRow(uint row, KWTableFrameSet *table = 0); + void tableInsertCol(uint col, KWTableFrameSet *table = 0); + int tableDeleteRow(const QValueList<uint>& rows, KWTableFrameSet *table = 0); + int tableDeleteCol(const QValueList<uint>& cols, KWTableFrameSet *table = 0); + + void pasteData( QMimeSource* data, bool drop ); + + KWFrameViewManager* frameViewManager() const; + +public slots: + void fileStatistics(); + void editCut(); + void editCopy(); + void editPaste(); + void editSelectAll(); + void editSelectAllFrames(); + void editSelectCurrentFrame(); + void editFind(); + void editFindNext(); + void editFindPrevious(); + void editReplace(); + void editDeleteFrame(); + void editCustomVariable(); + void editCustomVars(); + void editMailMergeDataBase(); + void createLinkedFrame(); + + void viewTextMode(); + void viewPageMode(); + void viewPreviewMode(); + void slotViewFormattingChars(); + void slotViewFrameBorders(); + void viewHeader(); + void viewFooter(); + void viewZoom( const QString &s ); + void updateZoom(); + + void insertTable(); + void insertPicture(); + void insertSpecialChar(); + void insertFrameBreak(); + void insertVariable(); + void insertFootNote(); + void insertContents(); + void insertLink(); + void insertComment(); + void removeComment(); + void copyTextOfComment(); + + void insertPage(); + void deletePage(); + + void formatFont(); + void formatParagraph(); + void formatPage(); + void formatFrameSet(); + + void slotSpellCheck(); + void extraAutoFormat(); + void extraFrameStylist(); + void extraStylist(); + void extraCreateTemplate(); + + void toolsCreateText(); + void insertFormula( QMimeSource* source=0 ); + void toolsPart(); + + void tableProperties(); + void tableInsertRow(); + void tableInsertCol(); + void tableResizeCol(); + void tableDeleteRow(); + void tableDeleteCol(); + void tableJoinCells(); + void tableSplitCells(); + void tableSplitCells(int col, int row); + void tableProtectCells(bool); + void tableUngroupTable(); + void tableDelete(); + void tableStylist(); + void convertTableToText(); + void sortText(); + void addPersonalExpression(); + + void slotStyleSelected(); + void slotFrameStyleSelected(); + void slotTableStyleSelected(); + void textStyleSelected( int ); + void frameStyleSelected( int ); + void tableStyleSelected( int ); + void textSizeSelected( int ); + void increaseFontSize(); + void decreaseFontSize(); + void textFontSelected( const QString & ); + void textBold(); + void textItalic(); + void textUnderline(); + void textStrikeOut(); + void textColor(); + void textAlignLeft(); + void textAlignCenter(); + void textAlignRight(); + void textAlignBlock(); + void textSpacingSingle(); + void textSpacingOneAndHalf(); + void textSpacingDouble(); + void textSuperScript(); + void textSubScript(); + void textIncreaseIndent(); + void textDecreaseIndent(); + void textDefaultFormat(); + void slotCounterStyleSelected(); + + // Text and Frame borders. + void borderOutline(); + void borderLeft(); + void borderRight(); + void borderTop(); + void borderBottom(); + void backgroundColor(); + + void showFormulaToolbar( bool show ); + + void configure(); + void configureCompletion(); + + void newPageLayout( const KoPageLayout &layout ); + void newLeftIndent( double leftIndent); + void newFirstIndent( double firstIndent); + void newRightIndent( double rightIndent); + + void clipboardDataChanged(); + void tabListChanged( const KoTabulatorList & tabList ); + + void updatePageInfo(); + void updateFrameStatusBarItem(); + void setTemporaryStatusBarText(const QString &text); + + void slotSpecialChar(QChar , const QString &); + void slotFrameSetEditChanged(); + void showMouseMode( int /*KWCanvas::MouseMode*/ mouseMode ); + void frameSelectedChanged(); + void docStructChanged(int type); + void documentModified( bool ); + void changeOverwriteMode( bool ); + void slotHRulerDoubleClicked(); + void slotHRulerDoubleClicked( double ); + void slotUnitChanged(KoUnit::Unit); + + void numPagesChanged(); + + void insertExpression(); + + void updateTocActionText(bool hasToc); + + void changeCaseOfText(); + + void editPersonalExpr(); + + void slotUpdateRuler(); + void slotEmbedImage( const QString &filename ); + + void insertCustomVariable(); + void insertNewCustomVariable(); + void slotSpecialCharDlgClosed(); + + void refreshCustomMenu(); + + void changePicture(); + + void configureHeaderFooter(); + + void inlineFrame(); + + /** Move the selected frame above maximum 1 frame that is in front of it. */ + void raiseFrame() { adjustZOrderOfSelectedFrames(RaiseFrame); }; + /** Move the selected frame behind maximum 1 frame that is behind it */ + void lowerFrame() { adjustZOrderOfSelectedFrames(LowerFrame); }; + /** Move the selected frame(s) to be in the front most position. */ + void bringToFront() { adjustZOrderOfSelectedFrames(BringToFront); }; + /** Move the selected frame(s) to be behind all other frames */ + void sendToBack() { adjustZOrderOfSelectedFrames(SendToBack); }; + + void openLink(); + void changeLink(); + void copyLink(); + void removeLink(); + void addToBookmark(); + void editComment(); + void showDocStructure(); + void showRuler(); + void viewGrid(); + void viewSnapToGrid(); + + void slotSoftHyphen(); + void slotLineBreak(); + void slotNonbreakingSpace(); + void slotNonbreakingHyphen(); + + void slotIncreaseNumberingLevel(); + void slotDecreaseNumberingLevel(); + + void refreshAllVariable(); + + void slotAllowAutoFormat(); + + void slotCompletion(); + + void applyAutoFormat(); + void createStyleFromSelection(); + + void configureFootEndNote(); + void editFootEndNote(); + void changeFootNoteType(); + void savePicture(); + + void autoSpellCheck(); + void goToFootEndNote(); + + // Document Structure Area popup menu. + void docStructEdit(); + void docStructSpeak(); + void docStructSelect(); + void docStructDelete(); + void docStructProperties(); + void openDocStructurePopupMenu( const QPoint &p, KWFrameSet *frameset, KWTextParag *parag); + + void insertFile(); + + void addBookmark(); + void selectBookmark(); + void importStyle(); + + void createFrameStyle(); + + void insertDirectCursor(); + + void convertToTextBox(); + + void slotAddIgnoreAllWord(); + + void embeddedStoreInternal(); + + void goToDocumentStructure(); + void goToDocument(); + + void addWordToDictionary(); + + void insertPicture( const KoPicture& picture, const bool makeInline, const bool keepRatio, int suggestedWidth, int suggestedHeight ); + + // end of public methods +protected slots: + virtual void slotChildActivated( bool a ); ///< from KoView + void slotSetInitialPosition(); + + void spellCheckerMisspelling( const QString &, int ); + void spellCheckerCorrected( const QString &, int, const QString & ); + void spellCheckerDone( const QString & ); + void spellCheckerCancel(); + + void spellAddAutoCorrect (const QString & originalword, const QString & newword); + void slotApplyFont(); + void slotApplyParag(); + void slotPageLayoutChanged( const KoPageLayout& layout ); + void slotChangeCaseState(bool b); + void slotChangeCutState(bool b); + void slotCorrectWord(); + + /// This slot is called when the document has finished loading. + void slotDocumentLoadingCompleted(); + +protected: + void addVariableActions( int type, const QStringList & texts, + KActionMenu * parentMenu, const QString & menuText ); + + void loadexpressionActions( KActionMenu * parentMenu); + + void createExpressionActions( KActionMenu * parentMenu,const QString& filename,int &i , bool insertSepar, const QMap<QString, KShortcut>& personalShortCut ); + + void showParagraphDialog( int initialPage = -1, double initialTabPos = 0.0 ); + + KWTextFrameSetEdit *currentTextEdit() const; + /** The current text-edit if there is one, otherwise the selected text objects + * This is what the "bold", "italic" etc. buttons apply to. */ + QPtrList<KoTextFormatInterface> applicableTextInterfaces() const; + + void setupActions(); + + virtual void resizeEvent( QResizeEvent *e ); + virtual void guiActivateEvent( KParts::GUIActivateEvent *ev ); + + virtual void updateReadWrite( bool readwrite ); + /** + * Make sure the actions related to tables have the right texts and enabled options. + * @param selectFrames a list of selected frames + * @see KWFrameViewManager::selectedFrames() + */ + void updateTableActions( QValueList<KWFrameView*> selectFrames); + + + void startKSpell(); + void clearSpellChecker(bool cancelSpellCheck = false ); + + QValueList<QString> getInlineFramesets( const QDomNode &framesetElem ); + + // Helper stuff for the frame adjustment; + enum MoveFrameType { RaiseFrame, LowerFrame, BringToFront, SendToBack }; + void adjustZOrderOfSelectedFrames(MoveFrameType moveType); + void increaseAllZOrdersAbove(int refZOrder, int pageNum, const QPtrList<KWFrame>& frameSelection); + void decreaseAllZOrdersUnder(int refZOrder, int pageNum, const QPtrList<KWFrame>& frameSelection); + int raiseFrame(const QPtrList<KWFrame>& frameSelection, const KWFrame *frame); + int lowerFrame(const QPtrList<KWFrame>& frameSelection, const KWFrame *frame); + int bringToFront(const QPtrList<KWFrame>& frameSelection, const KWFrame *frame); + int sendToBack(const QPtrList<KWFrame>& frameSelection, const KWFrame *frame); + void textStyleSelected( KoParagStyle *sty ); + void frameStyleSelected( KWFrameStyle *sty ); + void tableStyleSelected( KWTableStyle *sty ); + void changeFootEndNoteState(); + void refreshDeletePageAction(); + + void spellCheckerRemoveHighlight(); + + void setSpacing( KoParagLayout::SpacingType spacing, const QString &commandName ); + +private: // methods + void deleteSelectedFrames(); + void borderChanged(KoBorder::BorderType type); + void updateZoomControls(); + +private: // variables + KWDocument *m_doc; + + KAction *m_actionFileStatistics; + KAction *m_actionEditCut; + KAction *m_actionEditCopy; + KAction *m_actionEditPaste; + KAction *m_actionEditSelectAll; + KAction *m_actionEditSelectCurrentFrame; + KAction *m_actionEditDelFrame; + KAction *m_actionCreateLinkedFrame; + KAction *m_actionRaiseFrame; + KAction *m_actionLowerFrame; + KAction *m_actionSendBackward; + KAction *m_actionBringToFront; + + KAction *m_actionEditCustomVars; + KAction *m_actionEditCustomVarsEdit; + KAction *m_actionEditFind; + KAction *m_actionEditFindNext; + KAction *m_actionEditFindPrevious; + KAction *m_actionEditReplace; + KAction *m_actionApplyAutoFormat; + + KToggleAction *m_actionViewTextMode; + KToggleAction *m_actionViewPageMode; + KToggleAction *m_actionViewPreviewMode; + + KToggleAction *m_actionViewFormattingChars; + KToggleAction *m_actionViewFrameBorders; + KToggleAction *m_actionViewHeader; + KToggleAction *m_actionViewFooter; + KToggleAction *m_actionViewFootNotes; + KToggleAction *m_actionViewEndNotes; + KToggleAction *m_actionShowDocStruct; + KToggleAction *m_actionShowRuler; + KToggleAction *m_actionViewShowGrid; + KToggleAction *m_actionViewSnapToGrid; + KToggleAction *m_actionAllowAutoFormat; + + KToggleAction *m_actionAllowBgSpellCheck; + + KSelectAction *m_actionViewZoom; + + KAction *m_actionInsertFrameBreak; + KAction *m_actionInsertFootEndNote; + KAction *m_actionInsertContents; + KAction *m_actionInsertLink; + KAction *m_actionInsertComment; + KAction *m_actionEditComment; + KAction *m_actionRemoveComment; + KAction *m_actionCopyTextOfComment; + //KAction *actionInsertPage; + KAction *m_actionDeletePage; + + KActionMenu *actionInsertVariable; + struct VariableDef { + int type; + int subtype; + }; + typedef QMap<KAction *, VariableDef> VariableDefMap; + KActionMenu *m_actionInsertExpression; + + KActionMenu *m_actionInsertCustom; + + VariableDefMap m_variableDefMap; + KAction *m_actionInsertFormula; + KAction *m_actionInsertTable; + KAction *m_actionAutoFormat; + + KToggleAction *m_actionToolsCreateText; + KToggleAction *m_actionToolsCreatePix; + KoPartSelectAction *m_actionToolsCreatePart; + + KAction *m_actionFormatFont; + KAction *m_actionFormatDefault; + KAction *m_actionFormatFrameStylist; + KAction *m_actionFormatStylist; + KAction *m_actionFormatPage; + + KAction *m_actionFontSizeIncrease; + KAction *m_actionFontSizeDecrease; + + KFontSizeAction *m_actionFormatFontSize; + KFontAction *m_actionFormatFontFamily; + KSelectAction *m_actionFormatStyle; + KActionMenu *m_actionFormatStyleMenu; + KToggleAction *m_actionFormatBold; + KToggleAction *m_actionFormatItalic; + KToggleAction *m_actionFormatUnderline; + KToggleAction *m_actionFormatStrikeOut; + TKSelectColorAction *m_actionFormatColor; + KToggleAction *m_actionFormatAlignLeft; + KToggleAction *m_actionFormatAlignCenter; + KToggleAction *m_actionFormatAlignRight; + KToggleAction *m_actionFormatAlignBlock; + KToggleAction *m_actionFormatSpacingSingle; + KToggleAction *m_actionFormatSpacingOneAndHalf; + KToggleAction *m_actionFormatSpacingDouble; + KAction *m_actionFormatParag; + KAction *m_actionFormatFrameSet; + KAction *m_actionFormatIncreaseIndent; + KAction *m_actionFormatDecreaseIndent; + KActionMenu *m_actionFormatBullet; + KActionMenu *m_actionFormatNumber; + KToggleAction *m_actionFormatSuper; + KToggleAction *m_actionFormatSub; + KAction* m_actionInsertSpecialChar; + + // Text and Frame borders. + KSelectAction *m_actionFrameStyle; + KActionMenu *m_actionFrameStyleMenu; + KSelectAction *m_actionTableStyle; + KActionMenu *m_actionTableStyleMenu; + KToggleAction *m_actionBorderLeft; + KToggleAction *m_actionBorderRight; + KToggleAction *m_actionBorderTop; + KToggleAction *m_actionBorderBottom; + KToggleAction *m_actionBorderOutline; + TKSelectColorAction *m_actionBorderColor; + KSelectAction *m_actionBorderWidth; + KSelectAction *m_actionBorderStyle; + TKSelectColorAction *m_actionBackgroundColor; + + KAction *m_actionTableDelRow; + KAction *m_actionTableDelCol; + KAction *m_actionTableInsertRow; + KAction *m_actionTableInsertCol; + KAction *m_actionTableResizeCol; + KAction *m_actionTableJoinCells; + KAction *m_actionTableSplitCells; + KAction *m_actionConvertTableToText; + KAction *m_actionSortText; + KAction *m_actionAddPersonalExpression; + KToggleAction *m_actionTableProtectCells; + + KAction *m_actionTableUngroup; + KAction *m_actionTableDelete; + + KAction *m_actionTableStylist; + KAction *m_actionTablePropertiesMenu; + KAction *m_actionTableProperties; + + KAction *m_actionExtraCreateTemplate; + + KAction *m_actionChangeCase; + + KAction *m_actionEditPersonnalExpr; + + KAction *m_actionConfigure; + + KAction *m_actionConfigureCompletion; + + KAction *m_actionSavePicture; + + KAction *m_actionConfigureHeaderFooter; + KToggleAction *m_actionInlineFrame; + + KAction *m_actionOpenLink; + KAction *m_actionChangeLink; + KAction *m_actionCopyLink; + KAction *m_actionAddLinkToBookmak; + KAction *m_actionRemoveLink; + + KAction *m_actionRefreshAllVariable; + KAction *m_actionCreateStyleFromSelection; + + KAction *m_actionConfigureFootEndNote; + + KAction *m_actionEditFootEndNote; + + KAction *m_actionChangeFootNoteType; + + KAction *m_actionGoToFootEndNote; + + // Document Structure Area popup menu. + KAction *m_actionDocStructEdit; + KAction *m_actionDocStructSpeak; + KAction *m_actionDocStructSelect; + KAction *m_actionDocStructDelete; + KAction *m_actionDocStructProperties; + + KAction *m_actionInsertFile; + + KAction *m_actionAddBookmark; + KAction *m_actionSelectBookmark; + + KAction *m_actionImportStyle; + + KAction *m_actionCreateFrameStyle; + + KAction *m_actionConvertToTextBox; + + KAction *m_actionSpellIgnoreAll; + KAction *m_actionSpellCheck; + + KToggleAction *m_actionEmbeddedStoreInternal; + + KAction *m_actionAddWordToPersonalDictionary; + + KToggleAction *m_actionInsertDirectCursor; + + KAction *m_actionGoToDocumentStructure; + KAction *m_actionGoToDocument; + + + KoCharSelectDia *m_specialCharDlg; + KoFontDia *m_fontDlg; + KoParagDia *m_paragDlg; + + KWGUI *m_gui; + + DCOPObject *m_dcop; + + KoSearchContext *m_searchEntry, *m_replaceEntry; + KWFindReplace *m_findReplace; + + QPtrList<KAction> m_actionList; // for the kodatatools + QPtrList<KAction> m_variableActionList; + QPtrList<KAction> m_tableActionList; + + KWPage *m_currentPage; ///< current page number + + // Statusbar items + KStatusBarLabel* m_sbPageLabel; ///< 'Current page number and page count' label + KStatusBarLabel* m_sbModifiedLabel; + KStatusBarLabel* m_sbFramesLabel; ///< Info about selected frames + KStatusBarLabel* m_sbOverwriteLabel; + KStatusBarLabel* m_sbUnitLabel; + KStatusBarLabel* m_sbZoomLabel; + + // Zoom values for each viewmode ( todo a viewmode enum and a qmap or so ) + struct KWZoomValueStore { + int m_zoom; + KoZoomMode::Mode m_zoomMode; + }; + KWZoomValueStore m_zoomViewModeNormal; + KWZoomValueStore m_zoomViewModePreview; + + bool m_viewFrameBorders /*, m_viewTableGrid*/; + + /// Spell-checking + struct { + KoSpell *kospell; + KMacroCommand * macroCmdSpellCheck; + QStringList replaceAll; + KoTextIterator * textIterator; + KSpell2::Dialog *dlg; + } m_spell; + KSpell2::Broker::Ptr m_broker; + + + KWFrameSet *m_fsInline; + + // Split cell in table + struct { + unsigned int columns, rows; + } m_tableSplit; +}; + +/******************************************************************/ +/* Class: KWViewWidget */ +/******************************************************************/ +class KWViewWidget : public QWidget +{ + Q_OBJECT + +public: + KWViewWidget( QWidget *parent, KWView *view ); + +protected: + void resizeEvent( QResizeEvent *e ); + + // A pointer to the view. + KWView *m_view; +}; + +/******************************************************************/ +/* Class: KWGUI */ +/******************************************************************/ + +class KWGUI : public QHBox +{ + Q_OBJECT + +public: + KWGUI( const QString& viewMode, QWidget *parent, KWView *view ); + + void showGUI(); + + KWView *getView()const { return m_view; } + KWCanvas *canvasWidget()const { return m_canvas; } + KoRuler *getVertRuler()const { return m_vertRuler; } + KoRuler *getHorzRuler()const { return m_horRuler; } + KoTabChooser *getTabChooser()const { return m_tabChooser; } + KWDocStruct *getDocStruct()const { return m_docStruct; } + +public slots: + void reorganize(); + +protected slots: + void unitChanged( KoUnit::Unit ); + +protected: + void resizeEvent( QResizeEvent *e ); + + // A pointer to the view. + KWView *m_view; + + // The left side + KWDocStruct *m_docStruct; + + // The right side + QWidget *m_right; // The layout widget. + + KoTabChooser *m_tabChooser; + KoRuler *m_vertRuler; + KoRuler *m_horRuler; + KWCanvas *m_canvas; + + QSplitter *m_panner; + +}; + +#endif |