mirror of
https://github.com/labwc/labwc.git
synced 2025-11-05 13:29:58 -05:00
Support icon colors
xbm/parse: support specifiying color when loading icon theme.c: parse window.active.button.unpressed.image.color
This commit is contained in:
parent
4f96230ebf
commit
5122a9be69
5 changed files with 22 additions and 10 deletions
|
|
@ -14,16 +14,20 @@
|
|||
#include "theme/xbm/parse.h"
|
||||
#include "common/bug-on.h"
|
||||
|
||||
/* TODO: should be window.active.button.unpressed.image.color */
|
||||
static unsigned char defaultcolor[] = { 255, 255, 255, 255 };
|
||||
static uint32_t color;
|
||||
|
||||
static uint32_t u32(unsigned char *rgba)
|
||||
static uint32_t u32(float *rgba)
|
||||
{
|
||||
uint32_t r[4] = { 0 };
|
||||
for (int i = 0; i < 4; i++)
|
||||
r[i] = rgba[i];
|
||||
return ((r[3] & 0xff) << 24) | ((r[2] & 0xff) << 16) |
|
||||
((r[1] & 0xff) << 8) | (r[0] & 0xff);
|
||||
r[i] = rgba[i] * 255;
|
||||
return ((r[3] & 0xff) << 24) | ((r[0] & 0xff) << 16) |
|
||||
((r[1] & 0xff) << 8) | (r[2] & 0xff);
|
||||
}
|
||||
|
||||
void parse_set_color(float *rgba)
|
||||
{
|
||||
color = u32(rgba);
|
||||
}
|
||||
|
||||
static void process_bytes(struct pixmap *pixmap, struct token *tokens)
|
||||
|
|
@ -44,8 +48,7 @@ static void process_bytes(struct pixmap *pixmap, struct token *tokens)
|
|||
return;
|
||||
int bit = 1 << (col % 8);
|
||||
if (t->value & bit)
|
||||
pixmap->data[row * pixmap->width + col] =
|
||||
u32(defaultcolor);
|
||||
pixmap->data[row * pixmap->width + col] = color;
|
||||
}
|
||||
++t;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue