move the otk swig module into its own lib/directory
[mikachu/openbox.git] / src / buttonwidget.hh
1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
2 #ifndef   __buttonwidget_hh
3 #define   __buttonwidget_hh
4
5 #include "widgetbase.hh"
6 #include "otk/widget.hh"
7
8 namespace ob {
9
10 class Client;
11
12 class ButtonWidget : public otk::Widget, public WidgetBase
13 {
14 private:
15   void setTextures();
16   Client *_client;
17   bool _pressed;
18   unsigned int _button;
19   bool _state;
20   
21 public:
22   ButtonWidget(otk::Widget *parent, WidgetBase::WidgetType type,
23                Client *client);
24   virtual ~ButtonWidget();
25
26   virtual void setStyle(otk::RenderStyle *style);
27
28   virtual void adjust();
29
30   virtual void update();
31   
32   virtual void renderForeground();
33   
34   virtual void focus();
35   virtual void unfocus();
36
37   virtual void buttonPressHandler(const XButtonEvent &e);
38   virtual void buttonReleaseHandler(const XButtonEvent &e);
39 };
40
41 }
42
43 #endif // __buttonwidget_hh