X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fbuttonwidget.cc;h=eb864ba23827208ec219cbfc6b93596acc4c604f;hb=ff3bb7566b76ff28e72e64054908145854b4454d;hp=ceca8d38a830735c1be3132fc8b442b768449913;hpb=b8653c3ab8ee785fc0605a960ac83afb97ac7edf;p=chaz%2Fopenbox diff --git a/src/buttonwidget.cc b/src/buttonwidget.cc index ceca8d38..eb864ba2 100644 --- a/src/buttonwidget.cc +++ b/src/buttonwidget.cc @@ -9,30 +9,30 @@ namespace ob { -OBButtonWidget::OBButtonWidget(otk::OtkWidget *parent, - OBWidget::WidgetType type) - : otk::OtkWidget(parent), - OBWidget(type), +ButtonWidget::ButtonWidget(otk::Widget *parent, + WidgetBase::WidgetType type) + : otk::Widget(parent), + WidgetBase(type), _pressed(false), _button(0) { } -OBButtonWidget::~OBButtonWidget() +ButtonWidget::~ButtonWidget() { } -void OBButtonWidget::setTextures() +void ButtonWidget::setTextures() { switch (type()) { case Type_LeftGrip: case Type_RightGrip: if (_focused) - setTexture(_style->getGripFocus()); + setTexture(_style->gripFocusBackground()); else - setTexture(_style->getGripUnfocus()); + setTexture(_style->gripUnfocusBackground()); break; case Type_StickyButton: case Type_CloseButton: @@ -40,14 +40,14 @@ void OBButtonWidget::setTextures() case Type_IconifyButton: if (_pressed) { if (_focused) - setTexture(_style->getButtonPressedFocus()); + setTexture(_style->buttonPressFocusBackground()); else - setTexture(_style->getButtonPressedUnfocus()); + setTexture(_style->buttonPressUnfocusBackground()); } else { if (_focused) - setTexture(_style->getButtonFocus()); + setTexture(_style->buttonUnpressFocusBackground()); else - setTexture(_style->getButtonUnfocus()); + setTexture(_style->buttonUnpressUnfocusBackground()); } break; default: @@ -56,15 +56,15 @@ void OBButtonWidget::setTextures() } -void OBButtonWidget::setStyle(otk::Style *style) +void ButtonWidget::setStyle(otk::RenderStyle *style) { - otk::OtkWidget::setStyle(style); + otk::Widget::setStyle(style); setTextures(); switch (type()) { case Type_LeftGrip: case Type_RightGrip: - setBorderColor(_style->getBorderColor()); + setBorderColor(_style->frameBorderColor()); break; case Type_StickyButton: case Type_CloseButton: @@ -77,27 +77,27 @@ void OBButtonWidget::setStyle(otk::Style *style) } -void OBButtonWidget::update() +void ButtonWidget::renderForeground() { otk::PixmapMask *pm; int width; bool draw = _dirty; - otk::OtkWidget::update(); + otk::Widget::renderForeground(); if (draw) { switch (type()) { case Type_StickyButton: - pm = _style->getStickyButtonMask(); + pm = _style->stickyMask(); break; case Type_CloseButton: - pm = _style->getCloseButtonMask(); + pm = _style->closeMask(); break; case Type_MaximizeButton: - pm = _style->getMaximizeButtonMask(); + pm = _style->maximizeMask(); break; case Type_IconifyButton: - pm = _style->getIconifyButtonMask(); + pm = _style->iconifyMask(); break; case Type_LeftGrip: case Type_RightGrip: @@ -106,53 +106,53 @@ void OBButtonWidget::update() assert(false); // there's no other button widgets! } + assert(pm->mask); if (pm->mask == None) return; // no mask for the button, leave it empty width = _rect.width(); - - otk::BPen pen(_focused ? *_style->getButtonPicFocus() : - *_style->getButtonPicUnfocus()); + + otk::RenderColor *color = (_focused ? _style->buttonFocusColor() : + _style->buttonUnfocusColor()); // set the clip region - XSetClipMask(otk::OBDisplay::display, pen.gc(), pm->mask); - XSetClipOrigin(otk::OBDisplay::display, pen.gc(), - (width - pm->w)/2, (width - pm->h)/2); + int x = (width - pm->w) / 2, y = (width - pm->h) / 2; + XSetClipMask(**otk::display, color->gc(), pm->mask); + XSetClipOrigin(**otk::display, color->gc(), x, y); // fill in the clipped region - XFillRectangle(otk::OBDisplay::display, _window, pen.gc(), - (width - pm->w)/2, (width - pm->h)/2, - (width + pm->w)/2, (width + pm->h)/2); + XFillRectangle(**otk::display, _surface->pixmap(), color->gc(), x, y, + x + pm->w, y + pm->h); // unset the clip region - XSetClipMask(otk::OBDisplay::display, pen.gc(), None); - XSetClipOrigin(otk::OBDisplay::display, pen.gc(), 0, 0); + XSetClipMask(**otk::display, color->gc(), None); + XSetClipOrigin(**otk::display, color->gc(), 0, 0); } } -void OBButtonWidget::adjust() +void ButtonWidget::adjust() { // nothing to adjust. no children. } -void OBButtonWidget::focus() +void ButtonWidget::focus() { - otk::OtkWidget::focus(); + otk::Widget::focus(); setTextures(); } -void OBButtonWidget::unfocus() +void ButtonWidget::unfocus() { - otk::OtkWidget::unfocus(); + otk::Widget::unfocus(); setTextures(); } -void OBButtonWidget::buttonPressHandler(const XButtonEvent &e) +void ButtonWidget::buttonPressHandler(const XButtonEvent &e) { - OtkWidget::buttonPressHandler(e); + otk::Widget::buttonPressHandler(e); if (_button) return; _button = e.button; _pressed = true; @@ -161,9 +161,9 @@ void OBButtonWidget::buttonPressHandler(const XButtonEvent &e) } -void OBButtonWidget::buttonReleaseHandler(const XButtonEvent &e) +void ButtonWidget::buttonReleaseHandler(const XButtonEvent &e) { - OtkWidget::buttonPressHandler(e); + otk::Widget::buttonPressHandler(e); if (e.button != _button) return; _button = 0; _pressed = false;