#define BASE_WORKAREA_H
#include "frontends/key_state.h"
-#include "frontends/LyXKeySym.h"
+#include "frontends/KeySymbol.h"
#include "frontends/Timeout.h"
#include "support/docstring.h"
#include <boost/signals/trackable.hpp>
-// FIXME: defined in X.h, spuriously pulled in by Qt 3 headers
-#undef CursorShape
namespace lyx {
*/
class WorkArea : public boost::signals::trackable {
public:
- WorkArea(LyXView & lyx_view);
+ WorkArea(int id, LyXView & lyx_view);
virtual ~WorkArea() {}
+ int const id() const { return id_; }
+
void setBufferView(BufferView * buffer_view);
///
///
BufferView const & bufferView() const;
+ /// \return true if has the keyboard input focus.
+ virtual bool hasFocus() const = 0;
+
/// return the width of the work area in pixels
virtual int width() const = 0;
*/
virtual void setScrollbarParams(int height, int pos, int line_height) = 0;
+ ///
+ virtual void scheduleRedraw() = 0;
+
/// redraw the screen, without using existing pixmap
virtual void redraw();
///
- void checkAndGreyOut();
+ void stopBlinkingCursor();
+ void startBlinkingCursor();
+ /// Process Key pressed event.
+ /// This needs to be public because it is accessed externally by GuiView.
+ void processKeySym(KeySymbolPtr key, key_modifier::state state);
protected:
- /// grey out (no buffer)
- virtual void greyOut();
- ///
- void processKeySym(LyXKeySymPtr key, key_modifier::state state);
/// cause the display of the given area of the work area
virtual void expose(int x, int y, int w, int h) = 0;
///
- void dispatch(FuncRequest const & cmd0);
+ void dispatch(FuncRequest const & cmd0,
+ key_modifier::state = key_modifier::none);
///
void resizeBufferView();
///
bool greyed_out_;
private:
+ ///
+ int id_;
///
void displayMessage(docstring const &);
/// buffer messages signal connection