[Bf-blender-cvs] [0fb37c7] wiggly-widgets: Add back idnames to the widgetmaps, we could well need to define both for different transform areas.
Antony Riakiotakis
noreply at git.blender.org
Wed Dec 10 12:46:29 CET 2014
Commit: 0fb37c710fc2aa7869f7d2cd32ba50e4209eb771
Author: Antony Riakiotakis
Date: Wed Dec 10 12:46:15 2014 +0100
Branches: wiggly-widgets
https://developer.blender.org/rB0fb37c710fc2aa7869f7d2cd32ba50e4209eb771
Add back idnames to the widgetmaps, we could well need to define both
for different transform areas.
===================================================================
M source/blender/editors/space_node/space_node.c
M source/blender/editors/space_sequencer/sequencer_ops.c
M source/blender/editors/space_sequencer/sequencer_view.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/makesrna/intern/rna_wm.c
M source/blender/windowmanager/WM_api.h
M source/blender/windowmanager/WM_types.h
M source/blender/windowmanager/intern/wm_widgets.c
===================================================================
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 79b7411..a6f60ff 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -342,7 +342,7 @@ static SpaceLink *node_new(const bContext *UNUSED(C))
/* main area */
ar = MEM_callocN(sizeof(ARegion), "main area for node");
- ar->widgetmap = WM_widgetmap_from_type(SPACE_NODE, RGN_TYPE_WINDOW, true);
+ ar->widgetmap = WM_widgetmap_from_type("View3D", SPACE_NODE, RGN_TYPE_WINDOW, true);
BLI_addtail(&snode->regionbase, ar);
ar->regiontype = RGN_TYPE_WINDOW;
@@ -664,7 +664,7 @@ static void node_main_area_init(wmWindowManager *wm, ARegion *ar)
/* make sure we have a widgetmap - sucks a bit to do it here, but works for now */
if (!ar->widgetmap) {
- ar->widgetmap = WM_widgetmap_from_type(SPACE_NODE, RGN_TYPE_WINDOW, false);
+ ar->widgetmap = WM_widgetmap_from_type("Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, false);
}
WM_event_add_widget_handler(ar);
@@ -886,13 +886,10 @@ static void WIDGETGROUP_node_transform_update(const struct bContext *C, struct w
static void node_widgets(void)
{
- struct wmWidgetGroupType *wgroup_node_transform;
-
- WM_widgetmaptype_find(SPACE_NODE, RGN_TYPE_WINDOW, false, true);
+ /* create the widgetmap for the area here */
+ WM_widgetmaptype_find("Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, false, true);
- wgroup_node_transform = WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll, WIDGETGROUP_node_transform_update, SPACE_NODE, RGN_TYPE_WINDOW, false);
- /* create the widgetmap here */
- WM_widgetgrouptype_register(NULL, wgroup_node_transform);
+ WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll, WIDGETGROUP_node_transform_update, NULL, "Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, false);
}
/* only called once, from space/spacetypes.c */
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index d62ee51..af9e33f 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -123,7 +123,7 @@ void sequencer_operatortypes(void)
/* sequencer_view.h */
WM_operatortype_append(SEQUENCER_OT_sample);
- WM_operatortype_append(SEQUENCER_OT_backdrop_transform);
+ WM_operatortype_append(SEQUENCER_OT_backdrop_transform);
}
@@ -199,6 +199,8 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
+
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_backdrop_transform", VKEY, KM_PRESS, 0, 0);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, 0, 0);
RNA_boolean_set(kmi->ptr, "next", true);
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c
index 261e261..f6befd5 100644
--- a/source/blender/editors/space_sequencer/sequencer_view.c
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -247,7 +247,7 @@ static int sequencer_backdrop_transform_poll(bContext *C)
SpaceSeq *sseq = CTX_wm_space_seq(C);
ARegion *ar = CTX_wm_region(C);
- return (sseq && ar && ar->type == RGN_TYPE_WINDOW && (sseq->draw_flag & SEQ_DRAW_BACKDROP));
+ return (sseq && ar && ar->type->regionid == RGN_TYPE_WINDOW && (sseq->draw_flag & SEQ_DRAW_BACKDROP));
}
static void widgetgroup_backdrop_draw(const struct bContext *C, struct wmWidgetGroup *wgroup)
@@ -268,7 +268,7 @@ static void widgetgroup_backdrop_draw(const struct bContext *C, struct wmWidgetG
static int sequencer_backdrop_transform_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
{
/* no poll, lives always for the duration of the operator */
- wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, widgetgroup_backdrop_draw, SPACE_SEQ, RGN_TYPE_WINDOW, false);
+ wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, widgetgroup_backdrop_draw, CTX_data_main(C), "Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, false);
WM_event_add_modal_handler(C, op);
WM_event_add_widget_modal_handler(C, cagetype, op);
@@ -294,6 +294,8 @@ static int sequencer_backdrop_transform_modal(bContext *C, wmOperator *op, const
void SEQUENCER_OT_backdrop_transform(struct wmOperatorType *ot)
{
+ float default_offset[2] = {0.0f, 0.0f};
+
/* identifiers */
ot->name = "Change Data/Files";
ot->idname = "SEQUENCER_OT_backdrop_transform";
@@ -305,6 +307,8 @@ void SEQUENCER_OT_backdrop_transform(struct wmOperatorType *ot)
ot->poll = sequencer_backdrop_transform_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_float_array(ot->srna, "offset", 2, default_offset, FLT_MIN, FLT_MAX, "Offset", "Offset of the backdrop", FLT_MIN, FLT_MAX);
}
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 6c15ed8..e2c23a7 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -386,7 +386,7 @@ static SpaceLink *view3d_new(const bContext *C)
BLI_addtail(&v3d->regionbase, ar);
ar->regiontype = RGN_TYPE_WINDOW;
- ar->widgetmap = WM_widgetmap_from_type(SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ ar->widgetmap = WM_widgetmap_from_type("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
ar->regiondata = MEM_callocN(sizeof(RegionView3D), "region view3d");
@@ -556,7 +556,7 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
/* make sure we have a widgetmap - sucks a bit to do it here, but works for now */
if (!ar->widgetmap) {
- ar->widgetmap = WM_widgetmap_from_type(SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ ar->widgetmap = WM_widgetmap_from_type("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
}
WM_event_add_widget_handler(ar);
@@ -780,14 +780,11 @@ static void WIDGETGROUP_shapekey_draw(const struct bContext *C, struct wmWidgetG
static void view3d_widgets(void)
{
- wmWidgetGroupType *wgroup_light,*wgroup_camera, *wgroup_shapekey;
- // struct wmWidgetGroupType *wgroup_manipulator;
-
- WM_widgetmaptype_find(SPACE_VIEW3D, RGN_TYPE_WINDOW, true, true);
+ WM_widgetmaptype_find("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true, true);
- wgroup_light = WM_widgetgrouptype_new(WIDGETGROUP_lamp_poll, WIDGETGROUP_lamp_draw, SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
- wgroup_camera = WM_widgetgrouptype_new(WIDGETGROUP_camera_poll, WIDGETGROUP_camera_draw, SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
- wgroup_shapekey = WM_widgetgrouptype_new(WIDGETGROUP_shapekey_poll, WIDGETGROUP_shapekey_draw, SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ WM_widgetgrouptype_new(WIDGETGROUP_lamp_poll, WIDGETGROUP_lamp_draw, NULL, "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ WM_widgetgrouptype_new(WIDGETGROUP_camera_poll, WIDGETGROUP_camera_draw, NULL, "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ WM_widgetgrouptype_new(WIDGETGROUP_shapekey_poll, WIDGETGROUP_shapekey_draw, NULL, "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
#if 0
wgroup_manipulator = WM_widgetgrouptype_new(
@@ -795,10 +792,6 @@ static void view3d_widgets(void)
WIDGETGROUP_manipulator_update);
#endif
- //WM_widgetgrouptype_register(wmaptype, wgroup_manipulator);
- WM_widgetgrouptype_register(NULL, wgroup_light);
- WM_widgetgrouptype_register(NULL, wgroup_camera);
- WM_widgetgrouptype_register(NULL, wgroup_shapekey);
}
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index 3265890..e1273d1 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1396,7 +1396,6 @@ static void rna_WidgetGroup_unregister(struct Main *bmain, StructRNA *type)
//RNA_struct_free_extension(type, &wgrouptype->ext);
WM_widgetgrouptype_unregister(bmain, wgrouptype);
- MEM_freeN(wgrouptype);
//WM_operatortype_remove_ptr(ot);
/* not to be confused with the RNA_struct_free that WM_operatortype_remove calls, they are 2 different srna's */
@@ -1501,7 +1500,7 @@ static StructRNA *rna_WidgetGroup_register(Main *bmain, ReportList *reports, voi
}
/* check if the area supports widgets */
- if (!WM_widgetmaptype_find(dummywgt.spaceid, dummywgt.regionid, dummywgt.is_3d, false)) {
+ if (!WM_widgetmaptype_find(dummywgt.mapidname ,dummywgt.spaceid, dummywgt.regionid, dummywgt.is_3d, false)) {
BKE_reportf(reports, RPT_ERROR, "Area type does not support widgets");
return NULL;
}
@@ -1528,10 +1527,9 @@ static StructRNA *rna_WidgetGroup_register(Main *bmain, ReportList *reports, voi
dummywgt.poll = (have_function[0]) ? widgetgroup_poll : NULL;
dummywgt.draw = (have_function[1]) ? widgetgroup_draw : NULL;
- wgrouptype = WM_widgetgrouptype_new(NULL, NULL, 0, 0, 0);
+ wgrouptype = WM_widgetgrouptype_new(dummywgt.poll, dummywgt.draw, bmain, dummywgt.mapidname, dummywgt.spaceid, dummywgt.regionid, dummywgt.is_3d);
memcpy(wgrouptype, &dummywgt, sizeof(dummywgt));
- WM_widgetgrouptype_register(bmain, wgrouptype);
/* update while blender is running */
WM_main_add_notifier(NC_SCREEN | NA_EDITED, NULL);
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 33e922e..6ad62c4 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -471,9 +471,6 @@ bool WM_event_is_tablet(const struct wmEvent *event);
/* widget API */
-struct wmWidgetGroupType *WM_widgetgrouptype_new(int (*poll)(const struct bContext *, struct wmWidgetGroupType *),
- void (*draw)(const struct bContext *, struct wmWidgetGroup *), short spaceid, short regionid, bool is_3d);
-
struct wmWidget *WM_widget_new(void (*draw)(struct wmWidget *, const struct bContext *),
void (*render_3d_intersection)(const struct bContext *, struct wmWidget *, int),
int (*intersect)(struct bContext
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list