[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