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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to