[Bf-blender-cvs] [3b42468] wiggly-widgets: Register each widget with a unique id-name

Julian Eisel noreply at git.blender.org
Sun Aug 16 20:24:58 CEST 2015


Commit: 3b42468bff06d2f05096f22c76cf014573621fa6
Author: Julian Eisel
Date:   Sun Aug 16 20:20:47 2015 +0200
Branches: wiggly-widgets
https://developer.blender.org/rB3b42468bff06d2f05096f22c76cf014573621fa6

Register each widget with a unique id-name

Needed so we can reliably compare widgets after freeing (for next commit).

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

M	source/blender/editors/object/object_lamp.c
M	source/blender/editors/space_graph/graph_edit.c
M	source/blender/editors/space_node/space_node.c
M	source/blender/editors/space_sequencer/sequencer_view.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/WM_types.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 f60c8f3..ffd6d0b 100644
--- a/source/blender/editors/object/object_lamp.c
+++ b/source/blender/editors/object/object_lamp.c
@@ -222,8 +222,9 @@ void WIDGETGROUP_lamp_draw(const struct bContext *C, struct wmWidgetGroup *wgrou
 	wmWidget *widget;
 	PointerRNA ptr;
 	float dir[3];
+	const char *propname = "spot_size";
 
-	widget = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_INVERTED);
+	widget = WIDGET_arrow_new(wgroup, propname, WIDGET_ARROW_STYLE_INVERTED);
 
 	WIDGET_arrow_set_color(widget, color_lamp);
 	
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index bb1055d..ac8f0c6 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -2521,8 +2521,10 @@ static void widgetgroup_backdrop_draw(const struct bContext *C, struct wmWidgetG
 	int height = (scene->r.size * scene->r.ysch) / 150.0f;
 	float origin[3];
 
-	wmWidget *cage = WIDGET_rect_transform_new(wgroup, WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM |
-	                                           WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE, width, height);
+	wmWidget *cage = WIDGET_rect_transform_new(
+	                     wgroup, "backdrop_cage",
+	                     WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM | WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE,
+	                     width, height);
 	WM_widget_property(cage, RECT_TRANSFORM_SLOT_OFFSET, op->ptr, "offset");
 	WM_widget_property(cage, RECT_TRANSFORM_SLOT_SCALE, op->ptr, "scale");
 
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 9c61ce9..6995092 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -870,7 +870,10 @@ static void WIDGETGROUP_node_transform_update(const struct bContext *C, struct w
 		w = (ibuf->x > 0) ? ibuf->x : 64.0f;
 		h = (ibuf->y > 0) ? ibuf->y : 64.0f;
 
-		cage = WIDGET_rect_transform_new(wgroup, WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE | WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM, w, h);
+		cage = WIDGET_rect_transform_new(
+		           wgroup, "backdrop_cage",
+		           WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE | WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM,
+		           w, h);
 		RNA_pointer_create(snode->id, &RNA_SpaceNodeEditor, snode, &nodeptr);
 		
 		WM_widget_set_origin(cage, origin);
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c
index a0f0c80..17e416e 100644
--- a/source/blender/editors/space_sequencer/sequencer_view.c
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -275,8 +275,10 @@ static void widgetgroup_overdrop_draw(const struct bContext *C, struct wmWidgetG
 	int sizey = (sce->r.size * sce->r.ysch) / 100;
 	float origin[3];	
 	
-	wmWidget *cage = WIDGET_rect_transform_new(wgroup, WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM | 
-	                                           WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE, sizex, sizey);
+	wmWidget *cage = WIDGET_rect_transform_new(
+	                     wgroup, "overdrop_cage",
+	                     WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM | WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE,
+	                     sizex, sizey);
 	WM_widget_property(cage, RECT_TRANSFORM_SLOT_OFFSET, op->ptr, "offset");
 	WM_widget_property(cage, RECT_TRANSFORM_SLOT_SCALE, op->ptr, "scale");
 	
@@ -431,9 +433,10 @@ static void widgetgroup_image_transform_draw(const struct bContext *C, struct wm
 	sequencer_display_size(CTX_data_scene(C), CTX_wm_space_seq(C), viewrect);
 	UI_view2d_scale_get(v2d, &scale[0], &scale[1]);
 
-	cage = WIDGET_rect_transform_new(wgroup, WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM |
-	                                 WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE,
-	                                 viewrect[0] * scale[0], viewrect[1] * scale[1]);
+	cage = WIDGET_rect_transform_new(
+	           wgroup, "image_cage",
+	           WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM | WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE,
+	           viewrect[0] * scale[0], viewrect[1] * scale[1]);
 	WM_widget_property(cage, RECT_TRANSFORM_SLOT_SCALE, op->ptr, "scale");
 
 	origin[0] = -(v2d->cur.xmin * scale[0]);
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 461100c..9278ab5 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -747,15 +747,16 @@ static void WIDGETGROUP_camera_draw(const struct bContext *C, struct wmWidgetGro
 	wmWidget *widget;
 	PointerRNA cameraptr;
 	float dir[3];
+	const char *propname = "dof_distance";
 
-	widget = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_CROSS);
+	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);
 	
 	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, "dof_distance");
+	WM_widget_property(widget, ARROW_SLOT_OFFSET_WORLD_SPACE, &cameraptr, propname);
 	negate_v3_v3(dir, ob->obmat[2]);
 	WIDGET_arrow_set_direction(widget, dir);
 	WIDGET_arrow_set_up_vector(widget, ob->obmat[1]);
@@ -855,7 +856,7 @@ static void WIDGETGROUP_armature_facemap_draw(const struct bContext *C, struct w
 	for (; fmap; fmap = fmap->next, index++) {
 		if (BKE_pose_channel_find_name(armature->pose, fmap->name)) {
 			PointerRNA *opptr;
-			widget = WIDGET_facemap_new(wgroup, 0, ob, index);
+			widget = WIDGET_facemap_new(wgroup, fmap->name, 0, ob, index);
 			RNA_pointer_create(&ob->id, &RNA_FaceMap, fmap, &famapptr);
 			WM_widget_property(widget, FACEMAP_SLOT_FACEMAP, &famapptr, "name");
 			opptr = WM_widget_operator(widget, "TRANSFORM_OT_translate");
diff --git a/source/blender/editors/transform/manipulator_widget.c b/source/blender/editors/transform/manipulator_widget.c
index a51aebd..c52b37b 100644
--- a/source/blender/editors/transform/manipulator_widget.c
+++ b/source/blender/editors/transform/manipulator_widget.c
@@ -1991,14 +1991,14 @@ static ManipulatorGroup *manipulator_widgetgroup_create(struct wmWidgetGroup *wg
 	                       NULL,
 	                       WIDGET_manipulator_handler);
 
-	wm_widget_register(wgroup, widget);
+	wm_widget_register(wgroup, widget, "");
 
-	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(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);
+	manipulator->translate_x = WIDGET_arrow_new(wgroup, "translate_x", WIDGET_ARROW_STYLE_NORMAL);
+	manipulator->translate_y = WIDGET_arrow_new(wgroup, "translate_y", WIDGET_ARROW_STYLE_NORMAL);
+	manipulator->translate_z = WIDGET_arrow_new(wgroup, "translate_z", WIDGET_ARROW_STYLE_NORMAL);
+	manipulator->rotate_x = WIDGET_dial_new(wgroup, "rotate_x", WIDGET_DIAL_STYLE_RING_CLIPPED);
+	manipulator->rotate_y = WIDGET_dial_new(wgroup, "rotate_y", WIDGET_DIAL_STYLE_RING_CLIPPED);
+	manipulator->rotate_z = WIDGET_dial_new(wgroup, "rotate_z", WIDGET_DIAL_STYLE_RING_CLIPPED);
 
 	MAN_ITER_AXES_BEGIN(MAN_AXES_ALL)
 	{
@@ -2171,11 +2171,11 @@ void WIDGETGROUP_object_manipulator_draw(const struct bContext *C, struct wmWidg
 
 	copy_v3_v3(rv3d->twmat[3], scene->twcent);
 
-	manipulator->translate_x = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_NORMAL);
+	manipulator->translate_x = WIDGET_arrow_new(wgroup, "translate_x", WIDGET_ARROW_STYLE_NORMAL);
 	WIDGET_arrow_set_color(manipulator->translate_x, color_red);
-	manipulator->translate_y = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_NORMAL);
+	manipulator->translate_y = WIDGET_arrow_new(wgroup, "translate_y", WIDGET_ARROW_STYLE_NORMAL);
 	WIDGET_arrow_set_color(manipulator->translate_y, color_green);
-	manipulator->translate_z = WIDGET_arrow_new(wgroup, WIDGET_ARROW_STYLE_NORMAL);
+	manipulator->translate_z = WIDGET_arrow_new(wgroup, "translate_z", WIDGET_ARROW_STYLE_NORMAL);
 	WIDGET_arrow_set_color(manipulator->translate_z, color_blue);
 
 	test_manipulator_axis(C);
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 9c213a8..0eac8cc 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -567,20 +567,20 @@ enum {
 	FACEMAP_SLOT_FACEMAP = 0,
 };
 
-struct wmWidget *WIDGET_arrow_new(struct wmWidgetGroup *wgroup, int style);
+struct wmWidget *WIDGET_arrow_new(struct wmWidgetGroup *wgroup, const char *name, int style);
 void WIDGET_arrow_set_color(struct wmWidget *widget, float color[4]);
 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(struct wmWidgetGroup *wgroup, int style);
+struct wmWidget *WIDGET_dial_new(struct wmWidgetGroup *wgroup, const char *name, int style);
 void WIDGET_dial_set_color(struct wmWidget *widget, float color[4]);
 void WIDGET_dial_set_direction(struct wmWidget *widget, float direction[3]);
 
-struct wmWidget *WIDGET_rect_transform_new(struct wmWidgetGroup *wgroup, int style, float width, float height);
+struct wmWidget *WIDGET_rect_transform_new(struct wmWidgetGroup *wgroup, const char *name, int style, float width, float height);
 void WIDGET_rect_transform_set_offset(struct wmWidget *widget, float offset[2]);
 
-struct wmWidget *WIDGET_facemap_new(struct wmWidgetGroup *wgroup, int style, struct Object *ob, int facemap);
+struct wmWidget *WIDGET_facemap_new(struct wmWidgetGroup *wgroup, const char *

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list