X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fwidget.h;h=557df434adcd34f98d858324ab753e8271b9a1a5;hb=b23464cda4e4f2c7b69b18549f18c2c893c3fe2d;hp=f64e2ea08235c1a9f41e47059c813c3ce49acf30;hpb=c1f038acb91eb3bfaa34dfd4729d19ed3f871a42;p=libs%2Fgltk.git diff --git a/source/widget.h b/source/widget.h index f64e2ea..557df43 100644 --- a/source/widget.h +++ b/source/widget.h @@ -15,22 +15,44 @@ class Style; class Widget { public: + class Loader: public Msp::DataFile::Loader + { + protected: + Widget &wdg; + + public: + Loader(Widget &); + Widget &get_object() const { return wdg; } + private: + void position(int, int); + void size(unsigned, unsigned); + void style(const std::string &); + }; + virtual ~Widget() { } void set_position(int, int); void set_size(unsigned, unsigned); void set_geometry(const Geometry &); void set_style(const std::string &); const Geometry &get_geometry() const { return geom; } + bool is_visible() const { return visible; } void render() const; - bool button_press(int, int, unsigned); - bool button_release(int, int, unsigned); - bool pointer_motion(int, int); + virtual void button_press(int, int, unsigned) { } + virtual void button_release(int, int, unsigned) { } + virtual void pointer_motion(int, int) { } + virtual void pointer_enter() { } + virtual void pointer_leave() { } + virtual void key_press(unsigned, unsigned, wchar_t) { } + virtual void key_release(unsigned, unsigned) { } + virtual void focus_in() { } + virtual void focus_out() { } protected: const Resources &res; Geometry geom; std::string style_name; const Style *style; State state; + bool visible; Widget(const Resources &); virtual const char *get_class() const { return "widget"; } @@ -38,11 +60,6 @@ protected: virtual void render_part(const Part &) const; void render_graphic(const Part &) const; void render_text(const Part &, const std::string &) const; - virtual void on_button_press(int, int, unsigned) { } - virtual void on_button_release(int, int, unsigned) { } - virtual void on_pointer_motion(int, int, unsigned) { } - virtual void on_pointer_enter() { } - virtual void on_pointer_leave() { } }; } // namespace GLtk