otk/widget.hh (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
#include <string> #include <list> #include "rect.hh" #include "point.hh" #include "texture.hh" namespace otk { class OtkWidget { public: typedef std::list<OtkWidget *> OtkWidgetList; OtkWidget(OtkWidget *parent); OtkWidget(unsigned int screen, Cursor); virtual ~OtkWidget(); inline Window getWindow(void) const { return _window; } inline const OtkWidget *getParent(void) const { return _parent; } inline const OtkWidgetList &getChildren(void) const { return _children; } inline unsigned int getScreen(void) const { return _screen; } inline const Rect &getRect(void) const { return _rect; } void move(const Point &to); void move(int x, int y); virtual void resize(const Point &to); virtual void resize(int x, int y); virtual void setGeometry(const Rect &new_geom); virtual void setGeometry(const Point &topleft, int width, int height); virtual void setGeometry(int x, int y, int width, int height); inline bool isVisible(void) const { return _visible; }; virtual void show(void); virtual void hide(void); inline bool isFocused(void) const { return _focused; }; virtual void focus(void); virtual void blur(void); inline bool hasGrabbedMouse(void) const { return _grabbed_mouse; } bool grabMouse(void); void ungrabMouse(void); inline bool hasGrabbedKeyboard(void) const { return _grabbed_keyboard; } bool grabKeyboard(void); void ungrabKeyboard(void); inline const BTexture *getTexture(void) const { return _texture; } virtual void setTexture(BTexture *texture); virtual void addChild(OtkWidget *child); virtual void removeChild(OtkWidget *child); inline bool getStretchableHorz(void) const { return _stretchable_horz; } void setStretchableHorz(bool s_horz) { _stretchable_horz = s_horz; } inline bool getStretchableVert(void) const { return _stretchable_vert; } void setStretchableVert(bool s_vert) { _stretchable_vert = s_vert; } inline Cursor getCursor(void) const { return _cursor; } private: void create(void); Window _window; OtkWidget *_parent; OtkWidgetList _children; bool _visible; bool _focused; bool _grabbed_mouse; bool _grabbed_keyboard; bool _stretchable_vert; bool _stretchable_horz; BTexture *_texture; Rect _rect; unsigned int _screen; Cursor _cursor; }; } |