]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
* src/frontends/qt4/GuiWorkArea.[Ch]:
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index c6d7908f6eed5c9230a489410ff63e3d811be65d..6f2832a5d89c6be7235a0c75bfdd408e154abf6c 100644 (file)
@@ -23,6 +23,7 @@
 #include <QResizeEvent>
 #include <QKeyEvent>
 #include <QTimer>
+#include <QPixmap>
 
 #include <queue>
 
@@ -41,22 +42,18 @@ class QLPainter;
 /// for emulating triple click
 class double_click {
 public:
-       int x;
-       int y;
        Qt::MouseButton state;
        bool active;
 
        bool operator==(QMouseEvent const & e) {
-               return x == e.x() && y == e.y()
-                       && state == e.button();
+               return state == e.button();
        }
 
        double_click()
-               : x(0), y(0), state(Qt::NoButton), active(false) {}
+               : state(Qt::NoButton), active(false) {}
 
        double_click(QMouseEvent * e)
-               : x(e->x()), y(e->y()),
-               state(e->button()), active(true) {}
+               : state(e->button()), active(true) {}
 };
 
 /** Qt only emits mouse events when the mouse is being moved, but
@@ -91,7 +88,10 @@ class GuiWorkArea : public QAbstractScrollArea, public WorkArea
 
 public:
        ///
-       GuiWorkArea(int width, int height, LyXView & lyx_view);
+       GuiWorkArea(int width, int height, int id, LyXView & lyx_view);
+
+       ///
+       bool hasFocus() const { return QAbstractScrollArea::hasFocus(); }
 
        /// return the width of the content pane
        virtual int width() const { return viewport()->width(); }
@@ -99,6 +99,8 @@ public:
        virtual int height() const { return viewport()->height(); }
        ///
        virtual void setScrollbarParams(int height, int pos, int line_height);
+       ///
+       virtual void scheduleRedraw() { schedule_redraw_ = true; }
 
        /// update the passed area.
        void update(int x, int y, int w, int h);
@@ -118,6 +120,10 @@ private:
        void dragEnterEvent(QDragEnterEvent * ev);
        ///
        void dropEvent(QDropEvent * ev);
+       ///
+       void focusInEvent(QFocusEvent *);
+       ///
+       void focusOutEvent(QFocusEvent *);
        /// repaint part of the widget
        void paintEvent(QPaintEvent * ev);
        /// widget has been resized
@@ -138,10 +144,6 @@ private:
        void inputMethodEvent(QInputMethodEvent * ev);
 
 public Q_SLOTS:
-       /// Timeout event Slot for keyboard bufferring.
-       /// \todo This is not used currently in the code, remove?
-       void keyeventTimeout();
-
        /// Adjust the LyX buffer view with the position of the scrollbar.
        /**
        * The action argument is not used in the the code, it is there
@@ -149,6 +151,8 @@ public Q_SLOTS:
        * emits an 'int' action.
        */
        void adjustViewWithScrollBar(int action = 0);
+       /// timer to limit triple clicks
+       void doubleClickTimeout();
 
 private:
        /// The slot connected to SyntheticMouseEvent::timeout.
@@ -156,25 +160,19 @@ private:
 
        ///
        SyntheticMouseEvent synthetic_mouse_event_;
-       /// \todo remove
-       QTimer step_timer_;
-       /// \todo remove
-       std::queue<boost::shared_ptr<QKeyEvent> > keyeventQueue_;
        ///
        double_click dc_event_;
 
+       ///     
+       CursorWidget * cursor_;
        ///
-       bool show_hcursor_;
-       ///
-       bool show_vcursor_;
+       void updateScreen();
        ///
-       bool lshape_cursor_;
+       QPixmap screen_;
        ///
-       QColor cursor_color_;
+       bool need_resize_;
        ///
-       CursorShape cursor_shape_;
-       ///     
-       CursorWidget * cursor_;
+       bool schedule_redraw_;
 };
 
 } // namespace frontend