gameui
annotate include/widget.h @ 2:e5b1525084f7
boolanim
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 20 Mar 2014 07:03:58 +0200 |
parents | 3aa12cdb9925 |
children | f1014234dece |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef GAMEUI_WIDGET_H_ |
nuclear@0 | 2 #define GAMEUI_WIDGET_H_ |
nuclear@0 | 3 |
nuclear@0 | 4 namespace gameui { |
nuclear@0 | 5 |
nuclear@0 | 6 class Vec2 { |
nuclear@0 | 7 public: |
nuclear@0 | 8 float x, y; |
nuclear@0 | 9 |
nuclear@0 | 10 Vec2() : x(0), y(0) {} |
nuclear@0 | 11 Vec2(float xx, float yy) : x(xx), y(yy) {} |
nuclear@0 | 12 }; |
nuclear@0 | 13 |
nuclear@0 | 14 class BBox { |
nuclear@0 | 15 public: |
nuclear@0 | 16 Vec2 bmin, bmax; |
nuclear@0 | 17 }; |
nuclear@0 | 18 |
nuclear@2 | 19 struct WidgetImpl; |
nuclear@0 | 20 |
nuclear@0 | 21 class Widget { |
nuclear@0 | 22 private: |
nuclear@0 | 23 WidgetImpl *impl; |
nuclear@0 | 24 |
nuclear@0 | 25 public: |
nuclear@0 | 26 enum VisState { |
nuclear@0 | 27 VST_HIDDEN, |
nuclear@0 | 28 VST_EASEIN, |
nuclear@0 | 29 VST_VISIBLE, |
nuclear@0 | 30 VST_EASEOUT |
nuclear@0 | 31 }; |
nuclear@0 | 32 enum ActiveState { |
nuclear@0 | 33 AST_INACTIVE, |
nuclear@0 | 34 AST_EASEIN, |
nuclear@0 | 35 AST_ACTIVE, |
nuclear@0 | 36 AST_EASEOUT |
nuclear@0 | 37 }; |
nuclear@0 | 38 |
nuclear@0 | 39 Widget(); |
nuclear@0 | 40 virtual ~Widget(); |
nuclear@0 | 41 |
nuclear@0 | 42 virtual void show(); |
nuclear@0 | 43 virtual void hide(); |
nuclear@0 | 44 virtual float get_visibility() const; |
nuclear@0 | 45 |
nuclear@0 | 46 virtual void activate(); |
nuclear@0 | 47 virtual void deactivate(); |
nuclear@0 | 48 virtual float get_active() const; |
nuclear@0 | 49 |
nuclear@0 | 50 virtual const BBox &get_box() const; |
nuclear@0 | 51 virtual const Vec2 &get_position() const; |
nuclear@0 | 52 virtual const Vec2 &get_size() const; |
nuclear@0 | 53 |
nuclear@0 | 54 virtual bool hit_test(const Vec2 &pt) const; |
nuclear@0 | 55 |
nuclear@0 | 56 virtual void draw() const = 0; |
nuclear@0 | 57 }; |
nuclear@0 | 58 |
nuclear@0 | 59 long get_cur_time(); |
nuclear@0 | 60 |
nuclear@0 | 61 } |
nuclear@0 | 62 |
nuclear@0 | 63 #endif // GAMEUI_WIDGET_H_ |