[Bf-blender-cvs] [058b8df] wiggly-widgets: Register Dial Widgets on creation (like we do for others)

Julian Eisel noreply at git.blender.org
Thu Apr 9 16:32:09 CEST 2015


Commit: 058b8df8611a6f8ebdddc41f135bd2def1011bb4
Author: Julian Eisel
Date:   Thu Apr 9 16:30:30 2015 +0200
Branches: wiggly-widgets
https://developer.blender.org/rB058b8df8611a6f8ebdddc41f135bd2def1011bb4

Register Dial Widgets on creation (like we do for others)

Also fix dial widget color initialization

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

M	source/blender/editors/transform/manipulator_widget.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_generic_widgets.c

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

diff --git a/source/blender/editors/transform/manipulator_widget.c b/source/blender/editors/transform/manipulator_widget.c
index 6e05ba43..db9945b 100644
--- a/source/blender/editors/transform/manipulator_widget.c
+++ b/source/blender/editors/transform/manipulator_widget.c
@@ -2116,28 +2116,33 @@ void WIDGETGROUP_manipulator_create(const struct bContext *UNUSED(C), struct wmW
 	manipulator->translate_x = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_NORMAL);
 	manipulator->translate_y = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_NORMAL);
 	manipulator->translate_z = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_NORMAL);
-	manipulator->rotate_x = WIDGET_dial_new(WIDGET_DIAL_STYLE_RING_CLIPPED);
-	manipulator->rotate_y = WIDGET_dial_new(WIDGET_DIAL_STYLE_RING_CLIPPED);
-	manipulator->rotate_z = WIDGET_dial_new(WIDGET_DIAL_STYLE_RING_CLIPPED);
+	manipulator->rotate_x = WIDGET_dial_new(wgroup, WIDGET_DIAL_STYLE_RING_CLIPPED);
+	manipulator->rotate_y = WIDGET_dial_new(wgroup, WIDGET_DIAL_STYLE_RING_CLIPPED);
+	manipulator->rotate_z = WIDGET_dial_new(wgroup, WIDGET_DIAL_STYLE_RING_CLIPPED);
 
 	MAN_ITER_AXES_BEGIN(MAN_AXES_ALL)
 	{
 		switch (i) {
 			case MAN_AXIS_TRANS_X:
-			case MAN_AXIS_ROT_X:
 				WIDGET_arrow_set_color(axis, color_red);
 				break;
 			case MAN_AXIS_TRANS_Y:
-			case MAN_AXIS_ROT_Y:
 				WIDGET_arrow_set_color(axis, color_green);
 				break;
 			case MAN_AXIS_TRANS_Z:
-			case MAN_AXIS_ROT_Z:
 				WIDGET_arrow_set_color(axis, color_blue);
 				break;
+			case MAN_AXIS_ROT_X:
+				WIDGET_dial_set_color(axis, color_red);
+				break;
+			case MAN_AXIS_ROT_Y:
+				WIDGET_dial_set_color(axis, color_green);
+				break;
+			case MAN_AXIS_ROT_Z:
+				WIDGET_dial_set_color(axis, color_blue);
+				break;
 		}
 		axis->render_3d_intersection = widget->render_3d_intersection;
-		wm_widget_register(wgroup, axis);
 	}
 	MAN_ITER_AXES_END
 
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 282804d..5036360 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -547,7 +547,7 @@ void WIDGET_arrow_set_direction(struct wmWidget *widget, float direction[3]);
 void WIDGET_arrow_set_up_vector(struct wmWidget *widget, float direction[3]);
 void WIDGET_arrow_set_scale(struct wmWidget *widget, float scale);
 
-struct wmWidget *WIDGET_dial_new(int style);
+struct wmWidget *WIDGET_dial_new(struct wmWidgetGroup *wgroup, int style);
 void WIDGET_dial_set_color(struct wmWidget *widget, float color[4]);
 void WIDGET_dial_set_direction(struct wmWidget *widget, float direction[3]);
 
diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c
index 9b37894..366f88b 100644
--- a/source/blender/windowmanager/intern/wm_generic_widgets.c
+++ b/source/blender/windowmanager/intern/wm_generic_widgets.c
@@ -566,7 +566,7 @@ static void widget_dial_draw(struct wmWidget *widget, const struct bContext *C)
 	}
 }
 
-wmWidget *WIDGET_dial_new(int style)
+wmWidget *WIDGET_dial_new(struct wmWidgetGroup *wgroup, int style)
 {
 	float dir_default[3] = {0.0f, 0.0f, 1.0f};
 	DialWidget *dial;
@@ -589,6 +589,8 @@ wmWidget *WIDGET_dial_new(int style)
 	dial->style = style;
 	copy_v3_v3(dial->direction, dir_default);
 
+	wm_widget_register(wgroup, &dial->widget);
+
 	return (wmWidget *)dial;
 }




More information about the Bf-blender-cvs mailing list