]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
do what the FIXME suggested
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index ed54cb87a65296c8a0e7a14c41fa1a1d7b43ac09..6c808677e43eb59a9b759af2e7f9a0ed54585f83 100644 (file)
 #define WORKAREA_H
 
 #include "frontends/WorkArea.h"
+#include "frontends/qt4/GuiCompleter.h"
 
+#include "DocIterator.h"
 #include "FuncRequest.h"
+#include "qt_helpers.h"
+#include "support/docstring.h"
 #include "support/Timeout.h"
 
 #include <QAbstractScrollArea>
@@ -44,16 +48,7 @@ class Buffer;
 namespace frontend {
 
 class GuiView;
-
-/// types of cursor in work area
-enum CursorShape {
-       /// normal I-beam
-       BAR_SHAPE,
-       /// L-shape for locked insets of a different language
-       L_SHAPE,
-       /// reverse L-shape for RTL text
-       REVERSED_L_SHAPE
-};
+class GuiWorkArea;
 
 /// for emulating triple click
 class DoubleClick {
@@ -109,6 +104,10 @@ public:
        ///
        ~GuiWorkArea();
 
+       ///
+       void setFullScreen(bool full_screen);
+       /// is LyXView in fullscreen mode?
+       bool isFullScreen();
        ///
        void scheduleRedraw() { schedule_redraw_ = true; }
        ///
@@ -127,6 +126,9 @@ public:
        ///
        void resizeBufferView();
 
+       ///
+       GuiCompleter & completer() { return completer_; }
+       
 Q_SIGNALS:
        ///
        void titleChanged(GuiWorkArea *);
@@ -142,20 +144,21 @@ private Q_SLOTS:
        void doubleClickTimeout();
        /// toggle the cursor's visibility
        void toggleCursor();
-       /// events to be triggered by general_timer_ should go here
-       void handleRegularEvents();
        /// close this work area.
        /// Slot for Buffer::closing signal.
        void close();
 
 private:
+       friend class GuiCompleter;
+
        /// update the passed area.
        void update(int x, int y, int w, int h);
        ///
        void updateScreen();
 
        /// paint the cursor and store the background
-       virtual void showCursor(int x, int y, int h, CursorShape shape);
+       virtual void showCursor(int x, int y, int h,
+               bool l_shape, bool rtl, bool completable);
 
        /// hide the cursor
        virtual void removeCursor();
@@ -214,10 +217,6 @@ private:
 
        ///
        QTimer cursor_timeout_;
-       /// this timer is used for any regular events one wants to
-       /// perform. at present it is used to check if forked processes
-       /// are done.
-       QTimer general_timer_;
        ///
        SyntheticMouseEvent synthetic_mouse_event_;
        ///
@@ -233,6 +232,9 @@ private:
        bool schedule_redraw_;
        ///
        int preedit_lines_;
+
+       ///
+       GuiCompleter completer_;
 }; // GuiWorkArea
 
 
@@ -243,6 +245,8 @@ class TabWorkArea : public QTabWidget
 public:
        TabWorkArea(QWidget * parent = 0);
 
+       ///
+       void setFullScreen(bool full_screen);
        void showBar(bool show);
        void closeAll();
        bool setCurrentWorkArea(GuiWorkArea *);
@@ -259,6 +263,8 @@ public Q_SLOTS:
        ///
        void on_currentTabChanged(int index);
        ///
+       void closeCurrentBuffer();
+       ///
        void closeCurrentTab();
        ///
        void updateTabText(GuiWorkArea *);