mirror of
https://github.com/labwc/labwc.git
synced 2025-11-03 09:01:51 -05:00
theme: support different colored buttons
Add the following theme keys: - window.active.button.iconify.unpressed.image.color - window.active.button.max.unpressed.image.color - window.active.button.close.unpressed.image.color - window.inactive.button.iconify.unpressed.image.color - window.inactive.button.max.unpressed.image.color - window.inactive.button.close.unpressed.image.color As far as I can tell, the openbox documentation does not mention the entries listed above, but openbox does support them and some themes do use them.
This commit is contained in:
parent
7ef4feddc7
commit
dff6dba54b
3 changed files with 55 additions and 16 deletions
|
|
@ -20,8 +20,14 @@ struct theme {
|
|||
float window_active_title_bg_color[4];
|
||||
float window_inactive_title_bg_color[4];
|
||||
|
||||
float window_active_button_unpressed_image_color[4];
|
||||
float window_inactive_button_unpressed_image_color[4];
|
||||
/* buttons */
|
||||
float window_active_button_iconify_unpressed_image_color[4];
|
||||
float window_active_button_max_unpressed_image_color[4];
|
||||
float window_active_button_close_unpressed_image_color[4];
|
||||
float window_inactive_button_iconify_unpressed_image_color[4];
|
||||
float window_inactive_button_max_unpressed_image_color[4];
|
||||
float window_inactive_button_close_unpressed_image_color[4];
|
||||
/* TODO: add pressed and hover colors for buttons */
|
||||
|
||||
float menu_items_bg_color[4];
|
||||
float menu_items_text_color[4];
|
||||
|
|
|
|||
37
src/theme.c
37
src/theme.c
|
|
@ -84,8 +84,12 @@ theme_builtin(struct theme *theme)
|
|||
parse_hexstr("#dddad6", theme->window_active_title_bg_color);
|
||||
parse_hexstr("#f6f5f4", theme->window_inactive_title_bg_color);
|
||||
|
||||
parse_hexstr("#000000", theme->window_active_button_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_inactive_button_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_active_button_iconify_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_active_button_max_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_active_button_close_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_inactive_button_iconify_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_inactive_button_max_unpressed_image_color);
|
||||
parse_hexstr("#000000", theme->window_inactive_button_close_unpressed_image_color);
|
||||
|
||||
parse_hexstr("#fcfbfa", theme->menu_items_bg_color);
|
||||
parse_hexstr("#000000", theme->menu_items_text_color);
|
||||
|
|
@ -131,11 +135,36 @@ entry(struct theme *theme, const char *key, const char *value)
|
|||
parse_hexstr(value, theme->window_inactive_title_bg_color);
|
||||
}
|
||||
|
||||
/* universal button */
|
||||
if (match(key, "window.active.button.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_active_button_unpressed_image_color);
|
||||
parse_hexstr(value, theme->window_active_button_iconify_unpressed_image_color);
|
||||
parse_hexstr(value, theme->window_active_button_max_unpressed_image_color);
|
||||
parse_hexstr(value, theme->window_active_button_close_unpressed_image_color);
|
||||
}
|
||||
if (match(key, "window.inactive.button.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_inactive_button_unpressed_image_color);
|
||||
parse_hexstr(value, theme->window_inactive_button_iconify_unpressed_image_color);
|
||||
parse_hexstr(value, theme->window_inactive_button_max_unpressed_image_color);
|
||||
parse_hexstr(value, theme->window_inactive_button_close_unpressed_image_color);
|
||||
}
|
||||
|
||||
/* individual buttons */
|
||||
if (match(key, "window.active.button.iconify.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_active_button_iconify_unpressed_image_color);
|
||||
}
|
||||
if (match(key, "window.active.button.max.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_active_button_max_unpressed_image_color);
|
||||
}
|
||||
if (match(key, "window.active.button.close.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_active_button_close_unpressed_image_color);
|
||||
}
|
||||
if (match(key, "window.inactive.button.iconify.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_inactive_button_iconify_unpressed_image_color);
|
||||
}
|
||||
if (match(key, "window.inactive.button.max.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_inactive_button_max_unpressed_image_color);
|
||||
}
|
||||
if (match(key, "window.inactive.button.close.unpressed.image.color")) {
|
||||
parse_hexstr(value, theme->window_inactive_button_close_unpressed_image_color);
|
||||
}
|
||||
|
||||
if (match(key, "menu.items.bg.color")) {
|
||||
|
|
|
|||
|
|
@ -86,19 +86,23 @@ out:
|
|||
void
|
||||
xbm_load(struct theme *theme, struct wlr_renderer *r)
|
||||
{
|
||||
parse_set_color(theme->window_active_button_unpressed_image_color);
|
||||
load_button(r, "close.xbm", &theme->xbm_close_active_unpressed,
|
||||
close_button_normal);
|
||||
load_button(r, "max.xbm", &theme->xbm_maximize_active_unpressed,
|
||||
max_button_normal);
|
||||
parse_set_color(theme->window_active_button_iconify_unpressed_image_color);
|
||||
load_button(r, "iconify.xbm", &theme->xbm_iconify_active_unpressed,
|
||||
iconify_button_normal);
|
||||
|
||||
parse_set_color(theme->window_inactive_button_unpressed_image_color);
|
||||
load_button(r, "close.xbm", &theme->xbm_close_inactive_unpressed,
|
||||
close_button_normal);
|
||||
load_button(r, "max.xbm", &theme->xbm_maximize_inactive_unpressed,
|
||||
parse_set_color(theme->window_active_button_max_unpressed_image_color);
|
||||
load_button(r, "max.xbm", &theme->xbm_maximize_active_unpressed,
|
||||
max_button_normal);
|
||||
parse_set_color(theme->window_active_button_close_unpressed_image_color);
|
||||
load_button(r, "close.xbm", &theme->xbm_close_active_unpressed,
|
||||
close_button_normal);
|
||||
|
||||
parse_set_color(theme->window_inactive_button_iconify_unpressed_image_color);
|
||||
load_button(r, "iconify.xbm", &theme->xbm_iconify_inactive_unpressed,
|
||||
iconify_button_normal);
|
||||
parse_set_color(theme->window_inactive_button_max_unpressed_image_color);
|
||||
load_button(r, "max.xbm", &theme->xbm_maximize_inactive_unpressed,
|
||||
max_button_normal);
|
||||
parse_set_color(theme->window_inactive_button_close_unpressed_image_color);
|
||||
load_button(r, "close.xbm", &theme->xbm_close_inactive_unpressed,
|
||||
close_button_normal);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue