[Bf-blender-cvs] [9103166] wiggly-widgets: Make color a property for all widgets, not only for certain widget types

Julian Eisel noreply at git.blender.org
Mon Aug 24 17:34:35 CEST 2015


Commit: 910316681accbe6d787eccb0335bfc35c1eb1371
Author: Julian Eisel
Date:   Mon Aug 24 17:29:34 2015 +0200
Branches: wiggly-widgets
https://developer.blender.org/rB910316681accbe6d787eccb0335bfc35c1eb1371

Make color a property for all widgets, not only for certain widget types

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

M	source/blender/editors/object/object_lamp.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/editors/transform/manipulator_widget.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_generic_widgets.c
M	source/blender/windowmanager/intern/wm_widgets.c
M	source/blender/windowmanager/wm.h

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

diff --git a/source/blender/editors/object/object_lamp.c b/source/blender/editors/object/object_lamp.c
index a37b2bc..558a85d 100644
--- a/source/blender/editors/object/object_lamp.c
+++ b/source/blender/editors/object/object_lamp.c
@@ -227,7 +227,7 @@ void WIDGETGROUP_lamp_draw(const struct bContext *C, struct wmWidgetGroup *wgrou
 
 	widget = WIDGET_arrow_new(wgroup, propname, WIDGET_ARROW_STYLE_INVERTED);
 
-	WIDGET_arrow_set_color(widget, color_lamp, color_hi_lamp);
+	WM_widget_set_colors(widget, color_lamp, color_hi_lamp);
 	
 	RNA_pointer_create(&la->id, &RNA_Lamp, la, &ptr);
 	WM_widget_set_origin(widget, ob->obmat[3]);
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index fa4a840..fdaa385 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -753,8 +753,8 @@ static void WIDGETGROUP_camera_draw(const struct bContext *C, struct wmWidgetGro
 	widget = WIDGET_arrow_new(wgroup, propname, WIDGET_ARROW_STYLE_CROSS);
 	WM_widget_set_draw_on_hover_only(widget, true);
 	WM_widget_set_3d_scale(widget, false);
-	WIDGET_arrow_set_color(widget, color_camera, color_hi_camera);
-	
+	WM_widget_set_colors(widget, color_camera, color_hi_camera);
+
 	RNA_pointer_create(&ca->id, &RNA_Camera, ca, &cameraptr);
 	WM_widget_set_origin(widget, ob->obmat[3]);
 	WM_widget_property(widget, ARROW_SLOT_OFFSET_WORLD_SPACE, &cameraptr, propname);
@@ -864,7 +864,7 @@ static void WIDGETGROUP_armature_facemap_draw(const struct bContext *C, struct w
 			if ((prop = RNA_struct_find_property(opptr, "release_confirm"))) {
 				RNA_property_boolean_set(opptr, prop, true);
 			}
-			WIDGET_facemap_set_color(widget, color_shape);
+			WM_widget_set_colors(widget, color_shape, color_shape);
 			WM_widget_set_draw_on_hover_only(widget, true);
 		}
 	}
diff --git a/source/blender/editors/transform/manipulator_widget.c b/source/blender/editors/transform/manipulator_widget.c
index 0be15a7..3a4f700 100644
--- a/source/blender/editors/transform/manipulator_widget.c
+++ b/source/blender/editors/transform/manipulator_widget.c
@@ -1145,6 +1145,7 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 		manipulator_get_axis_color(rv3d, axis_idx, col, col_hi);
 		manipulator_get_axis_constraint(axis_idx, constraint_axis);
 		WM_widget_set_origin(axis, rv3d->twmat[3]);
+		WM_widget_set_colors(axis, col, col_hi);
 		/* custom handler! */
 		axis->handler = manipulator_handler;
 
@@ -1158,7 +1159,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 				manipulator_line_vec(v3d, line_vec, axis_type);
 
 				WIDGET_arrow_set_direction(axis, rv3d->twmat[aidx_norm]);
-				WIDGET_arrow_set_color(axis, col, col_hi);
 				WIDGET_arrow_set_line_vec(axis, (const float (*)[3])line_vec, ARRAY_SIZE(line_vec));
 				WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
 				break;
@@ -1167,7 +1167,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 			case MAN_AXIS_ROT_Z:
 				WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
 				WIDGET_dial_set_direction(axis, rv3d->twmat[aidx_norm]);
-				WIDGET_dial_set_color(axis, col, col_hi);
 				break;
 			case MAN_AXIS_TRANS_XY:
 			case MAN_AXIS_TRANS_YZ:
@@ -1202,7 +1201,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 				WM_widget_set_scale(axis, 0.07f);
 				WM_widget_set_origin(axis, origin);
 				WIDGET_plane_set_direction(axis, rv3d->twmat[aidx_norm - 1 > -1 ? aidx_norm - 1 : aidx_norm - 1]);
-				WIDGET_plane_set_color(axis, col);
 				break;
 			}
 			case MAN_AXIS_TRANS_C:
