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