X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FWorkArea.h;h=715f1f56e59b68a26958d310aa1f4dfd3a313acd;hb=98c966c64594611e469313314abd1e59524adb4a;hp=99cf3d538fbad3ec692ba1c5174b7775c232ba8a;hpb=cfdd73ea94c3cc0058459d67b1c62fabd31fbeb1;p=lyx.git diff --git a/src/WorkArea.h b/src/WorkArea.h index 99cf3d538f..715f1f56e5 100644 --- a/src/WorkArea.h +++ b/src/WorkArea.h @@ -1,11 +1,11 @@ // -*- C++ -*- /* This file is part of * ====================================================== - * + * * LyX, The Document Processor - * + * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ======================================================*/ @@ -18,39 +18,40 @@ #include +#include + #include FORMS_H_LOCATION #include "Painter.h" -class BufferView; - +/// 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; } + //unsigned int width() const { return backgroundbox->w + 15; } /// - int height() const { return work_area->h; } + unsigned int height() const { return work_area->h; } + //unsigned int height() const { return backgroundbox->h; } /// int xpos() const { return work_area->x; } + //int xpos() const { return backgroundbox->x; } /// int ypos() const { return work_area->y; } + //int ypos() const { return backgroundbox->y; } /// void resize(int xpos, int ypos, int width, int height); /// 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; @@ -61,89 +62,96 @@ 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 getScrollbarBounds() const { - pair p; - fl_get_slider_bounds(scrollbar, &p.first, &p.second); + std::pair const getScrollbarBounds() const { + std::pair 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); + /// a selection exists + void haveSelection(bool) const; /// - //Signal2 up; + string const getClipboard() const; /// - //Signal2 down; + void putClipboard(string const &) const; + // Signals /// - //Signal1 scroll; + SigC::Signal0 workAreaExpose; /// - //Signal0 expose; + SigC::Signal1 scrollCB; /// - //Signal3 buttonPress; + SigC::Signal2 workAreaKeyPress; /// - //Signal3 buttonRelease; + SigC::Signal3 workAreaButtonPress; /// - //Signal3 motion; + SigC::Signal3 workAreaButtonRelease; /// - //Signal0 focus; + SigC::Signal3 workAreaMotionNotify; /// - //Signal0 unfocus; + SigC::Signal0 workAreaFocus; /// - //Signal0 enter; + SigC::Signal0 workAreaUnfocus; /// - //Signal0 leave; + SigC::Signal0 workAreaEnter; /// - //Signal3 doubleclick; + SigC::Signal0 workAreaLeave; /// - //Signal3 trippleclick; + SigC::Signal3 workAreaDoubleClick; /// - //Signal2 selection; + SigC::Signal3 workAreaTripleClick; + /// emitted when an X client has requested our selection + SigC::Signal0 selectionRequested; + /// emitted when another X client has stolen our selection + SigC::Signal0 selectionLost; + + /// handles SelectionRequest X Event, to fill the clipboard + int event_cb(XEvent * xev); private: /// void createPixmap(int, int); - /// 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); + /// FL_OBJECT * backgroundbox; - /// + /// FL_OBJECT * work_area; /// FL_OBJECT * scrollbar; /// - FL_OBJECT * button_down; + mutable FL_OBJECT * splash_; /// - FL_OBJECT * button_up; - /// - BufferView * owner; + mutable FL_OBJECT * splash_text_; /// 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