[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