gameui

annotate 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
rev   line source
nuclear@0 1 #ifndef GAMEUI_WIDGET_H_
nuclear@0 2 #define GAMEUI_WIDGET_H_
nuclear@0 3
nuclear@3 4 #include "vec.h"
nuclear@3 5 #include "event.h"
nuclear@3 6
nuclear@0 7 namespace gameui {
nuclear@0 8
nuclear@3 9 struct BBox {
nuclear@0 10 Vec2 bmin, bmax;
nuclear@0 11 };
nuclear@0 12
nuclear@2 13 struct WidgetImpl;
nuclear@0 14
nuclear@0 15 class Widget {
nuclear@0 16 private:
nuclear@3 17 WidgetImpl *widget;
nuclear@3 18
nuclear@3 19 void set_type_string(const char *type_str);
nuclear@0 20
nuclear@0 21 public:
nuclear@0 22 Widget();
nuclear@0 23 virtual ~Widget();
nuclear@0 24
nuclear@0 25 virtual void show();
nuclear@0 26 virtual void hide();
nuclear@0 27 virtual float get_visibility() const;
nuclear@3 28 virtual bool is_visible() const;
nuclear@0 29
nuclear@0 30 virtual void activate();
nuclear@0 31 virtual void deactivate();
nuclear@0 32 virtual float get_active() const;
nuclear@3 33 virtual bool is_active() const;
nuclear@3 34
nuclear@3 35 virtual void press();
nuclear@3 36 virtual void release();
nuclear@3 37 virtual float get_pressed() const;
nuclear@3 38 virtual bool is_pressed() const;
nuclear@3 39
nuclear@3 40 virtual void mousein();
nuclear@3 41 virtual void mouseout();
nuclear@3 42 virtual float get_under_mouse() const;
nuclear@3 43 virtual bool is_under_mouse() const;
nuclear@3 44
nuclear@3 45 virtual void set_position(float x, float y);
nuclear@3 46 virtual void set_position(const Vec2 &pos);
nuclear@3 47 virtual const Vec2 &get_position() const;
nuclear@3 48
nuclear@3 49 virtual void set_size(float x, float y);
nuclear@3 50 virtual void set_size(const Vec2 &size);
nuclear@3 51 virtual const Vec2 get_size() const;
nuclear@0 52
nuclear@0 53 virtual const BBox &get_box() const;
nuclear@0 54
nuclear@0 55 virtual bool hit_test(const Vec2 &pt) const;
nuclear@0 56
nuclear@3 57 virtual void draw() const;
nuclear@3 58
nuclear@3 59 // low level events
nuclear@3 60 virtual void on_mouse_button(const ButtonEvent &ev);
nuclear@3 61 virtual void on_mouse_motion(const MotionEvent &ev);
nuclear@3 62 virtual void on_mouse_focus(const FocusEvent &ev);
nuclear@3 63 virtual void on_key(const KeyEvent &ev);
nuclear@3 64
nuclear@3 65 // high level events
nuclear@3 66 virtual void on_click();
nuclear@3 67 virtual void on_double_click();
nuclear@3 68 virtual void on_change();
nuclear@3 69 //virtual void on_drag_move(int bn, const Vec2 &pt);
nuclear@3 70 //virtual void on_drag_release(int bn, const Vec2 &pt);
nuclear@3 71
nuclear@3 72 // event dispatcher
nuclear@3 73 virtual void handle_event(const Event &ev);
nuclear@0 74 };
nuclear@0 75
nuclear@0 76 }
nuclear@0 77
nuclear@0 78 #endif // GAMEUI_WIDGET_H_