1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
4 # include "../config.h"
11 OtkButton::OtkButton(OtkWidget *parent)
12 : OtkFocusLabel(parent), _pressed(false), _pressed_focus_tx(0),
13 _pressed_unfocus_tx(0), _unpr_focus_tx(0), _unpr_unfocus_tx(0)
15 setTexture(getStyle()->getButtonFocus());
16 setUnfocusTexture(getStyle()->getButtonUnfocus());
17 _pressed_focus_tx = getStyle()->getButtonPressedFocus();
18 _pressed_unfocus_tx = getStyle()->getButtonPressedUnfocus();
21 OtkButton::~OtkButton()
25 void OtkButton::press(unsigned int mouse_button)
29 if (_pressed_focus_tx)
30 OtkFocusWidget::setTexture(_pressed_focus_tx);
31 if (_pressed_unfocus_tx)
32 OtkFocusWidget::setUnfocusTexture(_pressed_unfocus_tx);
34 _mouse_button = mouse_button;
37 void OtkButton::release(unsigned int mouse_button)
39 if (_mouse_button != mouse_button) return; // wrong button
41 OtkFocusWidget::setTexture(_unpr_focus_tx);
42 OtkFocusWidget::setUnfocusTexture(_unpr_unfocus_tx);
46 void OtkButton::setTexture(BTexture *texture)
48 OtkFocusWidget::setTexture(texture);
49 _unpr_focus_tx = texture;
52 void OtkButton::setUnfocusTexture(BTexture *texture)
54 OtkFocusWidget::setUnfocusTexture(texture);
55 _unpr_unfocus_tx = texture;
58 void OtkButton::buttonPressHandler(const XButtonEvent &e)
62 OtkFocusWidget::buttonPressHandler(e);
65 void OtkButton::buttonReleaseHandler(const XButtonEvent &e)
69 OtkFocusWidget::buttonReleaseHandler(e);