[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