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