]>
Dogcows Code - chaz/openbox/blob - otk/button.cc
1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
4 # include "../config.h"
11 Button::Button(Widget
*parent
)
12 : FocusLabel(parent
), _pressed(false), _pressed_focus_tx(0),
13 _pressed_unfocus_tx(0), _unpr_focus_tx(0), _unpr_unfocus_tx(0)
23 void Button::setStyle(RenderStyle
*style
)
25 FocusLabel::setStyle(style
);
27 setTexture(style
->buttonUnpressFocusBackground());
28 setUnfocusTexture(style
->buttonUnpressUnfocusBackground());
29 _pressed_focus_tx
= style
->buttonPressFocusBackground();
30 _pressed_unfocus_tx
= style
->buttonPressUnfocusBackground();
34 void Button::press(unsigned int mouse_button
)
38 if (_pressed_focus_tx
)
39 FocusWidget::setTexture(_pressed_focus_tx
);
40 if (_pressed_unfocus_tx
)
41 FocusWidget::setUnfocusTexture(_pressed_unfocus_tx
);
43 _mouse_button
= mouse_button
;
46 void Button::release(unsigned int mouse_button
)
48 if (_mouse_button
!= mouse_button
) return; // wrong button
50 FocusWidget::setTexture(_unpr_focus_tx
);
51 FocusWidget::setUnfocusTexture(_unpr_unfocus_tx
);
55 void Button::setTexture(RenderTexture
*texture
)
57 FocusWidget::setTexture(texture
);
58 _unpr_focus_tx
= texture
;
61 void Button::setUnfocusTexture(RenderTexture
*texture
)
63 FocusWidget::setUnfocusTexture(texture
);
64 _unpr_unfocus_tx
= texture
;
67 void Button::buttonPressHandler(const XButtonEvent
&e
)
71 FocusWidget::buttonPressHandler(e
);
74 void Button::buttonReleaseHandler(const XButtonEvent
&e
)
78 FocusWidget::buttonReleaseHandler(e
);
This page took 0.039431 seconds and 4 git commands to generate.