#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 the painter object for this work area
- virtual Painter & getPainter() = 0;
-
+ /// \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 stopBlinkingCursor();
+ void startBlinkingCursor();
- /// 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);
-
+ /// 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:
/// cause the display of the given area of the work area
virtual void expose(int x, int y, int w, int h) = 0;
-
-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 dispatch(FuncRequest const & cmd0,
+ key_modifier::state = key_modifier::none);
+ ///
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;
+ ///
+ void updateScrollbar();
///
BufferView * buffer_view_;
///
LyXView & lyx_view_;
+ ///
+ bool greyed_out_;
private:
///
- void updateScrollbar();
- ///
- void checkAndGreyOut();
+ int id_;
///
void displayMessage(docstring const &);
/// buffer messages signal connection
boost::signals::connection message_connection_;
- ///
- bool greyed_out_;
-
/// is the cursor currently displayed
bool cursor_visible_;