mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -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_active_title_bg_color[4];
|
||||||
float window_inactive_title_bg_color[4];
|
float window_inactive_title_bg_color[4];
|
||||||
|
|
||||||
float window_active_button_unpressed_image_color[4];
|
/* buttons */
|
||||||
float window_inactive_button_unpressed_image_color[4];
|
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_bg_color[4];
|
||||||
float menu_items_text_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("#dddad6", theme->window_active_title_bg_color);
|
||||||
parse_hexstr("#f6f5f4", theme->window_inactive_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_active_button_iconify_unpressed_image_color);
|
||||||
parse_hexstr("#000000", theme->window_inactive_button_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("#fcfbfa", theme->menu_items_bg_color);
|
||||||
parse_hexstr("#000000", theme->menu_items_text_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);
|
parse_hexstr(value, theme->window_inactive_title_bg_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* universal button */
|
||||||
if (match(key, "window.active.button.unpressed.image.color")) {
|
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")) {
|
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")) {
|
if (match(key, "menu.items.bg.color")) {
|
||||||
|
|
|
||||||
|
|
@ -86,19 +86,23 @@ out:
|
||||||
void
|
void
|
||||||
xbm_load(struct theme *theme, struct wlr_renderer *r)
|
xbm_load(struct theme *theme, struct wlr_renderer *r)
|
||||||
{
|
{
|
||||||
parse_set_color(theme->window_active_button_unpressed_image_color);
|
parse_set_color(theme->window_active_button_iconify_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);
|
|
||||||
load_button(r, "iconify.xbm", &theme->xbm_iconify_active_unpressed,
|
load_button(r, "iconify.xbm", &theme->xbm_iconify_active_unpressed,
|
||||||
iconify_button_normal);
|
iconify_button_normal);
|
||||||
|
parse_set_color(theme->window_active_button_max_unpressed_image_color);
|
||||||
parse_set_color(theme->window_inactive_button_unpressed_image_color);
|
load_button(r, "max.xbm", &theme->xbm_maximize_active_unpressed,
|
||||||
load_button(r, "close.xbm", &theme->xbm_close_inactive_unpressed,
|
|
||||||
close_button_normal);
|
|
||||||
load_button(r, "max.xbm", &theme->xbm_maximize_inactive_unpressed,
|
|
||||||
max_button_normal);
|
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,
|
load_button(r, "iconify.xbm", &theme->xbm_iconify_inactive_unpressed,
|
||||||
iconify_button_normal);
|
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