]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
* LyXView::updateInset(): schedule a redraw instead of redraw immediately.
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index 2117f073cc860c2e43f6553bc964a68087051043..d9b27611132966834856c52bb124cda97bf0bc04 100644 (file)
@@ -85,13 +85,17 @@ public:
  * Qt-specific implementation of the work area
  * (buffer view GUI)
 */
+       class CursorWidget;
 class GuiWorkArea : public QAbstractScrollArea, public WorkArea
 {
        Q_OBJECT
 
 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 +103,8 @@ public:
        virtual int height() const { return viewport()->height(); }
        ///
        virtual void setScrollbarParams(int height, int pos, int line_height);
+       ///
+       virtual void sheduleRedraw() { shedule_redraw_ = true; }
 
        /// update the passed area.
        void update(int x, int y, int w, int h);
@@ -115,34 +121,33 @@ public:
 private:
        void doGreyOut(QLPainter & pain);
        ///
-       void dragEnterEvent(QDragEnterEvent * event);
+       void dragEnterEvent(QDragEnterEvent * ev);
+       ///
+       void dropEvent(QDropEvent * ev);
+       ///
+       void focusInEvent(QFocusEvent *);
        ///
-       void dropEvent(QDropEvent* event);
+       void focusOutEvent(QFocusEvent *);
        /// repaint part of the widget
-       void paintEvent(QPaintEvent * e);
+       void paintEvent(QPaintEvent * ev);
        /// widget has been resized
-       void resizeEvent(QResizeEvent * e);
+       void resizeEvent(QResizeEvent * ev);
        /// mouse button press
-       void mousePressEvent(QMouseEvent * e);
+       void mousePressEvent(QMouseEvent * ev);
        /// mouse button release
-       void mouseReleaseEvent(QMouseEvent * e);
+       void mouseReleaseEvent(QMouseEvent * ev);
        /// mouse double click of button
-       void mouseDoubleClickEvent(QMouseEvent * e);
+       void mouseDoubleClickEvent(QMouseEvent * ev);
        /// mouse motion
-       void mouseMoveEvent(QMouseEvent * e);
+       void mouseMoveEvent(QMouseEvent * ev);
        /// wheel event
-       void wheelEvent(QWheelEvent * e);
+       void wheelEvent(QWheelEvent * ev);
        /// key press
-       void keyPressEvent(QKeyEvent * e);
+       void keyPressEvent(QKeyEvent * ev);
        /// IM events
-       void inputMethodEvent(QInputMethodEvent * e);
+       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
@@ -157,40 +162,19 @@ private:
 
        ///
        SyntheticMouseEvent synthetic_mouse_event_;
-
-       /// Our client side painting device.
-       //QPixmap paint_device_;
-
-       /// \todo remove
-       QTimer step_timer_;
-
-       /// \todo remove
-       std::queue<boost::shared_ptr<QKeyEvent> > keyeventQueue_;
-
+       ///
        double_click dc_event_;
 
+       ///     
+       CursorWidget * cursor_;
        ///
-       int cursor_x_;
-       ///
-       int cursor_y_;
-       ///
-       int cursor_w_;
-       ///
-       int cursor_h_;
-       ///
-       QPixmap hcursor_;
-       ///
-       QPixmap vcursor_;
-       ///
-       bool show_hcursor_;
-       ///
-       bool show_vcursor_;
+       void updateScreen();
        ///
-       bool lshape_cursor_;
+       QPixmap screen_;
        ///
-       QColor cursor_color_;
+       bool need_resize_;
        ///
-       CursorShape cursor_shape_;
+       bool shedule_redraw_;
 };
 
 } // namespace frontend