[Bf-blender-cvs] [a8bdb72] wiggly-widgets: Adjustments to widget registration
Campbell Barton
noreply at git.blender.org
Tue Jan 5 16:06:34 CET 2016
Commit: a8bdb7239f59c7e19424bb96defc4c59bd029930
Author: Campbell Barton
Date: Wed Jan 6 01:56:37 2016 +1100
Branches: wiggly-widgets
https://developer.blender.org/rBa8bdb7239f59c7e19424bb96defc4c59bd029930
Adjustments to widget registration
- use wmWidgetMapType_Params struct instead of passing around same args (not always in same order).
- split WM_widgetgrouptype_find create behavior into WM_widgetgrouptype_ensure
- rename WM_widgetgrouptype_new to WM_widgetgrouptype_register
(since it has an unregister argument)
- add WM_widgetgrouptype_register_ptr argument, which doesn't need to perform a search.
===================================================================
M source/blender/editors/object/object_edit.c
M source/blender/editors/space_graph/graph_edit.c
M source/blender/editors/space_graph/space_graph.c
M source/blender/editors/space_node/space_node.c
M source/blender/editors/space_sequencer/sequencer_view.c
M source/blender/editors/space_sequencer/space_sequencer.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
M source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index cda23fc..77b993f 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -2137,11 +2137,13 @@ void OBJECT_OT_game_physics_copy(struct wmOperatorType *ot)
static int object_widget_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = ED_object_active_context((bContext *)C);
- wmWidgetGroupType *wgrouptype = WM_widgetgrouptype_new(WIDGETGROUP_object_manipulator_poll,
- WIDGETGROUP_object_manipulator_create,
- WM_widgetgroup_keymap_common,
- CTX_data_main(C), "View3D", "Object Widgets",
- SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ wmWidgetGroupType *wgrouptype = WM_widgetgrouptype_register(
+ CTX_data_main(C),
+ &(const struct wmWidgetMapType_Params) {"View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, WM_WIDGET_TYPE_3D},
+ WIDGETGROUP_object_manipulator_poll,
+ WIDGETGROUP_object_manipulator_create,
+ WM_widgetgroup_keymap_common,
+ "Object Widgets");
/* assign the objects id name to the widget */
strcpy(wgrouptype->idname, ob->id.name);
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index de258f2..797131d 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -2634,10 +2634,12 @@ static int graph_widget_backdrop_transform_invoke(bContext *C, wmOperator *op, c
ScrArea *sa = CTX_wm_area(C);
SpaceIpo *sipo = CTX_wm_space_graph(C);
/* no poll, lives always for the duration of the operator */
- wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, widgetgroup_backdrop_create,
- WM_widgetgroup_keymap_common, CTX_data_main(C),
- "Graph_Canvas", "Backdrop Transform Widgets",
- SPACE_IPO, RGN_TYPE_WINDOW, false);
+ wmWidgetGroupType *cagetype = WM_widgetgrouptype_register(
+ CTX_data_main(C),
+ &(const struct wmWidgetMapType_Params) {"Graph_Canvas", SPACE_IPO, RGN_TYPE_WINDOW, 0},
+ NULL, widgetgroup_backdrop_create,
+ WM_widgetgroup_keymap_common,
+ "Backdrop Transform Widgets");
struct wmEventHandler *handler = WM_event_add_modal_handler(C, op);
BackDropTransformData *data = MEM_mallocN(sizeof(BackDropTransformData), "overdrop transform data");
WM_modal_handler_attach_widgetgroup(C, handler, cagetype, op);
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index b15c1b8..ebe31fc 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -226,7 +226,9 @@ static void graph_main_region_init(wmWindowManager *wm, ARegion *ar)
/* widgets */
if (BLI_listbase_is_empty(&ar->widgetmaps)) {
- BLI_addhead(&ar->widgetmaps, WM_widgetmap_from_type("Graph_Canvas", SPACE_IPO, RGN_TYPE_WINDOW, false));
+ wmWidgetMap *wmap = WM_widgetmap_from_type(&(const struct wmWidgetMapType_Params) {
+ "Graph_Canvas", SPACE_IPO, RGN_TYPE_WINDOW, 0});
+ BLI_addhead(&ar->widgetmaps, wmap);
}
}
@@ -673,7 +675,8 @@ static void graph_refresh(const bContext *C, ScrArea *sa)
static void graph_widgets(void)
{
/* create the widgetmap for the area here */
- WM_widgetmaptype_find("Graph_Canvas", SPACE_IPO, RGN_TYPE_WINDOW, false, true);
+ WM_widgetmaptype_ensure(&(const struct wmWidgetMapType_Params) {
+ "Graph_Canvas", SPACE_IPO, RGN_TYPE_WINDOW, 0});
}
/* only called once, from space/spacetypes.c */
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 7946030..13d865c 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -649,7 +649,9 @@ static void node_main_region_init(wmWindowManager *wm, ARegion *ar)
/* widgets stay in the background for now - quick patchjob to make sure nodes themselves work */
if (BLI_listbase_is_empty(&ar->widgetmaps)) {
- BLI_addhead(&ar->widgetmaps, WM_widgetmap_from_type("Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, false));
+ wmWidgetMap *wmap = WM_widgetmap_from_type(&(const struct wmWidgetMapType_Params) {
+ "Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, 0});
+ BLI_addhead(&ar->widgetmaps, wmap);
}
WM_event_add_area_widgetmap_handlers(ar);
@@ -886,13 +888,15 @@ static void WIDGETGROUP_node_transform_create(const struct bContext *C, struct w
static void node_widgets(void)
{
/* create the widgetmap for the area here */
- WM_widgetmaptype_find("Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, false, true);
+ wmWidgetMapType *wmaptype = WM_widgetmaptype_ensure(&(const struct wmWidgetMapType_Params) {
+ "Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, 0});
- WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll,
- WIDGETGROUP_node_transform_create,
- WM_widgetgroup_keymap_common,
- NULL, "Node_Canvas", "Backdrop Transform Widgets",
- SPACE_NODE, RGN_TYPE_WINDOW, false);
+ WM_widgetgrouptype_register_ptr(
+ NULL, wmaptype,
+ WIDGETGROUP_node_transform_poll,
+ WIDGETGROUP_node_transform_create,
+ WM_widgetgroup_keymap_common,
+ "Backdrop Transform Widgets");
}
/* only called once, from space/spacetypes.c */
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c
index 000dddc..44857a1 100644
--- a/source/blender/editors/space_sequencer/sequencer_view.c
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -293,10 +293,12 @@ static int sequencer_overdrop_transform_invoke(bContext *C, wmOperator *op, cons
ScrArea *sa = CTX_wm_area(C);
SpaceSeq *sseq = CTX_wm_space_seq(C);
/* no poll, lives always for the duration of the operator */
- wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, widgetgroup_overdrop_create,
- WM_widgetgroup_keymap_common, CTX_data_main(C),
- "Seq_Canvas", "Backdrop Transform Widgets",
- SPACE_SEQ, RGN_TYPE_WINDOW, false);
+ wmWidgetGroupType *cagetype = WM_widgetgrouptype_register(
+ CTX_data_main(C),
+ &(const struct wmWidgetMapType_Params) {"Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, 0},
+ NULL, widgetgroup_overdrop_create,
+ WM_widgetgroup_keymap_common,
+ "Backdrop Transform Widgets");
struct wmEventHandler *handler = WM_event_add_modal_handler(C, op);
OverDropTransformData *data = MEM_mallocN(sizeof(OverDropTransformData), "overdrop transform data");
WM_modal_handler_attach_widgetgroup(C, handler, cagetype, op);
@@ -459,10 +461,12 @@ static int sequencer_image_transform_widget_invoke(bContext *C, wmOperator *op,
SpaceSeq *sseq = CTX_wm_space_seq(C);
Scene *scene = CTX_data_scene(C);
/* no poll, lives always for the duration of the operator */
- wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, widgetgroup_image_transform_create,
- WM_widgetgroup_keymap_common, CTX_data_main(C),
- "Seq_Canvas", "Image Transform Widgets",
- SPACE_SEQ, RGN_TYPE_PREVIEW, false);
+ wmWidgetGroupType *cagetype = WM_widgetgrouptype_register(
+ CTX_data_main(C),
+ &(const struct wmWidgetMapType_Params) {"Seq_Canvas", SPACE_SEQ, RGN_TYPE_PREVIEW, 0},
+ NULL, widgetgroup_image_transform_create,
+ WM_widgetgroup_keymap_common,
+ "Image Transform Widgets");
struct wmEventHandler *handler = WM_event_add_modal_handler(C, op);
ImageTransformData *data = MEM_mallocN(sizeof(ImageTransformData), "overdrop transform data");
ImBuf *ibuf = sequencer_ibuf_get(CTX_data_main(C), scene, sseq, CFRA, 0, NULL);
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 97f38ac..6dcb0ec 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -486,7 +486,9 @@ static void sequencer_main_region_init(wmWindowManager *wm, ARegion *ar)
/* no modal keymap here, only operators use this currently */
if (BLI_listbase_is_empty(&ar->widgetmaps)) {
- BLI_addhead(&ar->widgetmaps, WM_widgetmap_from_type("Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, false));
+ wmWidgetMap *wmap = WM_widgetmap_from_type(&(const struct wmWidgetMapType_Params) {
+ "Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, 0});
+ BLI_addhead(&ar->widgetmaps, wmap);
}
}
@@ -566,7 +568,9 @@ static void sequencer_preview_region_init(wmWindowManager *wm, ARegion *ar)
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
if (BLI_listbase_is_empty(&ar->widgetmaps)) {
- BLI_addhead(&ar->widgetmaps, WM_widgetmap_from_type("Seq_Canvas", SPACE_SEQ, RGN_TYPE_PREVIEW, false));
+ wmWidgetMap *wmap = WM_widgetmap_from_type(&(const struct wmWidgetMapType_Params) {
+ "Seq_Canvas", SPACE_SEQ, RGN_TYPE_PREVIEW, 0});
+ BLI_addhead(&ar->widgetmaps, wmap);
}
}
@@ -708,9 +712,10 @@ static void sequencer_buttons_region_listener(bScreen *UNUSED(sc), ScrArea *UNUS
static void sequencer_widgets(void)
{
/* create the widgetmap for the area here */
- WM_widgetmaptype_find("Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, false, true);
-
- WM_widgetmaptype_find("Seq_Canvas", SPACE_SEQ, RGN_TYPE_PREVIEW, false, true);
+ WM_widgetmaptype_ensure(&(const struct wmWidgetMapType_Params) {
+ "Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, 0});
+ WM
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list