]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
If we are in a closeEvent, we don't want to close all buffers, because these may...
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index 4d531b9ec3fdfff31d15e16a14938bf3f9dbfb1f..9d6bfe78f1574a7f73356d24e5f866b8e8df47c1 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;
 };
 
 
@@ -101,10 +103,18 @@ class GuiWorkArea : public QAbstractScrollArea, public WorkArea
 
 public:
        ///
-       GuiWorkArea(Buffer & buffer, GuiView & lv);
+       GuiWorkArea(QWidget *);
+       ///
+       GuiWorkArea(Buffer & buffer, GuiView & gv);
        ///
        ~GuiWorkArea();
 
+       ///
+       void init();
+       ///
+       void setBuffer(Buffer &);
+       ///
+       void setGuiView(GuiView &);
        ///
        void setFullScreen(bool full_screen);
        /// is LyXView in fullscreen mode?
@@ -127,9 +137,17 @@ public:
        ///
        void resizeBufferView();
 
+       bool inDialogMode() const { return dialog_mode_; }
+       void setDialogMode(bool mode) { dialog_mode_ = mode; }
+
        ///
        GuiCompleter & completer() { return *completer_; }
-       
+
+
+       /// Return the GuiView this workArea belongs to
+       GuiView const & view() const { return *lyx_view_; }
+       GuiView & view() { return *lyx_view_; }
+
 Q_SIGNALS:
        ///
        void titleChanged(GuiWorkArea *);
@@ -238,9 +256,44 @@ private:
 
        ///
        GuiCompleter * completer_;
+
+       /// Special mode in which Esc and Enter (with or without Shift)
+       /// are ignored
+       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
 {
@@ -281,7 +334,12 @@ private Q_SLOTS:
        void moveTab(int fromIndex, int toIndex);
 
 private:
+       ///
        int clicked_tab_;
+#if QT_VERSION < 0x040500
+       ///
+       QToolButton * closeBufferButton;
+#endif
 }; // TabWorkArea
 
 
@@ -316,6 +374,10 @@ private:
 Q_SIGNALS:
        ///
        void tabMoveRequested(int fromIndex, int toIndex);
+
+private Q_SLOTS:
+       ///
+       void on_tabCloseRequested(int index);
 };
 
 } // namespace frontend