Commit: d6c93298b5ae2633344cff85f7a1fbe0fd26b6e2
Author: Julian Eisel
Date:   Mon Jul 13 23:31:33 2015 +0200
Branches: temp-ui-widget-refactor
https://developer.blender.org/rBd6c93298b5ae2633344cff85f7a1fbe0fd26b6e2

Use new pipeline for link line drawing as well

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

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

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

diff --git a/source/blender/editors/interface/interface_intern.h 
b/source/blender/editors/interface/interface_intern.h
index 9461547..c935438 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -99,6 +99,7 @@ typedef enum {
        UI_WTYPE_SCROLL,
        UI_WTYPE_LISTITEM,
        UI_WTYPE_PROGRESSBAR,
+       UI_WTYPE_LINK,
 } uiWidgetTypeEnum;
 
 /* menu scrolling */
diff --git a/source/blender/editors/interface/interface_widgets.c 
b/source/blender/editors/interface/interface_widgets.c
index a244717..e21ae75 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -2104,23 +2104,6 @@ void UI_draw_widget_scroll(uiWidgetColors *wcol, const 
rcti *rect, const rcti *s
        }
 }
 
-static void widget_link(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect, 
int UNUSED(state), int UNUSED(roundboxalign))
-{
-       
-       if (but->flag & UI_SELECT) {
-               rcti rectlink;
-               
-               UI_ThemeColor(TH_TEXT_HI);
-               
-               rectlink.xmin = BLI_rcti_cent_x(rect);
-               rectlink.ymin = BLI_rcti_cent_y(rect);
-               rectlink.xmax = but->linkto[0];
-               rectlink.ymax = but->linkto[1];
-               
-               ui_draw_link_bezier(&rectlink);
-       }
-}
-
 /* labels use Editor theme colors for text */
 static void widget_state_label(uiWidgetType *wt, int state)
 {
@@ -2345,6 +2328,9 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
                        wt.draw_type = draw_style->menu_item_radial;
                        wt.state = widget_state_pie_menu_item;
                        break;
+
+               case UI_WTYPE_LINK:
+                       wt.draw_type = draw_style->link;
        }
        
        return &wt;
@@ -2548,9 +2534,7 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle 
*style, uiBut *but, rct
                                
                        case UI_BTYPE_LINK:
                        case UI_BTYPE_INLINK:
-                               wt = widget_type(UI_WTYPE_ICON);
-                               wt->custom = widget_link;
-                               
+                               wt = widget_type(UI_WTYPE_LINK);
                                break;
                        
                        case UI_BTYPE_EXTRA:
diff --git a/source/blender/editors/interface/widgets/widgets.h 
b/source/blender/editors/interface/widgets/widgets.h
index 65ac8f0..ca63f1d 100644
--- a/source/blender/editors/interface/widgets/widgets.h
+++ b/source/blender/editors/interface/widgets/widgets.h
@@ -64,6 +64,7 @@ typedef struct uiWidgetDrawStyle {
                         *filename,
                         *icon,
                         *label,
+                        *link,
                         *listitem,
                         *menu_back,
                         *menu_icon_radio,
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 c7ef193..a721edc 100644
--- a/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
+++ b/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
@@ -145,6 +145,22 @@ static void widget_icon_has_anim(uiBut *but, 
uiWidgetColors *wcol, rcti *rect, i
        }
 }
 
+static void widget_link(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect, 
int UNUSED(state), int UNUSED(roundboxalign))
+{
+       if (but->flag & UI_SELECT) {
+               rcti rectlink;
+
+               UI_ThemeColor(TH_TEXT_HI);
+
+               rectlink.xmin = BLI_rcti_cent_x(rect);
+               rectlink.ymin = BLI_rcti_cent_y(rect);
+               rectlink.xmax = but->linkto[0];
+               rectlink.ymax = but->linkto[1];
+
+               ui_draw_link_bezier(&rectlink);
+       }
+}
+
 static void widget_list_itembut(uiWidgetColors *wcol, rcti *rect, int 
UNUSED(state), int UNUSED(roundboxalign))
 {
        uiWidgetBase wtb;
@@ -657,6 +673,13 @@ uiWidgetDrawType drawtype_classic_label = {
        /* text */   NULL,
 };
 
+uiWidgetDrawType drawtype_classic_link = {
+       /* state */  NULL,
+       /* draw */   NULL,
+       /* custom */ widget_link,
+       /* text */   NULL,
+};
+
 uiWidgetDrawType drawtype_classic_listitem = {
        /* state */  NULL,
        /* draw */   widget_list_itembut,
@@ -791,6 +814,7 @@ uiWidgetDrawStyle WidgetStyle_Classic = {
        /* filename */          NULL, /* not used (yet?) */
        /* icon */              &drawtype_classic_icon,
        /* label */             &drawtype_classic_label,
+       /* link */              &drawtype_classic_link,
        /* listitem */          &drawtype_classic_listitem,
        /* menu_back */         &drawtype_classic_menu_back,
        /* menu_icon_radio */   &drawtype_classic_menu_icon_radio,

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to