X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiWorkArea.h;h=4ec0af11a9fbd320b0bea301543a3b64563d9f06;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=9694977117bb22db3ed8c9036b1c6460a20e7f03;hpb=0685dfef7450b19a61bf8e271a4d9b5958544eb8;p=lyx.git diff --git a/src/frontends/qt4/GuiWorkArea.h b/src/frontends/qt4/GuiWorkArea.h index 9694977117..4ec0af11a9 100644 --- a/src/frontends/qt4/GuiWorkArea.h +++ b/src/frontends/qt4/GuiWorkArea.h @@ -35,6 +35,7 @@ class QDropEvent; class QKeyEvent; class QWheelEvent; class QPaintEvent; +class QToolButton; class QWidget; #ifdef CursorShape @@ -86,7 +87,8 @@ public: bool restart_timeout; int x_old; int y_old; - double scrollbar_value_old; + int min_scrollbar_old; + int max_scrollbar_old; }; @@ -107,13 +109,12 @@ public: /// ~GuiWorkArea(); + /// + void init(); /// void setBuffer(Buffer &); /// void setGuiView(GuiView &); - /// Dummy methods for Designer. - void setWidgetResizable(bool) {} - void setWidget(QWidget *) {} /// void setFullScreen(bool full_screen); /// is LyXView in fullscreen mode? @@ -125,7 +126,7 @@ public: /// BufferView const & bufferView() const; /// - void redraw(); + void redraw(bool update_metrics); /// void stopBlinkingCursor(); /// @@ -136,15 +137,12 @@ public: /// void resizeBufferView(); - bool isInDialog() { - return dialogMode_; - } + bool inDialogMode() const { return dialog_mode_; } + void setDialogMode(bool mode) { dialog_mode_ = mode; } /// GuiCompleter & completer() { return *completer_; } - /// Return true if dialogMode is set - bool& dialogMode() { return dialogMode_; } /// Return the GuiView this workArea belongs to GuiView const & view() const { return *lyx_view_; } @@ -173,8 +171,6 @@ private Q_SLOTS: private: friend class GuiCompleter; - /// - void init(); /// update the passed area. void update(int x, int y, int w, int h); @@ -188,7 +184,7 @@ private: /// hide the cursor virtual void removeCursor(); - /// This function is called when the buffer readonly status change. + /// This function should be called to update the buffer readonly status. void setReadOnly(bool); /// Update window titles of all users. @@ -235,6 +231,8 @@ private: /// BufferView * buffer_view_; + /// Read only Buffer status cache. + bool read_only_; /// GuiView * lyx_view_; /// is the cursor currently displayed @@ -263,10 +261,41 @@ private: /// Special mode in which Esc and Enter (with or without Shift) /// are ignored - bool dialogMode_; + bool dialog_mode_; + /// store the position of the rightclick when the mouse is + /// pressed. This is used to get the correct context menu + /// when the menu is actually shown (after releasing on Windwos). + QPoint context_target_pos_; }; // GuiWorkArea +class EmbeddedWorkArea : public GuiWorkArea +{ + Q_OBJECT +public: + /// + EmbeddedWorkArea(QWidget *); + ~EmbeddedWorkArea(); + + /// Dummy methods for Designer. + void setWidgetResizable(bool) {} + void setWidget(QWidget *) {} + + /// + void disable(); + +protected: + /// + void closeEvent(QCloseEvent * ev); + /// + void hideEvent(QHideEvent *ev); + +private: + /// Embedded Buffer. + Buffer * buffer_; +}; // EmbeddedWorkArea + + /// A tabbed set of GuiWorkAreas. class TabWorkArea : public QTabWidget { @@ -293,8 +322,10 @@ Q_SIGNALS: public Q_SLOTS: /// close current buffer, or the one given by \c clicked_tab_ void closeCurrentBuffer(); - /// close current tab, or the one given by \c clicked_tab_ - void closeCurrentTab(); + /// hide current tab, or the one given by \c clicked_tab_ + void hideCurrentTab(); + /// close the tab given by \c index + void closeTab(int index); /// void updateTabTexts(); @@ -307,7 +338,10 @@ private Q_SLOTS: void moveTab(int fromIndex, int toIndex); private: + /// int clicked_tab_; + /// + QToolButton * closeBufferButton; }; // TabWorkArea