gameui
annotate include/widget.h @ 3:f1014234dece
transitions in gui elements are awesome :)
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Fri, 21 Mar 2014 03:37:16 +0200 |
parents | e5b1525084f7 |
children | e0916bb20b7f |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef GAMEUI_WIDGET_H_ |
nuclear@0 | 2 #define GAMEUI_WIDGET_H_ |
nuclear@0 | 3 |
nuclear@3 | 4 #include "vec.h" |
nuclear@3 | 5 #include "event.h" |
nuclear@3 | 6 |
nuclear@0 | 7 namespace gameui { |
nuclear@0 | 8 |
nuclear@3 | 9 struct BBox { |
nuclear@0 | 10 Vec2 bmin, bmax; |
nuclear@0 | 11 }; |
nuclear@0 | 12 |
nuclear@2 | 13 struct WidgetImpl; |
nuclear@0 | 14 |
nuclear@0 | 15 class Widget { |
nuclear@0 | 16 private: |
nuclear@3 | 17 WidgetImpl *widget; |
nuclear@3 | 18 |
nuclear@3 | 19 void set_type_string(const char *type_str); |
nuclear@0 | 20 |
nuclear@0 | 21 public: |
nuclear@0 | 22 Widget(); |
nuclear@0 | 23 virtual ~Widget(); |
nuclear@0 | 24 |
nuclear@0 | 25 virtual void show(); |
nuclear@0 | 26 virtual void hide(); |
nuclear@0 | 27 virtual float get_visibility() const; |
nuclear@3 | 28 virtual bool is_visible() const; |
nuclear@0 | 29 |
nuclear@0 | 30 virtual void activate(); |
nuclear@0 | 31 virtual void deactivate(); |
nuclear@0 | 32 virtual float get_active() const; |
nuclear@3 | 33 virtual bool is_active() const; |
nuclear@3 | 34 |
nuclear@3 | 35 virtual void press(); |
nuclear@3 | 36 virtual void release(); |
nuclear@3 | 37 virtual float get_pressed() const; |
nuclear@3 | 38 virtual bool is_pressed() const; |
nuclear@3 | 39 |
nuclear@3 | 40 virtual void mousein(); |
nuclear@3 | 41 virtual void mouseout(); |
nuclear@3 | 42 virtual float get_under_mouse() const; |
nuclear@3 | 43 virtual bool is_under_mouse() const; |
nuclear@3 | 44 |
nuclear@3 | 45 virtual void set_position(float x, float y); |
nuclear@3 | 46 virtual void set_position(const Vec2 &pos); |
nuclear@3 | 47 virtual const Vec2 &get_position() const; |
nuclear@3 | 48 |
nuclear@3 | 49 virtual void set_size(float x, float y); |
nuclear@3 | 50 virtual void set_size(const Vec2 &size); |
nuclear@3 | 51 virtual const Vec2 get_size() const; |
nuclear@0 | 52 |
nuclear@0 | 53 virtual const BBox &get_box() const; |
nuclear@0 | 54 |
nuclear@0 | 55 virtual bool hit_test(const Vec2 &pt) const; |
nuclear@0 | 56 |
nuclear@3 | 57 virtual void draw() const; |
nuclear@3 | 58 |
nuclear@3 | 59 // low level events |
nuclear@3 | 60 virtual void on_mouse_button(const ButtonEvent &ev); |
nuclear@3 | 61 virtual void on_mouse_motion(const MotionEvent &ev); |
nuclear@3 | 62 virtual void on_mouse_focus(const FocusEvent &ev); |
nuclear@3 | 63 virtual void on_key(const KeyEvent &ev); |
nuclear@3 | 64 |
nuclear@3 | 65 // high level events |
nuclear@3 | 66 virtual void on_click(); |
nuclear@3 | 67 virtual void on_double_click(); |
nuclear@3 | 68 virtual void on_change(); |
nuclear@3 | 69 //virtual void on_drag_move(int bn, const Vec2 &pt); |
nuclear@3 | 70 //virtual void on_drag_release(int bn, const Vec2 &pt); |
nuclear@3 | 71 |
nuclear@3 | 72 // event dispatcher |
nuclear@3 | 73 virtual void handle_event(const Event &ev); |
nuclear@0 | 74 }; |
nuclear@0 | 75 |
nuclear@0 | 76 } |
nuclear@0 | 77 |
nuclear@0 | 78 #endif // GAMEUI_WIDGET_H_ |