5 OtkButton::OtkButton(OtkWidget *parent)
6 : OtkFocusLabel(parent), _pressed(false), _pressed_focus_tx(0),
7 _pressed_unfocus_tx(0), _unpr_focus_tx(0), _unpr_unfocus_tx(0)
9 setTexture(getStyle()->getButtonFocus());
10 setUnfocusTexture(getStyle()->getButtonUnfocus());
11 _pressed_focus_tx = getStyle()->getButtonPressedFocus();
12 _pressed_unfocus_tx = getStyle()->getButtonPressedUnfocus();
15 OtkButton::~OtkButton()
17 if (_pressed_focus_tx) delete _pressed_focus_tx;
18 if (_pressed_unfocus_tx) delete _pressed_unfocus_tx;
21 void OtkButton::press(unsigned int mouse_button)
25 if (_pressed_focus_tx)
26 OtkFocusWidget::setTexture(_pressed_focus_tx);
27 if (_pressed_unfocus_tx)
28 OtkFocusWidget::setUnfocusTexture(_pressed_unfocus_tx);
30 _mouse_button = mouse_button;
33 void OtkButton::release(unsigned int mouse_button)
35 if (_mouse_button != mouse_button) return; // wrong button
37 OtkFocusWidget::setTexture(_unpr_focus_tx);
38 OtkFocusWidget::setUnfocusTexture(_unpr_unfocus_tx);
42 void OtkButton::setTexture(BTexture *texture)
44 OtkFocusWidget::setTexture(texture);
45 _unpr_focus_tx = texture;
48 void OtkButton::setUnfocusTexture(BTexture *texture)
50 OtkFocusWidget::setUnfocusTexture(texture);
51 _unpr_unfocus_tx = texture;
54 int OtkButton::buttonPressHandler(const XButtonEvent &e)
58 return OtkFocusWidget::buttonPressHandler(e);
61 int OtkButton::buttonReleaseHandler(const XButtonEvent &e)
65 return OtkFocusWidget::buttonReleaseHandler(e);