[Bf-blender-cvs] [226c757b440] blender2.8: UI: add darker theme color for toolbar items

Campbell Barton noreply at git.blender.org
Thu Apr 26 21:19:37 CEST 2018


Commit: 226c757b4400b9b423b691a4309f6daf56f775c7
Author: Campbell Barton
Date:   Thu Apr 26 21:17:33 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB226c757b4400b9b423b691a4309f6daf56f775c7

UI: add darker theme color for toolbar items

===================================================================

M	release/scripts/startup/bl_ui/space_userpref.py
M	source/blender/editors/interface/interface_intern.h
M	source/blender/editors/interface/interface_widgets.c
M	source/blender/editors/interface/resources.c
M	source/blender/makesdna/DNA_userdef_types.h
M	source/blender/makesrna/intern/rna_userdef.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index d83fd76536e..cc7e8701320 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -806,6 +806,9 @@ class USERPREF_PT_theme(Panel):
             col.label(text="Tool:")
             self._theme_widget_style(col, ui.wcol_tool)
 
+            col.label(text="Toolbar Item:")
+            self._theme_widget_style(col, ui.wcol_toolbar_item)
+
             col.label(text="Radio Buttons:")
             self._theme_widget_style(col, ui.wcol_radio)
 
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index f7f30b00a49..8353a17a359 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -72,6 +72,7 @@ typedef enum {
 	UI_WTYPE_NUMBER,
 	UI_WTYPE_SLIDER,
 	UI_WTYPE_EXEC,
+	UI_WTYPE_TOOLBAR_ITEM,
 	UI_WTYPE_TAB,
 	UI_WTYPE_TOOLTIP,
 	
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 1ce4941554c..10e4b03acef 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -2317,6 +2317,22 @@ static struct uiWidgetColors wcol_tool = {
 	0.2f,
 };
 
+static struct uiWidgetColors wcol_toolbar_item = {
+	.outline = {0x19, 0x19, 0x19, 0xff},
+	.inner = {0x46, 0x46, 0x46, 0xff},
+	.inner_sel = {0xb4, 0xb4, 0xb4, 0xff},
+	.item = {0x19, 0x19, 0x19, 0xff},
+
+	.text = {0xff, 0xff, 0xff, 0xff},
+	.text_sel = {0x33, 0x33, 0x33, 0xff},
+
+	.shaded = 0,
+	.shadetop = 0,
+	.shadedown = 0,
+	.alpha_check = 0,
+	.roundness = 0.3f,
+};
+
 static struct uiWidgetColors wcol_box = {
 	{25, 25, 25, 255},
 	{128, 128, 128, 255},
@@ -2429,6 +2445,7 @@ void ui_widget_color_init(ThemeUI *tui)
 {
 	tui->wcol_regular = wcol_regular;
 	tui->wcol_tool = wcol_tool;
+	tui->wcol_toolbar_item = wcol_toolbar_item;
 	tui->wcol_text = wcol_text;
 	tui->wcol_radio = wcol_radio;
 	tui->wcol_tab = wcol_tab;
@@ -4172,6 +4189,11 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
 			wt.draw = widget_roundbut_exec;
 			break;
 
+		case UI_WTYPE_TOOLBAR_ITEM:
+			wt.wcol_theme = &btheme->tui.wcol_toolbar_item;
+			wt.draw = widget_roundbut_exec;
+			break;
+			
 		case UI_WTYPE_TAB:
 			wt.wcol_theme = &btheme->tui.wcol_tab;
 			wt.draw = widget_tab;
@@ -4415,7 +4437,16 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
 				break;
 				
 			case UI_BTYPE_BUT:
+#ifdef USE_TOOLBAR_HACK
+				if (UI_but_is_tool(but)) {
+					wt = widget_type(UI_WTYPE_TOOLBAR_ITEM);
+				}
+				else {
+					wt = widget_type(UI_WTYPE_EXEC);
+				}
+#else
 				wt = widget_type(UI_WTYPE_EXEC);
+#endif
 				break;
 
 			case UI_BTYPE_NUM:
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 1bc834a121c..ade69050622 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -2985,6 +2985,27 @@ void init_userdef_do_versions(void)
 		}
 	}
 
+	if (((bTheme *)U.themes.first)->tui.wcol_toolbar_item.text[3] == 0) {
+		struct uiWidgetColors wcol_toolbar_item = {
+			.outline = {0x19, 0x19, 0x19, 0xff},
+			.inner = {0x46, 0x46, 0x46, 0xff},
+			.inner_sel = {0xb4, 0xb4, 0xb4, 0xff},
+			.item = {0x19, 0x19, 0x19, 0xff},
+
+			.text = {0xff, 0xff, 0xff, 0xff},
+			.text_sel = {0x33, 0x33, 0x33, 0xff},
+
+			.shaded = 0,
+			.shadetop = 0,
+			.shadedown = 0,
+			.alpha_check = 0,
+			.roundness = 0.3f,
+		};
+		for (bTheme *btheme = U.themes.first; btheme; btheme = btheme->next) {
+			btheme->tui.wcol_toolbar_item = wcol_toolbar_item;
+		}
+	}
+
 	/**
 	 * Include next version bump.
 	 */
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index ba6d022e556..4ef7ce019bb 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -164,7 +164,7 @@ typedef struct uiGradientColors {
 
 typedef struct ThemeUI {
 	/* Interface Elements (buttons, menus, icons) */
-	uiWidgetColors wcol_regular, wcol_tool, wcol_text;
+	uiWidgetColors wcol_regular, wcol_tool, wcol_toolbar_item, wcol_text;
 	uiWidgetColors wcol_radio, wcol_option, wcol_toggle;
 	uiWidgetColors wcol_num, wcol_numslider, wcol_tab;
 	uiWidgetColors wcol_menu, wcol_pulldown, wcol_menu_back, wcol_menu_item, wcol_tooltip;
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 45843bc2b1c..dc8db500f24 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -962,6 +962,11 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna)
 	RNA_def_property_flag(prop, PROP_NEVER_NULL);
 	RNA_def_property_ui_text(prop, "Tool Widget Colors", "");
 	RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+	prop = RNA_def_property(srna, "wcol_toolbar_item", PROP_POINTER, PROP_NONE);
+	RNA_def_property_flag(prop, PROP_NEVER_NULL);
+	RNA_def_property_ui_text(prop, "Toolbar Item Widget Colors", "");
+	RNA_def_property_update(prop, 0, "rna_userdef_update");
 	
 	prop = RNA_def_property(srna, "wcol_radio", PROP_POINTER, PROP_NONE);
 	RNA_def_property_flag(prop, PROP_NEVER_NULL);



More information about the Bf-blender-cvs mailing list