[Bf-blender-cvs] [d2fc12d] temp-ui-widget-refactor: Add widget type for separator line
Julian Eisel
noreply at git.blender.org
Mon Jul 20 12:52:58 CEST 2015
Commit: d2fc12d73e358577af999ad62146a56774befeee
Author: Julian Eisel
Date: Mon Jul 20 12:50:57 2015 +0200
Branches: temp-ui-widget-refactor
https://developer.blender.org/rBd2fc12d73e358577af999ad62146a56774befeee
Add widget type for separator line
===================================================================
M source/blender/editors/interface/interface_widgets.c
M source/blender/editors/interface/widgets/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_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 7872e44..1f2e235 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -806,23 +806,6 @@ void ui_hsvcube_pos_from_vals(uiBut *but, const rcti *rect, float *hsv, float *x
}
-/* ************ separator, for menus etc ***************** */
-static void ui_draw_separator(const rcti *rect, uiWidgetColors *wcol)
-{
- int y = rect->ymin + BLI_rcti_size_y(rect) / 2 - 1;
- unsigned char col[4];
-
- col[0] = wcol->text[0];
- col[1] = wcol->text[1];
- col[2] = wcol->text[2];
- col[3] = 30;
-
- glEnable(GL_BLEND);
- glColor4ubv(col);
- sdrawline(rect->xmin, y, rect->xmax, y);
- glDisable(GL_BLEND);
-}
-
/* ************ button callbacks, draw ***************** */
bool ui_link_bezier_points(const rcti *rect, float coord_array[][2], int resol)
@@ -992,7 +975,7 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
wt = WidgetTypeInit(UI_WTYPE_MENU_LABEL);
break;
case UI_BTYPE_SEPR_LINE:
- ui_draw_separator(rect, &tui->wcol_menu_item);
+ wt = WidgetTypeInit(UI_WTYPE_SEPARATOR);
break;
default:
wt = WidgetTypeInit(UI_WTYPE_MENU_ITEM);
diff --git a/source/blender/editors/interface/widgets/widgets.c b/source/blender/editors/interface/widgets/widgets.c
index 6d7f649..30ed9ba 100644
--- a/source/blender/editors/interface/widgets/widgets.c
+++ b/source/blender/editors/interface/widgets/widgets.c
@@ -217,6 +217,11 @@ uiWidgetType *WidgetTypeInit(const uiWidgetTypeEnum type)
wt.draw_type = draw_style->scroll_inner;
break;
+ case UI_WTYPE_SEPARATOR:
+ wt.wcol_theme = &btheme->tui.wcol_menu_item;
+ wt.draw_type = draw_style->separator;
+ break;
+
case UI_WTYPE_SLIDER:
wt.wcol_theme = &btheme->tui.wcol_numslider;
wt.draw_type = draw_style->slider;
diff --git a/source/blender/editors/interface/widgets/widgets.h b/source/blender/editors/interface/widgets/widgets.h
index bea38b7..b0beafe 100644
--- a/source/blender/editors/interface/widgets/widgets.h
+++ b/source/blender/editors/interface/widgets/widgets.h
@@ -88,6 +88,7 @@ typedef enum {
UI_WTYPE_LISTITEM,
UI_WTYPE_PROGRESSBAR,
UI_WTYPE_LINK,
+ UI_WTYPE_SEPARATOR,
} uiWidgetTypeEnum;
/** uiWidgetType: for time being only for visual appearance,
@@ -148,6 +149,7 @@ typedef struct uiWidgetDrawStyle {
*rgb_picker,
*scroll_back,
*scroll_inner,
+ *separator,
*slider,
*swatch,
*toggle,
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 c273c7b..3699a71 100644
--- a/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
+++ b/source/blender/editors/interface/widgets/widgets_draw/drawstyle_classic.c
@@ -826,7 +826,23 @@ static void widget_scroll_inner(uiWidgetColors *wcol, rcti *rect, int state, int
if (state & UI_SCROLL_NO_OUTLINE) {
SWAP(bool, outline, wtb.draw_outline);
}
+}
+
+/* separator, for menus etc */
+static void widget_separator(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))
+{
+ int y = rect->ymin + BLI_rcti_size_y(rect) / 2 - 1;
+ unsigned char col[4];
+ col[0] = wcol->text[0];
+ col[1] = wcol->text[1];
+ col[2] = wcol->text[2];
+ col[3] = 30;
+
+ glEnable(GL_BLEND);
+ glColor4ubv(col);
+ sdrawline(rect->xmin, y, rect->xmax, y);
+ glDisable(GL_BLEND);
}
static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
@@ -1445,6 +1461,13 @@ uiWidgetDrawType drawtype_classic_scroll_inner = {
/* text */ NULL,
};
+uiWidgetDrawType drawtype_classic_separator = {
+ /* state */ widget_state_nothing,
+ /* draw */ widget_separator,
+ /* custom */ NULL,
+ /* text */ NULL,
+};
+
uiWidgetDrawType drawtype_classic_numslider = {
/* state */ widget_state_numslider,
/* draw */ NULL,
@@ -1515,6 +1538,7 @@ uiWidgetDrawStyle WidgetStyle_Classic = {
/* rgb_picker */ NULL, /* not used (yet?) */
/* scroll_back */ &drawtype_classic_scroll_back,
/* scroll_inner */ &drawtype_classic_scroll_inner,
+ /* separator */ &drawtype_classic_separator,
/* slider */ &drawtype_classic_numslider,
/* swatch */ &drawtype_classic_swatch,
/* toggle */ &drawtype_classic_toggle,
More information about the Bf-blender-cvs
mailing list