[Bf-blender-cvs] [d032de3] temp-ui-widget-refactor: Let's not use default callbacks for uiWidgetType->draw

Julian Eisel noreply at git.blender.org
Tue Jul 14 02:12:38 CEST 2015


Commit: d032de3baedf07b15110203d74d03f26ec27eee1
Author: Julian Eisel
Date:   Tue Jul 14 01:49:08 2015 +0200
Branches: temp-ui-widget-refactor
https://developer.blender.org/rBd032de3baedf07b15110203d74d03f26ec27eee1

Let's not use default callbacks for uiWidgetType->draw

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

M	source/blender/editors/interface/interface_widgets.c
M	source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c

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

diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 1cfcc71..9975858 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -2188,6 +2188,7 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
 
 	switch (type) {
 		case UI_WTYPE_REGULAR:
+			wt.draw_type = draw_style->regular;
 			break;
 
 		case UI_WTYPE_LABEL:
@@ -2197,6 +2198,7 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
 			
 		case UI_WTYPE_TOGGLE:
 			wt.wcol_theme = &btheme->tui.wcol_toggle;
+			wt.draw_type = draw_style->toggle;
 			break;
 			
 		case UI_WTYPE_CHECKBOX:
@@ -2331,6 +2333,7 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
 
 		case UI_WTYPE_LINK:
 			wt.draw_type = draw_style->link;
+			break;
 	}
 	
 	return &wt;
@@ -2840,9 +2843,9 @@ void ui_draw_search_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)
 
 	wt->state(wt, 0);
 	if (block)
-		wt->draw(&wt->wcol, rect, block->flag, UI_CNR_ALL);
+		wt->draw_type->draw(&wt->wcol, rect, block->flag, UI_CNR_ALL);
 	else
-		wt->draw(&wt->wcol, rect, 0, UI_CNR_ALL);
+		wt->draw_type->draw(&wt->wcol, rect, 0, UI_CNR_ALL);
 }
 
 
diff --git a/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c b/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
index a721edc..612b726 100644
--- a/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
+++ b/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
@@ -77,6 +77,20 @@ static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int UNUSED(
 	copy_v3_v3_char(wcol->inner, old_col);
 }
 
+static void widget_but(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
+{
+	uiWidgetBase wtb;
+	float rad;
+
+	widgetbase_init(&wtb);
+
+	/* half rounded */
+	rad = 0.2f * U.widget_unit;
+	round_box_edges(&wtb, roundboxalign, rect, rad);
+
+	widgetbase_draw(&wtb, wcol);
+}
+
 static void widget_checkbox(uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
 {
 	uiWidgetBase wtb;
@@ -640,7 +654,7 @@ static void widget_numbut(uiWidgetColors *wcol, rcti *rect, int state, int round
 
 uiWidgetDrawType drawtype_classic_box = {
 	/* state */  NULL,
-	/* draw */   NULL,
+	/* draw */   widget_but,
 	/* custom */ widget_box,
 	/* text */   NULL,
 };
@@ -771,6 +785,13 @@ uiWidgetDrawType drawtype_classic_radio = {
 	/* text */   NULL,
 };
 
+uiWidgetDrawType drawtype_classic_regular = {
+	/* state */  NULL,
+	/* draw */   widget_but,
+	/* custom */ NULL,
+	/* text */   NULL,
+};
+
 uiWidgetDrawType drawtype_classic_scroll = {
 	/* state */  NULL,
 	/* draw */   NULL,
@@ -792,6 +813,13 @@ uiWidgetDrawType drawtype_classic_swatch = {
 	/* text */   NULL,
 };
 
+uiWidgetDrawType drawtype_classic_toggle = {
+	/* state */  NULL,
+	/* draw */   widget_but,
+	/* custom */ NULL,
+	/* text */   NULL,
+};
+
 uiWidgetDrawType drawtype_classic_tooltip = {
 	/* state */  NULL,
 	/* draw */   widget_menu_back,
@@ -830,12 +858,12 @@ uiWidgetDrawStyle WidgetStyle_Classic = {
 	/* progressbar */       &drawtype_classic_progressbar,
 	/* pulldown */          &drawtype_classic_pulldown,
 	/* radio */             &drawtype_classic_radio,
-	/* regular */           NULL,
+	/* regular */           &drawtype_classic_regular,
 	/* rgb_picker */        NULL, /* not used (yet?) */
 	/* scroll */            &drawtype_classic_scroll,
 	/* slider */            &drawtype_classic_numslider,
 	/* swatch */            &drawtype_classic_swatch,
-	/* toggle */            NULL,
+	/* toggle */            &drawtype_classic_toggle,
 	/* tooltip */           &drawtype_classic_tooltip,
 	/* unitvec */           &drawtype_classic_unitvec,
 };




More information about the Bf-blender-cvs mailing list