@@ -1212,7 +1210,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 					WM_widget_set_scale(axis, 0.2f);
 				}
 				WIDGET_dial_set_direction(axis, rv3d->viewinv[2]);
-				WIDGET_dial_set_color(axis, col, col_hi);
 				break;
 		}
 
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 28f960a..bbdf1ab 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -520,6 +520,7 @@ void WM_widget_set_draw_on_hover_only(struct wmWidget *widget, const bool draw);
 void WM_widget_set_scene_depth(struct wmWidget *widget, const bool scene);
 void WM_widget_set_scale(struct wmWidget *widget, float scale);
 void WM_widget_set_line_width(struct wmWidget *widget, const float line_width);
+void WM_widget_set_colors(struct wmWidget *widget, const float col[4], const float col_hi[4]);
 
 struct wmWidgetMapType *WM_widgetmaptype_find(const char *idname, const int spaceid, const int regionid,
                                               const bool is_3d, const bool create);
@@ -574,19 +575,16 @@ enum {
 };
 
 struct wmWidget *WIDGET_arrow_new(struct wmWidgetGroup *wgroup, const char *name, const int style);
-void WIDGET_arrow_set_color(struct wmWidget *widget, const float color[4], const float color_highlight[4]);
 void WIDGET_arrow_set_direction(struct wmWidget *widget, const float direction[3]);
 void WIDGET_arrow_set_up_vector(struct wmWidget *widget, const float direction[3]);
 void WIDGET_arrow_set_line_vec(struct wmWidget *widget, const float (*vec)[3], const int tot_points);
 void WIDGET_arrow_set_scale(struct wmWidget *widget, const float scale);
 
 struct wmWidget *WIDGET_dial_new(struct wmWidgetGroup *wgroup, const char *name, const int style);
-void WIDGET_dial_set_color(struct wmWidget *widget, const float color[4], const float color_highlight[4]);
 void WIDGET_dial_set_direction(struct wmWidget *widget, const float direction[3]);
 
 struct wmWidget *WIDGET_plane_new(struct wmWidgetGroup *wgroup, const char *name, const int style);
 void WIDGET_plane_set_direction(struct wmWidget *widget, const float direction[3]);
