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,
 };

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to