[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53868] trunk/blender/source/blender/ editors/interface/interface_widgets.c: draw active+disabled menu-items, helps for keyboard navigation.

Campbell Barton ideasman42 at gmail.com
Thu Jan 17 02:48:43 CET 2013


Revision: 53868
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53868
Author:   campbellbarton
Date:     2013-01-17 01:48:42 +0000 (Thu, 17 Jan 2013)
Log Message:
-----------
draw active+disabled menu-items, helps for keyboard navigation. 

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_widgets.c

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2013-01-17 01:03:56 UTC (rev 53867)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2013-01-17 01:48:42 UTC (rev 53868)
@@ -1794,11 +1794,19 @@
 {
 	wt->wcol = *(wt->wcol_theme);
 	
-	if (state & (UI_BUT_DISABLED | UI_BUT_INACTIVE)) {
-		wt->wcol.text[0] = 0.5f * (wt->wcol.text[0] + wt->wcol.text_sel[0]);
-		wt->wcol.text[1] = 0.5f * (wt->wcol.text[1] + wt->wcol.text_sel[1]);
-		wt->wcol.text[2] = 0.5f * (wt->wcol.text[2] + wt->wcol.text_sel[2]);
+	/* active and disabled (not so common) */
+	if ((state & UI_BUT_DISABLED) && (state & UI_ACTIVE)) {
+		widget_state_blend(wt->wcol.text, wt->wcol.text_sel, 0.5f);
+		/* draw the backdrop at low alpha, helps navigating with keys
+		 * when inactive items are active */
+		copy_v4_v4_char(wt->wcol.inner, wt->wcol.inner_sel);
+		wt->wcol.inner[3] = 64;
 	}
+	/* regular disabled */
+	else if (state & (UI_BUT_DISABLED | UI_BUT_INACTIVE)) {
+		widget_state_blend(wt->wcol.text, wt->wcol.text_sel, 0.5f);
+	}
+	/* regular active */
 	else if (state & UI_ACTIVE) {
 		copy_v4_v4_char(wt->wcol.inner, wt->wcol.inner_sel);
 		copy_v3_v3_char(wt->wcol.text, wt->wcol.text_sel);
@@ -3443,7 +3451,7 @@
 	uiWidgetType *wt = widget_type(UI_WTYPE_MENU_ITEM);
 	rcti _rect = *rect;
 	char *cpoin;
-	
+
 	wt->state(wt, state);
 	wt->draw(&wt->wcol, rect, 0, 0);
 	




More information about the Bf-blender-cvs mailing list