gameui

view 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 source
1 #ifndef GAMEUI_WIDGET_H_
2 #define GAMEUI_WIDGET_H_
4 namespace gameui {
6 class Vec2 {
7 public:
8 float x, y;
10 Vec2() : x(0), y(0) {}
11 Vec2(float xx, float yy) : x(xx), y(yy) {}
12 };
14 class BBox {
15 public:
16 Vec2 bmin, bmax;
17 };
19 class WidgetImpl;
21 class Widget {
22 private:
23 WidgetImpl *impl;
25 public:
26 enum VisState {
27 VST_HIDDEN,
28 VST_EASEIN,
29 VST_VISIBLE,
30 VST_EASEOUT
31 };
32 enum ActiveState {
33 AST_INACTIVE,
34 AST_EASEIN,
35 AST_ACTIVE,
36 AST_EASEOUT
37 };
39 Widget();
40 virtual ~Widget();
42 virtual void show();
43 virtual void hide();
44 virtual float get_visibility() const;
46 virtual void activate();
47 virtual void deactivate();
48 virtual float get_active() const;
50 virtual const BBox &get_box() const;
51 virtual const Vec2 &get_position() const;
52 virtual const Vec2 &get_size() const;
54 virtual bool hit_test(const Vec2 &pt) const;
56 virtual void draw() const = 0;
57 };
59 long get_cur_time();
61 }
63 #endif // GAMEUI_WIDGET_H_