X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fbutton.cc;h=bc994b2fc0a4b5f3c3ea47f4a63bed24e3932fd5;hb=0dcbf985c11c850b30b2983e1e20cd8cf033f054;hp=f080c7699d24d5de5a90f0d113a72cc84de5b85e;hpb=d4d15160fe81353a9f7958c1feb1821abe179a70;p=chaz%2Fopenbox diff --git a/otk/button.cc b/otk/button.cc index f080c769..bc994b2f 100644 --- a/otk/button.cc +++ b/otk/button.cc @@ -1,68 +1,80 @@ +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- + +#ifdef HAVE_CONFIG_H +# include "../config.h" +#endif + #include "button.hh" namespace otk { -OtkButton::OtkButton(OtkWidget *parent) - : OtkFocusLabel(parent), _pressed(false), _pressed_focus_tx(0), +Button::Button(Widget *parent) + : FocusLabel(parent), _pressed(false), _pressed_focus_tx(0), _pressed_unfocus_tx(0), _unpr_focus_tx(0), _unpr_unfocus_tx(0) { - setTexture(getStyle()->getButtonFocus()); - setUnfocusTexture(getStyle()->getButtonUnfocus()); - _pressed_focus_tx = getStyle()->getButtonPressedFocus(); - _pressed_unfocus_tx = getStyle()->getButtonPressedUnfocus(); } -OtkButton::~OtkButton() +Button::~Button() { - if (_pressed_focus_tx) delete _pressed_focus_tx; - if (_pressed_unfocus_tx) delete _pressed_unfocus_tx; } -void OtkButton::press(unsigned int mouse_button) + +void Button::setStyle(Style *style) +{ + FocusLabel::setStyle(style); + + setTexture(style->getButtonFocus()); + setUnfocusTexture(style->getButtonUnfocus()); + _pressed_focus_tx = style->getButtonPressedFocus(); + _pressed_unfocus_tx = style->getButtonPressedUnfocus(); +} + + +void Button::press(unsigned int mouse_button) { if (_pressed) return; if (_pressed_focus_tx) - OtkFocusWidget::setTexture(_pressed_focus_tx); + FocusWidget::setTexture(_pressed_focus_tx); if (_pressed_unfocus_tx) - OtkFocusWidget::setUnfocusTexture(_pressed_unfocus_tx); + FocusWidget::setUnfocusTexture(_pressed_unfocus_tx); _pressed = true; _mouse_button = mouse_button; } -void OtkButton::release(unsigned int mouse_button) +void Button::release(unsigned int mouse_button) { if (_mouse_button != mouse_button) return; // wrong button - OtkFocusWidget::setTexture(_unpr_focus_tx); - OtkFocusWidget::setUnfocusTexture(_unpr_unfocus_tx); + FocusWidget::setTexture(_unpr_focus_tx); + FocusWidget::setUnfocusTexture(_unpr_unfocus_tx); _pressed = false; } -void OtkButton::setTexture(BTexture *texture) +void Button::setTexture(Texture *texture) { - OtkFocusWidget::setTexture(texture); + FocusWidget::setTexture(texture); _unpr_focus_tx = texture; } -void OtkButton::setUnfocusTexture(BTexture *texture) +void Button::setUnfocusTexture(Texture *texture) { - OtkFocusWidget::setUnfocusTexture(texture); + FocusWidget::setUnfocusTexture(texture); _unpr_unfocus_tx = texture; } -int OtkButton::buttonPressHandler(const XButtonEvent &e) +void Button::buttonPressHandler(const XButtonEvent &e) { press(e.button); update(); - return OtkFocusWidget::buttonPressHandler(e); + FocusWidget::buttonPressHandler(e); } -int OtkButton::buttonReleaseHandler(const XButtonEvent &e) +void Button::buttonReleaseHandler(const XButtonEvent &e) { release(e.button); update(); - return OtkFocusWidget::buttonReleaseHandler(e); + FocusWidget::buttonReleaseHandler(e); } }