X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FWorkArea.h;h=d6912fc7fad982d59ba7ec90675ff970eee0a4e8;hb=f66146973407ecb44ca93bae074ee916d5ed2f04;hp=63fcc1c147f4cdf763b89c43725a1d8a54795c5e;hpb=f475b7bde6ef1213ce744e209346f029e9ef12d7;p=lyx.git diff --git a/src/frontends/WorkArea.h b/src/frontends/WorkArea.h index 63fcc1c147..d6912fc7fa 100644 --- a/src/frontends/WorkArea.h +++ b/src/frontends/WorkArea.h @@ -11,145 +11,35 @@ * Full author contact details are available in file CREDITS. */ -// X11 use a define called CursorShape, and we really want to use -// that name our selves. Therefore we do something similar to what is done -// in kde/fixx11h.h: -namespace X { -#ifdef CursorShape -#ifndef FIXX11H_CursorShape -#define FIXX11H_CursorShape -int const XCursorShape = CursorShape; -#undef CursorShape -int const CursorShape = CursorShape; -#endif -#undef CursorShape -#endif -} // namespace X - - #ifndef BASE_WORKAREA_H #define BASE_WORKAREA_H -#include "frontends/key_state.h" -#include "frontends/LyXKeySym.h" -#include "frontends/Timeout.h" - - -class BufferView; -class FuncRequest; -class LyXView; +#include "frontends/KeyModifier.h" namespace lyx { -namespace frontend { -class Painter; - -/// 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 -}; +namespace frontend { /** - * The work area class represents the widget that provides the - * view onto a document. It is owned by the BufferView, and - * is responsible for handing events back to its owning BufferView. - * It works in concert with the BaseScreen class to update the - * widget view of a document. + * The work area class represents the widget that provides the view + * onto a document. It owns the BufferView, and is responsible for + * handing events back to its BufferView. */ -class WorkArea { -public: - WorkArea(LyXView & lyx_view); - - virtual ~WorkArea() {} - - void setBufferView(BufferView * buffer_view); - - /// - BufferView & bufferView(); - /// - BufferView const & bufferView() const; - - - /// return the painter object for this work area - virtual Painter & getPainter() = 0; - - /// return the width of the work area in pixels - virtual int width() const = 0; - - /// return the height of the work area in pixels - virtual int height() const = 0; - - /** - * Update the scrollbar. - * @param height the total document height in pixels - * @param pos the current position in the document, in pixels - * @param line_height the line-scroll amount, in pixels - */ - virtual void setScrollbarParams(int height, int pos, int line_height) = 0; - - /// redraw the screen, without using existing pixmap - virtual void redraw(); - - /// grey out (no buffer) - void greyOut(); - - /// FIXME: should be protected, public until the qt3 and gtk frontends are - /// cleaned up. - void processKeySym(LyXKeySymPtr key, key_modifier::state state); - -protected: - /// cause the display of the given area of the work area - virtual void expose(int x, int y, int w, int h) = 0; - +class WorkArea +{ public: - /// FIXME: This is public because of qt3 and gtk, should be protected - void dispatch(FuncRequest const & cmd0); - - /// FIXME: This is public because of qt3 and gtk, should be protected - void resizeBufferView(); - - /// FIXME: This is public because of qt3 and gtk, should be protected - void scrollBufferView(int position); - -protected: - /// hide the visible cursor, if it is visible - void hideCursor(); - - /// show the cursor if it is not visible - void showCursor(); - - /// toggle the cursor's visibility - void toggleCursor(); - - /// hide the cursor - virtual void removeCursor() = 0; - - /// paint the cursor and store the background - virtual void showCursor(int x, int y, int h, CursorShape shape) = 0; - - /// - BufferView * buffer_view_; - /// - LyXView & lyx_view_; + virtual ~WorkArea() {} -private: - /// - void checkAndGreyOut(); + /// Update metrics if needed and schedule a paint event + virtual void scheduleRedraw(bool update_metrics) = 0; - /// - bool greyed_out_; + /// close this work area. + /// Slot for Buffer::closing signal. + virtual void close() = 0; - /// is the cursor currently displayed - bool cursor_visible_; - - /// - Timeout cursor_timeout_; + /// Update window titles of all users. + virtual void updateWindowTitle() = 0; }; } // namespace frontend