gameui

annotate 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
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@0 19 class 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_