gameui
diff include/widget.h @ 0:3aa12cdb9925
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 24 Feb 2014 22:25:49 +0200 |
parents | |
children | e5b1525084f7 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/include/widget.h Mon Feb 24 22:25:49 2014 +0200 1.3 @@ -0,0 +1,63 @@ 1.4 +#ifndef GAMEUI_WIDGET_H_ 1.5 +#define GAMEUI_WIDGET_H_ 1.6 + 1.7 +namespace gameui { 1.8 + 1.9 +class Vec2 { 1.10 +public: 1.11 + float x, y; 1.12 + 1.13 + Vec2() : x(0), y(0) {} 1.14 + Vec2(float xx, float yy) : x(xx), y(yy) {} 1.15 +}; 1.16 + 1.17 +class BBox { 1.18 +public: 1.19 + Vec2 bmin, bmax; 1.20 +}; 1.21 + 1.22 +class WidgetImpl; 1.23 + 1.24 +class Widget { 1.25 +private: 1.26 + WidgetImpl *impl; 1.27 + 1.28 +public: 1.29 + enum VisState { 1.30 + VST_HIDDEN, 1.31 + VST_EASEIN, 1.32 + VST_VISIBLE, 1.33 + VST_EASEOUT 1.34 + }; 1.35 + enum ActiveState { 1.36 + AST_INACTIVE, 1.37 + AST_EASEIN, 1.38 + AST_ACTIVE, 1.39 + AST_EASEOUT 1.40 + }; 1.41 + 1.42 + Widget(); 1.43 + virtual ~Widget(); 1.44 + 1.45 + virtual void show(); 1.46 + virtual void hide(); 1.47 + virtual float get_visibility() const; 1.48 + 1.49 + virtual void activate(); 1.50 + virtual void deactivate(); 1.51 + virtual float get_active() const; 1.52 + 1.53 + virtual const BBox &get_box() const; 1.54 + virtual const Vec2 &get_position() const; 1.55 + virtual const Vec2 &get_size() const; 1.56 + 1.57 + virtual bool hit_test(const Vec2 &pt) const; 1.58 + 1.59 + virtual void draw() const = 0; 1.60 +}; 1.61 + 1.62 +long get_cur_time(); 1.63 + 1.64 +} 1.65 + 1.66 +#endif // GAMEUI_WIDGET_H_