[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