bitmap masks return!
This commit is contained in:
parent
e64d90be4d
commit
b99508df01
2 changed files with 13 additions and 13 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue