1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
4 # include "../config.h"
11 Button::Button(Widget *parent)
15 setHorizontalJustify(RenderStyle::CenterJustify);
16 setVerticalJustify(RenderStyle::CenterJustify);
17 styleChanged(*RenderStyle::style(screen()));
24 void Button::press(unsigned int mouse_button)
29 _mouse_button = mouse_button;
31 styleChanged(*RenderStyle::style(screen()));
35 void Button::release(unsigned int mouse_button)
37 if (!_pressed || _mouse_button != mouse_button) return; // wrong button
41 styleChanged(*RenderStyle::style(screen()));
45 void Button::buttonPressHandler(const XButtonEvent &e)
47 Widget::buttonPressHandler(e);
51 void Button::buttonReleaseHandler(const XButtonEvent &e)
53 Widget::buttonReleaseHandler(e);
57 void Button::styleChanged(const RenderStyle &style)
59 if (isHighlighted()) {
61 _texture = style.buttonPressFocusBackground();
63 _texture = style.buttonUnpressFocusBackground();
64 _forecolor = style.buttonFocusColor();
67 _texture = style.buttonPressUnfocusBackground();
69 _texture = style.buttonUnpressUnfocusBackground();
70 _forecolor = style.buttonUnfocusColor();