From: Dana Jansens Date: Thu, 23 Jan 2003 02:08:04 +0000 (+0000) Subject: bitmap masks return! X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=b99508df011eaf8a264bf5725ac8849f0782ec7b;p=chaz%2Fopenbox bitmap masks return! --- diff --git a/otk/renderstyle.cc b/otk/renderstyle.cc index 7e8b6446..9123b367 100644 --- a/otk/renderstyle.cc +++ b/otk/renderstyle.cc @@ -57,8 +57,8 @@ RenderStyle::RenderStyle(int screen, const std::string &stylefile) true, RenderTexture::Vertical, false, - 0x858687, - 0x373a3f, + 0x96ba86, + 0x5a724c, 0x181f24, 0x0); _label_unfocus = new RenderTexture(_screen, @@ -174,7 +174,7 @@ RenderStyle::RenderStyle(int screen, const std::string &stylefile) _max_mask->w = _max_mask->h = 8; { char data[] = { 0x7e, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0x7e }; - _max_mask->mask= + _max_mask->mask = XCreateBitmapFromData(**display, display->screenInfo(_screen)->rootWindow(), data, 8, 8); @@ -183,18 +183,18 @@ RenderStyle::RenderStyle(int screen, const std::string &stylefile) _icon_mask = new PixmapMask(); _icon_mask->w = _icon_mask->h = 8; { - char data[] = { 0x00, 0x00, 0xc3, 0xe7, 0x7e, 0x3c, 0x18, 0x00 }; - _icon_mask->mask= + unsigned char data[] = { 0x00, 0x00, 0xc3, 0xe7, 0x7e, 0x3c, 0x18, 0x00 }; + _icon_mask->mask = XCreateBitmapFromData(**display, display->screenInfo(_screen)->rootWindow(), - data, 8, 8); + (char*)data, 8, 8); } _stick_mask = new PixmapMask(); _stick_mask->w = _stick_mask->h = 8; { char data[] = { 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00 }; - _icon_mask->mask= + _stick_mask->mask = XCreateBitmapFromData(**display, display->screenInfo(_screen)->rootWindow(), data, 8, 8); @@ -204,7 +204,7 @@ RenderStyle::RenderStyle(int screen, const std::string &stylefile) _close_mask->w = _close_mask->h = 8; { char data[] = { 0xc3, 0xe7, 0x7e, 0x3c, 0x3c, 0x7e, 0xe7, 0xc3 }; - _icon_mask->mask= + _close_mask->mask = XCreateBitmapFromData(**display, display->screenInfo(_screen)->rootWindow(), data, 8, 8); diff --git a/src/buttonwidget.cc b/src/buttonwidget.cc index 53a7ffd5..534bdc84 100644 --- a/src/buttonwidget.cc +++ b/src/buttonwidget.cc @@ -113,6 +113,7 @@ void ButtonWidget::renderForeground() 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(); @@ -121,14 +122,13 @@ void ButtonWidget::renderForeground() _style->buttonUnfocusColor()); // set the clip region + int x = (width - pm->w) / 2, y = (width - pm->h) / 2; XSetClipMask(**otk::display, color->gc(), pm->mask); - XSetClipOrigin(**otk::display, color->gc(), - (width - pm->w)/2, (width - pm->h)/2); + XSetClipOrigin(**otk::display, color->gc(), x, y); // fill in the clipped region - XFillRectangle(**otk::display, _window, color->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::display, color->gc(), None);