gameui
diff 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 |
line diff
1.1 --- a/include/widget.h Thu Mar 20 07:03:58 2014 +0200 1.2 +++ b/include/widget.h Fri Mar 21 03:37:16 2014 +0200 1.3 @@ -1,18 +1,12 @@ 1.4 #ifndef GAMEUI_WIDGET_H_ 1.5 #define GAMEUI_WIDGET_H_ 1.6 1.7 +#include "vec.h" 1.8 +#include "event.h" 1.9 + 1.10 namespace gameui { 1.11 1.12 -class Vec2 { 1.13 -public: 1.14 - float x, y; 1.15 - 1.16 - Vec2() : x(0), y(0) {} 1.17 - Vec2(float xx, float yy) : x(xx), y(yy) {} 1.18 -}; 1.19 - 1.20 -class BBox { 1.21 -public: 1.22 +struct BBox { 1.23 Vec2 bmin, bmax; 1.24 }; 1.25 1.26 @@ -20,44 +14,65 @@ 1.27 1.28 class Widget { 1.29 private: 1.30 - WidgetImpl *impl; 1.31 + WidgetImpl *widget; 1.32 + 1.33 + void set_type_string(const char *type_str); 1.34 1.35 public: 1.36 - enum VisState { 1.37 - VST_HIDDEN, 1.38 - VST_EASEIN, 1.39 - VST_VISIBLE, 1.40 - VST_EASEOUT 1.41 - }; 1.42 - enum ActiveState { 1.43 - AST_INACTIVE, 1.44 - AST_EASEIN, 1.45 - AST_ACTIVE, 1.46 - AST_EASEOUT 1.47 - }; 1.48 - 1.49 Widget(); 1.50 virtual ~Widget(); 1.51 1.52 virtual void show(); 1.53 virtual void hide(); 1.54 virtual float get_visibility() const; 1.55 + virtual bool is_visible() const; 1.56 1.57 virtual void activate(); 1.58 virtual void deactivate(); 1.59 virtual float get_active() const; 1.60 + virtual bool is_active() const; 1.61 + 1.62 + virtual void press(); 1.63 + virtual void release(); 1.64 + virtual float get_pressed() const; 1.65 + virtual bool is_pressed() const; 1.66 + 1.67 + virtual void mousein(); 1.68 + virtual void mouseout(); 1.69 + virtual float get_under_mouse() const; 1.70 + virtual bool is_under_mouse() const; 1.71 + 1.72 + virtual void set_position(float x, float y); 1.73 + virtual void set_position(const Vec2 &pos); 1.74 + virtual const Vec2 &get_position() const; 1.75 + 1.76 + virtual void set_size(float x, float y); 1.77 + virtual void set_size(const Vec2 &size); 1.78 + virtual const Vec2 get_size() const; 1.79 1.80 virtual const BBox &get_box() const; 1.81 - virtual const Vec2 &get_position() const; 1.82 - virtual const Vec2 &get_size() const; 1.83 1.84 virtual bool hit_test(const Vec2 &pt) const; 1.85 1.86 - virtual void draw() const = 0; 1.87 + virtual void draw() const; 1.88 + 1.89 + // low level events 1.90 + virtual void on_mouse_button(const ButtonEvent &ev); 1.91 + virtual void on_mouse_motion(const MotionEvent &ev); 1.92 + virtual void on_mouse_focus(const FocusEvent &ev); 1.93 + virtual void on_key(const KeyEvent &ev); 1.94 + 1.95 + // high level events 1.96 + virtual void on_click(); 1.97 + virtual void on_double_click(); 1.98 + virtual void on_change(); 1.99 + //virtual void on_drag_move(int bn, const Vec2 &pt); 1.100 + //virtual void on_drag_release(int bn, const Vec2 &pt); 1.101 + 1.102 + // event dispatcher 1.103 + virtual void handle_event(const Event &ev); 1.104 }; 1.105 1.106 -long get_cur_time(); 1.107 - 1.108 } 1.109 1.110 #endif // GAMEUI_WIDGET_H_