From: tokyo4j Date: Tue, 12 Nov 2024 00:17:04 +0000 (+0900) Subject: theme: reorder theme entries in documentation and codebase X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=720ae1fc8760779d519850669eee2d70be822e10;p=proto%2Flabwc.git theme: reorder theme entries in documentation and codebase --- diff --git a/docs/labwc-theme.5.scd b/docs/labwc-theme.5.scd index 5bf315d3..5f4a390b 100644 --- a/docs/labwc-theme.5.scd +++ b/docs/labwc-theme.5.scd @@ -59,38 +59,6 @@ labwc-config(5). Vertical titlebar padding size, in pixels. Default is 0. -*menu.items.padding.x* - Horizontal padding of menu text entries in pixels. - Default is 7. - -*menu.items.padding.y* - Vertical padding of menu text entries in pixels. - Default is 4. - -*menu.title.text.justify* - Specifies how menu titles are aligned in the titlebar. - Type justification. Default Center. - -*menu.overlap.x* - Horizontal overlap in pixels between submenus and their parents. A - positive value move submenus over the top of their parents, whereas a - negative value creates a gap between submenus and their parents. - Default is 0. - -*menu.overlap.y* - Vertical offset in pixels between submenus and their parents. Positive - values for downwards and negative for upwards. Default is 0. - -*menu.width.min* - Minimal width for menus. Default is 20. - A fixed width can be achieved by setting .min and .max to the same - value. - -*menu.width.max* - Maximal width for menus. Default is 200. - A fixed width can be achieved by setting .min and .max to the same - value. - *window.active.border.color* Border color of active window. @@ -176,6 +144,34 @@ all are supported. Color of drop-shadows for non-focused windows, including opacity. Default is #00000040 (black with 25% opacity). +*menu.overlap.x* + Horizontal overlap in pixels between submenus and their parents. A + positive value move submenus over the top of their parents, whereas a + negative value creates a gap between submenus and their parents. + Default is 0. + +*menu.overlap.y* + Vertical offset in pixels between submenus and their parents. Positive + values for downwards and negative for upwards. Default is 0. + +*menu.width.min* + Minimal width for menus. Default is 20. + A fixed width can be achieved by setting .min and .max to the same + value. + +*menu.width.max* + Maximal width for menus. Default is 200. + A fixed width can be achieved by setting .min and .max to the same + value. + +*menu.items.padding.x* + Horizontal padding of menu text entries in pixels. + Default is 7. + +*menu.items.padding.y* + Vertical padding of menu text entries in pixels. + Default is 4. + *menu.items.bg.color* Background color of inactive menu items. @@ -204,6 +200,10 @@ all are supported. Menu title color. Default #589bda. Note: A menu title is a separator with a label. +*menu.title.text.justify* + Specifies how menu titles are aligned in the titlebar. + Type justification. Default Center. + *menu.title.text.color* Text color of separator label. Default #ffffff. diff --git a/include/theme.h b/include/theme.h index 379c4d88..e1773e6c 100644 --- a/include/theme.h +++ b/include/theme.h @@ -45,8 +45,6 @@ struct theme { int window_titlebar_padding_height; int title_height; - int menu_overlap_x; - int menu_overlap_y; /* colors */ float window_active_border_color[4]; @@ -60,7 +58,6 @@ struct theme { float window_active_label_text_color[4]; float window_inactive_label_text_color[4]; enum lab_justification window_label_text_justify; - enum lab_justification menu_title_text_justify; /* buttons */ int window_button_width; @@ -70,27 +67,53 @@ struct theme { /* the corner radius of the hover effect */ int window_button_hover_bg_corner_radius; - int menu_item_padding_x; - int menu_item_padding_y; - int menu_item_height; + /* window drop-shadows */ + int window_active_shadow_size; + int window_inactive_shadow_size; + float window_active_shadow_color[4]; + float window_inactive_shadow_color[4]; + struct { + /* + * The texture of a window buttons for each hover/toggled/rounded + * state. This can be accessed like: + * + * buttons[LAB_SSD_BUTTON_ICONIFY][LAB_BS_HOVERD | LAB_BS_TOGGLED] + * + * Elements in buttons[0] are all NULL since LAB_SSD_BUTTON_FIRST is 1. + */ + struct lab_data_buffer *buttons + [LAB_SSD_BUTTON_LAST + 1][LAB_BS_ALL + 1]; + + /* TODO: add toggled/hover/pressed/disabled colors for buttons */ + float button_colors[LAB_SSD_BUTTON_LAST + 1][4]; + + /* TODO: move other window.(in)active.* entries to here */ + + } window[2]; /* indexed by THEME_INACTIVE and THEME_ACTIVE */ + + int menu_item_height; int menu_header_height; + int menu_overlap_x; + int menu_overlap_y; + int menu_min_width; + int menu_max_width; + + int menu_item_padding_x; + int menu_item_padding_y; float menu_items_bg_color[4]; float menu_items_text_color[4]; float menu_items_active_bg_color[4]; float menu_items_active_text_color[4]; - int menu_min_width; - int menu_max_width; - int menu_separator_line_thickness; int menu_separator_padding_width; int menu_separator_padding_height; float menu_separator_color[4]; float menu_title_bg_color[4]; - + enum lab_justification menu_title_text_justify; float menu_title_text_color[4]; int osd_border_width; @@ -114,33 +137,7 @@ struct theme { struct theme_snapping_overlay snapping_overlay_region, snapping_overlay_edge; - /* window drop-shadows */ - int window_active_shadow_size; - int window_inactive_shadow_size; - float window_active_shadow_color[4]; - float window_inactive_shadow_color[4]; - - struct { - /* - * The texture of a window buttons for each hover/toggled/rounded - * state. This can be accessed like: - * - * buttons[LAB_SSD_BUTTON_ICONIFY][LAB_BS_HOVERD | LAB_BS_TOGGLED] - * - * Elements in buttons[0] are all NULL since LAB_SSD_BUTTON_FIRST is 1. - */ - struct lab_data_buffer *buttons - [LAB_SSD_BUTTON_LAST + 1][LAB_BS_ALL + 1]; - - /* TODO: add toggled/hover/pressed/disabled colors for buttons */ - float button_colors[LAB_SSD_BUTTON_LAST + 1][4]; - - /* TODO: move other window.(in)active.* entries to here */ - - } window[2]; /* indexed by THEME_INACTIVE and THEME_ACTIVE */ - /* textures */ - struct lab_data_buffer *corner_top_left_active_normal; struct lab_data_buffer *corner_top_right_active_normal; struct lab_data_buffer *corner_top_left_inactive_normal; diff --git a/src/theme.c b/src/theme.c index 90ff9717..8f5e3d0e 100644 --- a/src/theme.c +++ b/src/theme.c @@ -563,8 +563,6 @@ theme_builtin(struct theme *theme, struct server *server) theme->window_titlebar_padding_height = 0; theme->window_titlebar_padding_width = 0; theme->title_height = INT_MIN; - theme->menu_overlap_x = 0; - theme->menu_overlap_y = 0; parse_hexstr("#e1dedb", theme->window_active_border_color); parse_hexstr("#f6f5f4", theme->window_inactive_border_color); @@ -577,7 +575,6 @@ theme_builtin(struct theme *theme, struct server *server) parse_hexstr("#000000", theme->window_active_label_text_color); parse_hexstr("#000000", theme->window_inactive_label_text_color); theme->window_label_text_justify = parse_justification("Center"); - theme->menu_title_text_justify = parse_justification("Center"); theme->window_button_width = 26; theme->window_button_height = 26; @@ -597,24 +594,25 @@ theme_builtin(struct theme *theme, struct server *server) parse_hexstr("#00000060", theme->window_active_shadow_color); parse_hexstr("#00000040", theme->window_inactive_shadow_color); + theme->menu_overlap_x = 0; + theme->menu_overlap_y = 0; + theme->menu_min_width = 20; + theme->menu_max_width = 200; + + theme->menu_item_padding_x = 7; + theme->menu_item_padding_y = 4; parse_hexstr("#fcfbfa", theme->menu_items_bg_color); parse_hexstr("#000000", theme->menu_items_text_color); parse_hexstr("#e1dedb", theme->menu_items_active_bg_color); parse_hexstr("#000000", theme->menu_items_active_text_color); - theme->menu_item_padding_x = 7; - theme->menu_item_padding_y = 4; - - theme->menu_min_width = 20; - theme->menu_max_width = 200; - theme->menu_separator_line_thickness = 1; theme->menu_separator_padding_width = 6; theme->menu_separator_padding_height = 3; parse_hexstr("#888888", theme->menu_separator_color); parse_hexstr("#589bda", theme->menu_title_bg_color); - + theme->menu_title_text_justify = parse_justification("Center"); parse_hexstr("#ffffff", theme->menu_title_text_color); theme->osd_window_switcher_width = 600; @@ -708,25 +706,6 @@ entry(struct theme *theme, const char *key, const char *value) if (match_glob(key, "padding.height")) { wlr_log(WLR_ERROR, "padding.height is no longer supported"); } - if (match_glob(key, "menu.items.padding.x")) { - theme->menu_item_padding_x = get_int_if_positive( - value, "menu.items.padding.x"); - } - if (match_glob(key, "menu.items.padding.y")) { - theme->menu_item_padding_y = get_int_if_positive( - value, "menu.items.padding.y"); - } - if (match_glob(key, "menu.title.text.justify")) { - theme->menu_title_text_justify = parse_justification(value); - } - if (match_glob(key, "menu.overlap.x")) { - theme->menu_overlap_x = get_int_if_positive( - value, "menu.overlap.x"); - } - if (match_glob(key, "menu.overlap.y")) { - theme->menu_overlap_y = get_int_if_positive( - value, "menu.overlap.y"); - } if (match_glob(key, "window.active.border.color")) { parse_hexstr(value, theme->window_active_border_color); @@ -872,6 +851,14 @@ entry(struct theme *theme, const char *key, const char *value) parse_hexstr(value, theme->window_inactive_shadow_color); } + if (match_glob(key, "menu.overlap.x")) { + theme->menu_overlap_x = get_int_if_positive( + value, "menu.overlap.x"); + } + if (match_glob(key, "menu.overlap.y")) { + theme->menu_overlap_y = get_int_if_positive( + value, "menu.overlap.y"); + } if (match_glob(key, "menu.width.min")) { theme->menu_min_width = get_int_if_positive( value, "menu.width.min"); @@ -881,6 +868,14 @@ entry(struct theme *theme, const char *key, const char *value) value, "menu.width.max"); } + if (match_glob(key, "menu.items.padding.x")) { + theme->menu_item_padding_x = get_int_if_positive( + value, "menu.items.padding.x"); + } + if (match_glob(key, "menu.items.padding.y")) { + theme->menu_item_padding_y = get_int_if_positive( + value, "menu.items.padding.y"); + } if (match_glob(key, "menu.items.bg.color")) { parse_hexstr(value, theme->menu_items_bg_color); } @@ -913,7 +908,9 @@ entry(struct theme *theme, const char *key, const char *value) if (match_glob(key, "menu.title.bg.color")) { parse_hexstr(value, theme->menu_title_bg_color); } - + if (match_glob(key, "menu.title.text.justify")) { + theme->menu_title_text_justify = parse_justification(value); + } if (match_glob(key, "menu.title.text.color")) { parse_hexstr(value, theme->menu_title_text_color); }