]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
* TabWorkArea: rename 'close tab' button to 'close buffer' and add a 'close tab'...
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index 004d26042044c56de5cc96ca98c6db5741280569..b528bb478efee30d2349a87bfdb7a862f8171682 100644 (file)
 #include "support/Timeout.h"
 
 #include <QAbstractScrollArea>
-#include <QKeyEvent>
 #include <QMouseEvent>
 #include <QPixmap>
 #include <QResizeEvent>
 #include <QTabWidget>
 #include <QTimer>
 
-#include <queue>
-
-class QWidget;
+class QContextMenuEvent;
 class QDragEnterEvent;
 class QDropEvent;
+class QKeyEvent;
 class QWheelEvent;
 class QPaintEvent;
+class QWidget;
 
 #ifdef CursorShape
 #undef CursorShape
@@ -110,27 +109,10 @@ public:
        ///
        ~GuiWorkArea();
 
-       /**
-        * Update the scrollbar.
-        * @param height the total document height in pixels
-        * @param pos the current position in the document, in pixels
-        * @param line_height the line-scroll amount, in pixels
-        */
-       void setScrollbarParams(int height, int pos, int line_height);
+       ///
+       void setFullScreen(bool full_screen);
        ///
        void scheduleRedraw() { schedule_redraw_ = true; }
-
-       /// update the passed area.
-       void update(int x, int y, int w, int h);
-
-       /// copies specified area of pixmap to screen
-       virtual void expose(int x, int y, int exp_width, int exp_height);
-
-       /// paint the cursor and store the background
-       virtual void showCursor(int x, int y, int h, CursorShape shape);
-
-       /// hide the cursor
-       virtual void removeCursor();
        ///
        BufferView & bufferView();
        ///
@@ -144,35 +126,50 @@ public:
        /// Process Key pressed event.
        /// This needs to be public because it is accessed externally by GuiView.
        void processKeySym(KeySymbol const & key, KeyModifier mod);
+       ///
+       void resizeBufferView();
 
-public Q_SLOTS:
-       /// Adjust the LyX buffer view with the position of the scrollbar.
+Q_SIGNALS:
+       ///
+       void titleChanged(GuiWorkArea *);
+
+private Q_SLOTS:
+       /// Scroll the BufferView.
        /**
-       * The action argument is not used in the the code, it is there
-       * only for the connection to the vertical srollbar signal which
-       * emits an 'int' action.
+         * This is a slot for the valueChanged() signal of the vertical scrollbar.
+         * \p value value of the scrollbar.
        */
-       void adjustViewWithScrollBar(int action = 0);
+       void scrollTo(int value);
        /// timer to limit triple clicks
        void doubleClickTimeout();
-
+       /// toggle the cursor's visibility
+       void toggleCursor();
        /// close this work area.
        /// Slot for Buffer::closing signal.
        void close();
-       ////
-       void setWindowTitle(docstring const & t, docstring const & it);
 
-Q_SIGNALS:
+private:
+       /// update the passed area.
+       void update(int x, int y, int w, int h);
        ///
-       void titleChanged(GuiWorkArea *);
+       void updateScreen();
+
+       /// paint the cursor and store the background
+       virtual void showCursor(int x, int y, int h, CursorShape shape);
+
+       /// hide the cursor
+       virtual void removeCursor();
 
-private:
        /// This function is called when the buffer readonly status change.
        void setReadOnly(bool);
 
        /// Update window titles of all users.
        void updateWindowTitle();
        ///
+       bool event(QEvent *);
+       ///
+       void contextMenuEvent(QContextMenuEvent *);
+       ///
        void focusInEvent(QFocusEvent *);
        ///
        void focusOutEvent(QFocusEvent *);
@@ -201,14 +198,10 @@ private:
        void generateSyntheticMouseEvent();
        ///
        void dispatch(FuncRequest const & cmd0, KeyModifier = NoModifier);
-       ///
-       void resizeBufferView();
        /// hide the visible cursor, if it is visible
        void hideCursor();
        /// show the cursor if it is not visible
        void showCursor();
-       /// toggle the cursor's visibility
-       void toggleCursor();
        ///
        void updateScrollbar();
 
@@ -220,7 +213,7 @@ private:
        bool cursor_visible_;
 
        ///
-       Timeout cursor_timeout_;
+       QTimer cursor_timeout_;
        ///
        SyntheticMouseEvent synthetic_mouse_event_;
        ///
@@ -229,8 +222,6 @@ private:
        ///
        CursorWidget * cursor_;
        ///
-       void updateScreen();
-       ///
        QPixmap screen_;
        ///
        bool need_resize_;
@@ -248,9 +239,12 @@ class TabWorkArea : public QTabWidget
 public:
        TabWorkArea(QWidget * parent = 0);
 
+       ///
+       void setFullScreen(bool full_screen);
        void showBar(bool show);
        void closeAll();
        bool setCurrentWorkArea(GuiWorkArea *);
+       GuiWorkArea * addWorkArea(Buffer & buffer, GuiView & view);
        bool removeWorkArea(GuiWorkArea *);
        GuiWorkArea * currentWorkArea();
        GuiWorkArea * workArea(Buffer & buffer);
@@ -263,6 +257,8 @@ public Q_SLOTS:
        ///
        void on_currentTabChanged(int index);
        ///
+       void closeCurrentBuffer();
+       ///
        void closeCurrentTab();
        ///
        void updateTabText(GuiWorkArea *);