4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
17 #include <boost/shared_ptr.hpp>
22 #include <X11/Xft/Xft.h>
24 // FIXME: defined in X.h, spuriously pulled in by some gui headers
35 typedef std::map<LColor_color, boost::shared_ptr<Gdk::Color> > Map;
36 typedef Map::iterator MapIt;
37 typedef std::map<LColor_color, boost::shared_ptr<XftColor> > Map2;
38 typedef Map2::iterator MapIt2;
39 Gdk::Color * getColor(LColor_color);
40 XftColor * getXftColor(LColor_color);
41 void cacheColor(LColor_color, Gdk::Color *);
42 void cacheXftColor(LColor_color, XftColor *);
49 extern ColorCache colorCache;
53 ColorHandler(GWorkArea & owner) : owner_(owner) {}
54 XftColor * getXftColor(LColor_color clr);
55 Gdk::Color * getGdkColor(LColor_color clr);
61 class GWorkArea : public sigc::trackable {
63 GWorkArea(LyXView & owner, int width, int height);
66 virtual Painter & getPainter();
68 virtual int workWidth() const;
70 virtual int workHeight() const;
71 /// return x position of window
73 /// return y position of window
76 Glib::RefPtr<Gdk::Window> getWindow();
77 Display * getDisplay() const;
78 Glib::RefPtr<Gdk::Pixmap> getPixmap();
79 Glib::RefPtr<Gdk::GC> getGC();
80 Glib::RefPtr<Gdk::Colormap> getColormap();
81 XftDraw * getXftDraw();
82 ColorHandler & getColorHandler();
84 virtual void setScrollbarParams(int height, int pos, int line_height);
85 /// a selection exists
86 virtual void haveSelection(bool);
87 void inputCommit(gchar * str);
95 bool onExpose(GdkEventExpose * event);
96 bool onConfigure(GdkEventConfigure * event);
98 bool onScrollWheel(GdkEventScroll * event);
99 bool onButtonPress(GdkEventButton * event);
100 bool onButtonRelease(GdkEventButton * event);
101 bool onMotionNotify(GdkEventMotion * event);
102 bool onKeyPress(GdkEventKey * event);
103 void onClipboardGet(Gtk::SelectionData & selection_data, guint info);
104 void onClipboardClear();
107 Gtk::DrawingArea workArea_;
108 Gtk::VScrollbar vscrollbar_;
109 /// The pixmap overlay on the workarea
110 Glib::RefPtr<Gdk::Pixmap> workAreaPixmap_;
111 Glib::RefPtr<Gdk::GC> workAreaGC_;
114 ColorHandler colorHandler_;
115 GtkIMContext * imContext_;
116 std::string inputCache_;
120 } // namespace frontend