#ifndef GWORKAREA_H
#define GWORKAREA_H
-#include <gdk/gdkx.h>
-#include "frontends/WorkArea.h"
#include "GPainter.h"
+
+#include "frontends/WorkArea.h"
+
+#include <gtkmm.h>
#include <gtk/gtk.h>
+
#include <X11/Xft/Xft.h>
-class EnumLColor;
+class LColor_color;
+class LyXView;
-class ColorCache
-{
- typedef std::map<EnumLColor, Gdk::Color *> Map;
+namespace lyx {
+namespace frontend {
+
+class ColorCache {
+public:
+ typedef std::map<LColor_color, boost::shared_ptr<Gdk::Color> > Map;
typedef Map::iterator MapIt;
- typedef std::map<EnumLColor, XftColor *> Map2;
+ typedef std::map<LColor_color, boost::shared_ptr<XftColor> > Map2;
typedef Map2::iterator MapIt2;
-public:
- ~ColorCache() { clear(); }
- Gdk::Color * getColor(EnumLColor clr)
- {
- MapIt it = cache_.find(clr);
- return it == cache_.end() ? 0 : it->second;
- }
- XftColor * getXftColor(EnumLColor clr)
- {
- MapIt2 it = cache2_.find(clr);
- return it == cache2_.end() ? 0 : it->second;
- }
- void cacheColor(EnumLColor clr, Gdk::Color * gclr)
- {
- cache_[clr] = gclr;
- }
- void cacheXftColor(EnumLColor clr, XftColor * xclr)
- {
- cache2_[clr] = xclr;
- }
+ Gdk::Color * getColor(LColor_color);
+ XftColor * getXftColor(LColor_color);
+ void cacheColor(LColor_color, Gdk::Color *);
+ void cacheXftColor(LColor_color, XftColor *);
void clear();
private:
Map cache_;
extern ColorCache colorCache;
-class ColorHandler
-{
+class ColorHandler {
public:
- ColorHandler(GWorkArea& owner) : owner_(owner) {}
- XftColor * getXftColor(EnumLColor clr);
- Gdk::Color * getGdkColor(EnumLColor clr);
+ ColorHandler(GWorkArea & owner) : owner_(owner) {}
+ XftColor * getXftColor(LColor_color clr);
+ Gdk::Color * getGdkColor(LColor_color clr);
private:
GWorkArea & owner_;
};
-class GWorkArea : public WorkArea, public SigC::Object
-{
+
+class GWorkArea : public WorkArea, public sigc::trackable {
public:
- GWorkArea(int width, int height);
+ GWorkArea(LyXView & owner, int width, int height);
~GWorkArea();
- virtual Painter & getPainter() { return painter_; }
+ virtual Painter & getPainter();
///
- virtual int workWidth() const { return workArea_.get_width(); }
+ virtual int workWidth() const;
///
- virtual int workHeight() const { return workArea_.get_height(); }
+ virtual int workHeight() const;
/// return x position of window
- int xpos() const { return 0; }
+ int xpos() const;
/// return y position of window
- int ypos() const { return 0; }
+ int ypos() const;
///
- Glib::RefPtr<Gdk::Window> getWindow() { return workArea_.get_window(); }
- Display * getDisplay() const
- { return GDK_WINDOW_XDISPLAY(
- const_cast<GdkWindow*>(workArea_.get_window()->gobj())); }
- Glib::RefPtr<Gdk::Pixmap> getPixmap() { return workAreaPixmap_; }
- Glib::RefPtr<Gdk::GC> getGC() { return workAreaGC_; }
- Glib::RefPtr<Gdk::Colormap> getColormap()
- { return workArea_.get_colormap(); }
- XftDraw * getXftDraw() { return draw_; }
- ColorHandler & getColorHandler() { return colorHandler_; }
+ Glib::RefPtr<Gdk::Window> getWindow();
+ Display * getDisplay() const;
+ Glib::RefPtr<Gdk::Pixmap> getPixmap();
+ Glib::RefPtr<Gdk::GC> getGC();
+ Glib::RefPtr<Gdk::Colormap> getColormap();
+ XftDraw * getXftDraw();
+ ColorHandler & getColorHandler();
virtual void setScrollbarParams(int height, int pos, int line_height);
/// a selection exists
virtual void haveSelection(bool) const;
///
- virtual string const getClipboard() const;
+ virtual std::string const getClipboard() const;
///
- virtual void putClipboard(string const &) const;
+ virtual void putClipboard(std::string const &) const;
void inputCommit(gchar * str);
private:
bool onExpose(GdkEventExpose * event);
bool onConfigure(GdkEventConfigure * event);
void onScroll();
+ bool onScrollWheel(GdkEventScroll * event);
bool onButtonPress(GdkEventButton * event);
bool onButtonRelease(GdkEventButton * event);
bool onMotionNotify(GdkEventMotion * event);
bool onKeyPress(GdkEventKey * event);
- void onClipboardGet(Gtk::SelectionData& selection_data, guint info);
+ void onClipboardGet(Gtk::SelectionData & selection_data, guint info);
void onClipboardClear();
Gtk::HBox hbox_;
Gtk::DrawingArea workArea_;
XftDraw * draw_;
ColorHandler colorHandler_;
GtkIMContext * imContext_;
- string inputCache_;
+ std::string inputCache_;
};
+} // namespace frontend
+} // namespace lyx
+
#endif