]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index 9694977117bb22db3ed8c9036b1c6460a20e7f03..4ec0af11a9fbd320b0bea301543a3b64563d9f06 100644 (file)
@@ -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