X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FWorkArea.h;h=8e459ca37524f3aa11240b1947f81ca1d4d00591;hb=c9f7ce0a7a6d48b9b60af92828654aa7547286b4;hp=306b655532b6bad3b91045067c4447bdf876ccad;hpb=fe8bce66763174f67f8546cb51008e2bc8863144;p=lyx.git diff --git a/src/frontends/WorkArea.h b/src/frontends/WorkArea.h index 306b655532..8e459ca375 100644 --- a/src/frontends/WorkArea.h +++ b/src/frontends/WorkArea.h @@ -15,35 +15,14 @@ #define BASE_WORKAREA_H #include "frontends/KeyModifier.h" -#include "frontends/Delegates.h" - -#include "support/Timeout.h" -#include "support/docstring.h" - -#undef CursorShape namespace lyx { -class Buffer; class BufferView; -class FuncRequest; class KeySymbol; namespace frontend { -class LyXView; -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 -}; - /** * The work area class represents the widget that provides the * view onto a document. It is owned by the BufferView, and @@ -55,101 +34,17 @@ class WorkArea { public: /// - WorkArea(Buffer & buffer, LyXView & lv); - - virtual ~WorkArea(); - - /// - void setLyXView(LyXView & lv) { lyx_view_ = &lv; } - - /// - BufferView & bufferView(); - /// - BufferView const & bufferView() const; - - /// \return true if has the keyboard input focus. - virtual bool hasFocus() const = 0; - - /// \return true if has this WorkArea is visible. - virtual bool isVisible() const = 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; - - /// - virtual void scheduleRedraw() = 0; + virtual ~WorkArea() {} /// redraw the screen, without using existing pixmap - virtual void redraw(); - /// - void stopBlinkingCursor(); - void startBlinkingCursor(); - - /// Process Key pressed event. - /// This needs to be public because it is accessed externally by GuiView. - void processKeySym(KeySymbol const & key, KeyModifier mod); + virtual void redraw(bool update_metrics) = 0; /// close this work area. /// Slot for Buffer::closing signal. - void close(); - - /// This function is called when the buffer readonly status change. - virtual void setReadOnly(bool); + virtual void close() = 0; /// Update window titles of all users. - virtual void updateWindowTitle(); - -protected: - /// cause the display of the given area of the work area - virtual void expose(int x, int y, int w, int h) = 0; - - /// set title of window. - /** - * @param t main window title - * @param it iconified (short) title - */ - virtual void setWindowTitle(docstring const & t, docstring const & it) = 0; - - /// - void dispatch(FuncRequest const & cmd0, KeyModifier = NoModifier); - - /// - void resizeBufferView(); - /// 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; - /// - void updateScrollbar(); - - /// - BufferView * buffer_view_; - /// - LyXView * lyx_view_; - -private: - /// is the cursor currently displayed - bool cursor_visible_; - - /// - Timeout cursor_timeout_; + virtual void updateWindowTitle() = 0; }; } // namespace frontend