-void WIDGET_plane_set_color(struct wmWidget *widget, const float color[4]);
 
 struct wmWidget *WIDGET_rect_transform_new(
         struct wmWidgetGroup *wgroup, const char *name, const int style,
@@ -596,7 +594,6 @@ void WIDGET_rect_transform_set_offset(struct wmWidget *widget, const float offse
 struct wmWidget *WIDGET_facemap_new(
         struct wmWidgetGroup *wgroup, const char *name, const int style,
         struct Object *ob, const int facemap);
-void WIDGET_facemap_set_color(struct wmWidget *widget, const float color[4]);
 
 
 #ifdef WITH_INPUT_IME
diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c
index 3f1ea11..de5710d 100644
--- a/source/blender/windowmanager/intern/wm_generic_widgets.c
+++ b/source/blender/windowmanager/intern/wm_generic_widgets.c
@@ -160,8 +160,6 @@ typedef struct ArrowWidget {
 	int flag;
 	float direction[3];
 	float up[3];
-	float color[4];
-	float color_highlight[4];
 	float (*line)[3];    /* custom coords for arrow line drawing */
 	int tot_line_points; /* amount of points for arrow line drawing */
 	float offset;
@@ -270,10 +268,10 @@ static void arrow_draw_intern(ArrowWidget *arrow, const bool select, const bool
 	glMultMatrixf(mat);
 
 	if (highlight && !(arrow->widget.flag & WM_WIDGET_DRAW_HOVER)) {
-		glColor4fv(arrow->color_highlight);
+		glColor4fv(arrow->widget.col_hi);
 	}
 	else {
-		glColor4fv(arrow->color);
+		glColor4fv(arrow->widget.col);
 	}
 
 	glEnable(GL_BLEND);
@@ -536,7 +534,10 @@ wmWidget *WIDGET_arrow_new(wmWidgetGroup *wgroup, const char *name, const int st
 	arrow->widget.render_3d_intersection = widget_arrow_render_3d_intersect;
 	arrow->widget.bind_to_prop = widget_arrow_bind_to_prop;
 	arrow->widget.flag |= WM_WIDGET_SCALE_3D;
+
 	arrow->style = real_style;
+
+	/* defaults */
 	copy_v3_v3(arrow->direction, dir_default);
 	arrow->tot_line_points = ARRAY_SIZE(line_default);
 	arrow->line = MEM_mallocN(sizeof(line_default), __func__);
@@ -547,14 +548,6 @@ wmWidget *WIDGET_arrow_new(wmWidgetGroup *wgroup, const char *name, const int st
 	return (wmWidget *)arrow;
 }
 
-void WIDGET_arrow_set_color(wmWidget *widget, const float color[4], const float color_highlight[4])
-{
-	ArrowWidget *arrow = (ArrowWidget *)widget;
-	
-	copy_v4_v4(arrow->color, color);
-	copy_v4_v4(arrow->color_highlight, color_highlight);
-}
-
 void WIDGET_arrow_set_direction(wmWidget *widget, const float direction[3])
 {
 	ArrowWidget *arrow = (ArrowWidget *)widget;
@@ -597,8 +590,6 @@ typedef struct DialWidget {
 	wmWidget widget;
 	int style;
 	float direction[3];
-	float color[4];
-	float color_highlight[4];
 } DialWidget;
 
 static void dial_draw_geom(const DialWidget *dial, const bool select)
@@ -641,9 +632,9 @@ static void dial_draw_intern(DialWidget *dial, const bool select, const bool hig
 	glMultMatrixf(mat);
 
 	if (highlight)
-		glColor4fv(dial->color_highlight);
+		glColor4fv(dial->widget.col_hi);
 	else
-		glColor4fv(dial->color);
+		glColor4fv(dial->widget.col);
 
 	dial_draw_geom(dial, select);
 
@@ -700,8 +691,8 @@ static void widget_dial_draw(const bContext *C, wmWidget *widget)
 
 wmWidget *WIDGET_dial_new(wmWidgetGroup *wgroup, const char *name, const int style)
 {
-	const float dir_default[3] = {0.0f, 0.0f, 1.0f};
 	DialWidget *dial;
+	const float dir_default[3] = {0.0f, 0.0f, 1.0f};
 
 #ifdef WIDGET_USE_CUSTOM_DIAS
 	if (!dial_draw_info.init) {
@@ -722,6 +713,8 @@ wmWidget *WIDGET_dial_new(wmWidgetGroup *wgroup, const char *name, const int sty
 	dial->widget.flag |= WM_WIDGET_SCALE_3D;
 
 	dial->style = style;
+
+	/* defaults */
 	copy_v3_v3(dial->direction, dir_default);
 
 	wm_widget_register(wgroup, &dial->widget, name);
@@ -729,14 +722,6 @@ wmWidget *WIDGET_dial_new(wmWidgetGroup *wgroup, const char *name, const int sty
 	return (wmWidget *)dial;
 }
 
-void WIDGET_dial_set_color(wmWidget *widget, const float color[4], const float color_highlight[4])
-{
-	DialWidget *arrow = (DialWidget *)widget;
-
-	copy_v4_v4(arrow->color, color);
-	copy_v4_v4(arrow->color_highlight, color_highlight);
-}
-
 void WIDGET_dial_set_direction(wmWidget *widget, const float direction[3])
 {
 	DialWidget *dial = (DialWidget *)widget;
@@ -751,7 +736,6 @@ typedef struct PlaneWidget {
 	wmWidget widget;
 
 	float direction[3];
-	float color[4];
 } PlaneWidget;
 
 
@@ -794,12 +778,12 @@ s

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list