X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FWorkArea.h;h=d6912fc7fad982d59ba7ec90675ff970eee0a4e8;hb=f66146973407ecb44ca93bae074ee916d5ed2f04;hp=6248af5d01fff08a2e720923791f478186c02442;hpb=6e4ee366a9e19ebc3cfbaa09311f4c2c3ed161c3;p=lyx.git diff --git a/src/frontends/WorkArea.h b/src/frontends/WorkArea.h index 6248af5d01..d6912fc7fa 100644 --- a/src/frontends/WorkArea.h +++ b/src/frontends/WorkArea.h @@ -6,79 +6,43 @@ * * \author unknown * \author John Levon + * \author Abdelrazak Younes * * Full author contact details are available in file CREDITS. */ -#ifndef WORKAREA_H -#define WORKAREA_H +#ifndef BASE_WORKAREA_H +#define BASE_WORKAREA_H -#include "frontends/key_state.h" +#include "frontends/KeyModifier.h" -#include -#include -#include -#include -#include +namespace lyx { -#include "support/std_string.h" -#include - -class Painter; -class FuncRequest; -class LyXKeySym; +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 LyXScreen 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 { +class WorkArea +{ public: - typedef boost::shared_ptr LyXKeySymPtr; - - WorkArea() {} - + /// virtual ~WorkArea() {} - /// return the painter object for this work area - virtual Painter & getPainter() = 0; + /// Update metrics if needed and schedule a paint event + virtual void scheduleRedraw(bool update_metrics) = 0; - /// return the width of the work area in pixels - virtual int workWidth() const = 0; - /// return the height of the work area in pixels - virtual int workHeight() const = 0; + /// close this work area. + /// Slot for Buffer::closing signal. + virtual void close() = 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; - - // FIXME: this is an odd place to have it, but xforms needs it here ... - /// a selection exists - virtual void haveSelection(bool) const = 0; - /// get the X clipboard contents - virtual string const getClipboard() const = 0; - /// fill the clipboard - virtual void putClipboard(string const &) const = 0; - - /// work area dimensions have changed - boost::signal0 workAreaResize; - /// the scrollbar has changed - boost::signal1 scrollDocView; - /// a key combination has been pressed - boost::signal2 workAreaKeyPress; - /// some mouse event - boost::signal1 dispatch; - /// emitted when an X client has requested our selection - boost::signal0 selectionRequested; - /// emitted when another X client has stolen our selection - boost::signal0 selectionLost; + /// Update window titles of all users. + virtual void updateWindowTitle() = 0; }; -#endif // WORKAREA_H +} // namespace frontend +} // namespace lyx + +#endif // BASE_WORKAREA_H