1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
4 # include "../config.h"
11 Button::Button(Widget *parent)
15 setHighlighted(false);
16 setHorizontalJustify(RenderStyle::CenterJustify);
17 setVerticalJustify(RenderStyle::CenterJustify);
18 styleChanged(*RenderStyle::style(screen()));
25 void Button::press(unsigned int mouse_button)
30 _mouse_button = mouse_button;
32 styleChanged(*RenderStyle::style(screen()));
36 void Button::release(unsigned int mouse_button)
38 if (!_pressed || _mouse_button != mouse_button) return; // wrong button
42 styleChanged(*RenderStyle::style(screen()));
46 void Button::buttonPressHandler(const XButtonEvent &e)
48 Widget::buttonPressHandler(e);
52 void Button::buttonReleaseHandler(const XButtonEvent &e)
54 Widget::buttonReleaseHandler(e);
58 void Button::styleChanged(const RenderStyle &style)
60 if (isHighlighted()) {
62 _texture = style.buttonPressFocusBackground();
64 _texture = style.buttonUnpressFocusBackground();
65 _forecolor = style.buttonFocusColor();
68 _texture = style.buttonPressUnfocusBackground();
70 _texture = style.buttonUnpressUnfocusBackground();
71 _forecolor = style.buttonUnfocusColor();
73 Widget::styleChanged(style);