[Bf-blender-cvs] [d6c9329] temp-ui-widget-refactor: Use new pipeline for link line drawing as well

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


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,




More information about the Bf-blender-cvs mailing list