]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/gtk/GWorkArea.h
Change glob() API to accept a dir parameter.
[lyx.git] / src / frontends / gtk / GWorkArea.h
index ae7940fc65d7ae7639db803aed4ad8f8756af2b8..eaeb971e08d51815c61ed2662b4a23393ccaffc8 100644 (file)
@@ -6,45 +6,37 @@
  *
  * \author Huang Ying
  *
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef GWORKAREA_H
 #define GWORKAREA_H
 
-#include <gdk/gdkx.h>
-#include "frontends/WorkArea.h"
 #include "GPainter.h"
-#include "LColor.h"
+
+#include "frontends/WorkArea.h"
+
+#include <gtkmm.h>
 #include <gtk/gtk.h>
+
 #include <X11/Xft/Xft.h>
 
-class ColorCache
-{
-       typedef std::map<LColor::color, Gdk::Color *> Map;
+class LColor_color;
+class LyXView;
+
+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<LColor::color, XftColor *> Map2;
+       typedef std::map<LColor_color, boost::shared_ptr<XftColor> > Map2;
        typedef Map2::iterator MapIt2;
-public:
-       ~ColorCache() { clear(); }
-       Gdk::Color * getColor(LColor::color clr)
-       {
-               MapIt it = cache_.find(clr);
-               return it == cache_.end() ? 0 : it->second;
-       }
-       XftColor * getXftColor(LColor::color clr)
-       {
-               MapIt2 it = cache2_.find(clr);
-               return it == cache2_.end() ? 0 : it->second;
-       }
-       void cacheColor(LColor::color clr, Gdk::Color * gclr)
-       {
-               cache_[clr] = gclr;
-       }
-       void cacheXftColor(LColor::color 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_;
@@ -53,60 +45,57 @@ private:
 
 extern ColorCache colorCache;
 
-class ColorHandler
-{
+class ColorHandler {
 public:
-       ColorHandler(GWorkArea& owner) : owner_(owner) {}
-       XftColor * getXftColor(LColor::color clr);
-       Gdk::Color * getGdkColor(LColor::color 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_;
@@ -119,7 +108,10 @@ private:
        XftDraw * draw_;
        ColorHandler colorHandler_;
        GtkIMContext * imContext_;
-       string inputCache_;
+       std::string inputCache_;
 };
 
+} // namespace frontend
+} // namespace lyx
+
 #endif