]> git.lyx.org Git - lyx.git/blobdiff - src/WorkArea.h
remove Last when NEW_INSETS is defined
[lyx.git] / src / WorkArea.h
index 6bc18a4c70d0d6a4591c7eb3636fb7e89364e651..7c00df597da8480065aa6e0f56b4d9b5d69df6c2 100644 (file)
 #endif
 
 #include <utility>
-using std::pair;
+
+#include <sigc++/signal_system.h>
 
 #include FORMS_H_LOCATION
 #include "Painter.h"
 
-class BufferView;
+#ifdef SIGC_CXX_NAMESPACES
+using SigC::Signal0;
+using SigC::Signal1;
+using SigC::Signal2;
+using SigC::Signal3;
+#endif
+
 
+///
 class WorkArea {
 public:
        ///
-       WorkArea(BufferView *, int xpos, int ypos, int width, int height);
+       WorkArea(int xpos, int ypos, int width, int height);
        ///
        ~WorkArea();
-#ifdef USE_PAINTER
        ///
        Painter & getPainter() { return painter_; }
-#endif
        ///
        int workWidth() const { return work_area->w; }
        ///
-       int width() const { return work_area->w + scrollbar->w; }
+       unsigned int width() const { return work_area->w + scrollbar->w; }
        ///
-       int height() const { return work_area->h; }
+       unsigned int height() const { return work_area->h; }
        ///
        int xpos() const { return work_area->x; }
        ///
@@ -50,8 +56,6 @@ public:
        void redraw() const {
                fl_redraw_object(work_area);
                fl_redraw_object(scrollbar);
-               fl_redraw_object(button_down);
-               fl_redraw_object(button_up);
        }
        ///
        void setFocus() const;
@@ -62,67 +66,68 @@ public:
        ///
        bool active() const { return work_area->active; }
        ///
+       bool belowMouse() const;
+       ///
        bool visible() const { return work_area->form->visible; }
        ///
        void greyOut() const;
        ///
        void setScrollbar(double pos, double length_fraction) const;
        ///
-       void setScrollbarValue(double y) const { fl_set_slider_value(scrollbar, y); }
+       void setScrollbarValue(double y) const {
+               fl_set_scrollbar_value(scrollbar, y);
+       }
        ///
        void setScrollbarBounds(double, double) const;
        ///
-       void setScrollbarIncrements(float inc) const;
+       void setScrollbarIncrements(double inc) const;
        ///
        double getScrollbarValue() const {
-               return fl_get_slider_value(scrollbar);
+               return fl_get_scrollbar_value(scrollbar);
        }
        ///
-       pair<double, double> getScrollbarBounds() const {
-               pair<double, double> p;
-               fl_get_slider_bounds(scrollbar, &p.first, &p.second);
+       std::pair<float, float> const getScrollbarBounds() const {
+               std::pair<float, float> p;
+               fl_get_scrollbar_bounds(scrollbar, &p.first, &p.second);
                return p;
        }
        ///
        Pixmap getPixmap() const { return workareapixmap; }
+       /// xforms callback
+       static int work_area_handler(FL_OBJECT *, int event,
+                                    FL_Coord, FL_Coord,
+                                    int /*key*/, void * xev);
+       /// xforms callback
+       static void scroll_cb(FL_OBJECT *, long);
        ///
-       //Signal2<long, int> up;
+       string const getClipboard() const;
        ///
-       //Signal2<long, int> down;
+       void putClipboard(string const &) const;
+       // Signals
        ///
-       //Signal1<double> scroll;
+       Signal0<void> workAreaExpose;
        ///
-       //Signal0 expose;
+       Signal1<void, double> scrollCB;
        ///
-       //Signal3<int, int, unsigned int> buttonPress;
+       Signal2<void, KeySym, unsigned int> workAreaKeyPress;
        ///
-       //Signal3<int, int, unsigned int> buttonRelease;
+       Signal3<void, int, int, unsigned int> workAreaButtonPress;
        ///
-       //Signal3<int, int, unsigned int> motion;
+       Signal3<void, int, int, unsigned int> workAreaButtonRelease;
        ///
-       //Signal0 focus;
+       Signal3<void, int, int, unsigned int> workAreaMotionNotify;
        ///
-       //Signal0 unfocus;
+       Signal0<void> workAreaFocus;
        ///
-       //Signal0 enter;
+       Signal0<void> workAreaUnfocus;
        ///
-       //Signal0 leave;
+       Signal0<void> workAreaEnter;
        ///
-       //Signal3<int, int, unsigned int> doubleclick;
+       Signal0<void> workAreaLeave;
        ///
-       //Signal3<int, int, unsigned int> trippleclick;
+       Signal3<void, int, int, unsigned int> workAreaDoubleClick;
        ///
-       //Signal2<Window, XEvent *> selection;
-       /// xforms callback
-       static int work_area_handler(FL_OBJECT *, int event,
-                                    FL_Coord, FL_Coord,
-                                    int /*key*/, void * xev);
-       /// xforms callback
-       static void up_cb(FL_OBJECT *, long);
-       /// xforms callback
-       static void down_cb(FL_OBJECT *, long);
-       /// xforms callback
-       static void scroll_cb(FL_OBJECT *, long);
+       Signal3<void, int, int, unsigned int> workAreaTripleClick;
 private:
        ///
        void createPixmap(int, int);
@@ -132,19 +137,13 @@ private:
        FL_OBJECT * work_area;
        ///
        FL_OBJECT * scrollbar;
-       ///
-       FL_OBJECT * button_down;
-       ///
-       FL_OBJECT * button_up;
-       ///
-       BufferView * owner;
        /// The pixmap overlay on the workarea
        Pixmap workareapixmap;
-#ifdef USE_PAINTER
        ///
        Painter painter_;
-#endif
        ///
        FL_OBJECT * figinset_canvas;
+       /// if we call redraw with true needed for locking-insets
+       bool screen_cleared;
 };
 #endif