[Bf-blender-cvs] [ebcde286d84] custom-manipulators: Expose wmManipulatorGroup.bl_options

Campbell Barton noreply at git.blender.org
Thu Jun 8 21:23:19 CEST 2017


Commit: ebcde286d84bef94178eb917a2ae20a8f72dce03
Author: Campbell Barton
Date:   Fri Jun 9 05:24:42 2017 +1000
Branches: custom-manipulators
https://developer.blender.org/rBebcde286d84bef94178eb917a2ae20a8f72dce03

Expose wmManipulatorGroup.bl_options

===================================================================

M	source/blender/editors/space_view3d/view3d_manipulators.c
M	source/blender/editors/transform/transform_manipulator.c
M	source/blender/makesrna/intern/rna_wm_manipulator.c
M	source/blender/windowmanager/manipulators/WM_manipulator_types.h
M	source/blender/windowmanager/manipulators/intern/wm_manipulator.c
M	source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
M	source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_manipulators.c b/source/blender/editors/space_view3d/view3d_manipulators.c
index ece9a1642e1..3804f07ed4c 100644
--- a/source/blender/editors/space_view3d/view3d_manipulators.c
+++ b/source/blender/editors/space_view3d/view3d_manipulators.c
@@ -116,7 +116,7 @@ void VIEW3D_WGT_lamp(wmManipulatorGroupType *wgt)
 	wgt->setup = WIDGETGROUP_lamp_setup;
 	wgt->refresh = WIDGETGROUP_lamp_refresh;
 
-	wgt->flag |= (WM_MANIPULATORGROUPTYPE_IS_3D | WM_MANIPULATORGROUPTYPE_SCALE_3D);
+	wgt->flag |= (WM_MANIPULATORGROUPTYPE_3D | WM_MANIPULATORGROUPTYPE_SCALE_3D);
 }
 
 /** \} */
@@ -288,7 +288,7 @@ void VIEW3D_WGT_camera(wmManipulatorGroupType *wgt)
 	wgt->setup = WIDGETGROUP_camera_setup;
 	wgt->refresh = WIDGETGROUP_camera_refresh;
 
-	wgt->flag |= WM_MANIPULATORGROUPTYPE_IS_3D;
+	wgt->flag |= WM_MANIPULATORGROUPTYPE_3D;
 }
 
 /** \} */
@@ -356,7 +356,7 @@ void VIEW3D_WGT_force_field(wmManipulatorGroupType *wgt)
 	wgt->setup = WIDGETGROUP_forcefield_init;
 	wgt->refresh = WIDGETGROUP_forcefield_refresh;
 
-	wgt->flag |= WM_MANIPULATORGROUPTYPE_IS_3D;
+	wgt->flag |= WM_MANIPULATORGROUPTYPE_3D;
 }
 
 /** \} */
@@ -559,9 +559,9 @@ void VIEW3D_WGT_armature_facemaps(wmManipulatorGroupType *wgt)
 
 	wgt->setup_keymap = WM_manipulatorgroup_keymap_common_sel;
 
-	wgt->flag |= (WM_MANIPULATORGROUPTYPE_IS_3D |
+	wgt->flag |= (WM_MANIPULATORGROUPTYPE_3D |
 	              WM_MANIPULATORGROUPTYPE_SCALE_3D |
-	              WM_MANIPULATORGROUPTYPE_SELECTABLE);
+	              WM_MANIPULATORGROUPTYPE_SELECT);
 }
 
 /** \} */
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index d068a31e952..91dbf30acc2 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1350,7 +1350,7 @@ void TRANSFORM_WGT_manipulator(wmManipulatorGroupType *wgt)
 	wgt->refresh = WIDGETGROUP_manipulator_refresh;
 	wgt->draw_prepare = WIDGETGROUP_manipulator_draw_prepare;
 
-	wgt->flag |= (WM_MANIPULATORGROUPTYPE_IS_3D | WM_MANIPULATORGROUPTYPE_SCALE_3D);
+	wgt->flag |= (WM_MANIPULATORGROUPTYPE_3D | WM_MANIPULATORGROUPTYPE_SCALE_3D);
 }
 
 
@@ -1390,6 +1390,6 @@ void TRANSFORM_WGT_object(wmManipulatorGroupType *wgt)
 	wgt->refresh = WIDGETGROUP_manipulator_refresh;
 	wgt->draw_prepare = WIDGETGROUP_manipulator_draw_prepare;
 
-	wgt->flag |= (WM_MANIPULATORGROUPTYPE_IS_3D | WM_MANIPULATORGROUPTYPE_SCALE_3D);
+	wgt->flag |= (WM_MANIPULATORGROUPTYPE_3D | WM_MANIPULATORGROUPTYPE_SCALE_3D);
 }
 #endif
diff --git a/source/blender/makesrna/intern/rna_wm_manipulator.c b/source/blender/makesrna/intern/rna_wm_manipulator.c
index 75b408a01d2..f2cab031504 100644
--- a/source/blender/makesrna/intern/rna_wm_manipulator.c
+++ b/source/blender/makesrna/intern/rna_wm_manipulator.c
@@ -581,8 +581,6 @@ static StructRNA *rna_ManipulatorGroup_register(
 	dummywgt.poll = (have_function[0]) ? manipulatorgroup_poll : NULL;
 	dummywgt.setup_keymap = (have_function[1]) ? manipulatorgroup_setup_keymap : NULL;
 	dummywgt.setup = (have_function[2]) ? manipulatorgroup_setup : NULL;
-	/* XXX, expose */
-	dummywgt.flag = WM_MANIPULATORGROUPTYPE_IS_3D;
 
 	WM_manipulatorgrouptype_append_ptr(wmaptype, manipulatorgroup_wrapper, (void *)&dummywgt);
 
@@ -704,7 +702,6 @@ static void rna_def_manipulator(BlenderRNA *brna, PropertyRNA *cprop)
 
 	RNA_define_verify_sdna(1); /* not in sdna */
 
-
 	/* wmManipulator.draw */
 	func = RNA_def_function(srna, "draw", NULL);
 	RNA_def_function_ui_description(func, "");
@@ -747,8 +744,6 @@ static void rna_def_manipulator(BlenderRNA *brna, PropertyRNA *cprop)
 	RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL);
 	parm = RNA_def_pointer(func, "context", "Context", "", "");
 	RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
-	parm = RNA_def_pointer(func, "manipulator", "Manipulator", "", "");
-	RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 	parm = RNA_def_pointer(func, "event", "Event", "", "");
 	RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 	/* TODO, shuold be a enum-flag */
@@ -870,15 +865,27 @@ static void rna_def_manipulatorgroup(BlenderRNA *brna)
 	RNA_def_property_flag(prop, PROP_REGISTER);
 	RNA_def_property_ui_text(prop, "Region Type", "The region where the panel is going to be used in");
 
-#if 0
+	/* bl_options */
+	static EnumPropertyItem manipulatorgroup_flag_items[] = {
+		{WM_MANIPULATORGROUPTYPE_3D, "3D", 0, "3D",
+		 "Use in 3D viewport"},
+		{WM_MANIPULATORGROUPTYPE_SCALE_3D, "SCALE_3D", 0, "Scale 3D",
+		 "Scale manipulators as 3D object that respects zoom (otherwise zoom independent draw size)"},
+		{WM_MANIPULATORGROUPTYPE_DEPTH_3D, "DEPTH_3D", 0, "Depth 3D",
+		 "Supports culled depth by other objects in the view"},
+		{WM_MANIPULATORGROUPTYPE_SELECT, "SELECT", 0, "Select",
+		 "Supports selection"},
+		{WM_MANIPULATORGROUPTYPE_OP, "OPERATOR", 0, "Operator",
+		 "Attached to operator, and is only accessible as long as this runs"},
+		{0, NULL, 0, NULL, NULL}
+	};
 	prop = RNA_def_property(srna, "bl_options", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_sdna(prop, NULL, "type->flag");
-	RNA_def_property_enum_items(prop, manipulator_flag_items);
+	RNA_def_property_enum_items(prop, manipulatorgroup_flag_items);
 	RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL | PROP_ENUM_FLAG);
-	RNA_def_property_ui_text(prop, "Options",  "Options for this manipulator type");
-#endif
+	RNA_def_property_ui_text(prop, "Options",  "Options for this operator type");
 
-	/* Registration */
+	/* Functions */
 
 	/* poll */
 	func = RNA_def_function(srna, "poll", NULL);
diff --git a/source/blender/windowmanager/manipulators/WM_manipulator_types.h b/source/blender/windowmanager/manipulators/WM_manipulator_types.h
index 3d05479495f..06046ee5e2c 100644
--- a/source/blender/windowmanager/manipulators/WM_manipulator_types.h
+++ b/source/blender/windowmanager/manipulators/WM_manipulator_types.h
@@ -227,13 +227,13 @@ typedef struct wmManipulatorGroupType {
  */
 enum {
 	/* Mark manipulator-group as being 3D */
-	WM_MANIPULATORGROUPTYPE_IS_3D       = (1 << 0),
+	WM_MANIPULATORGROUPTYPE_3D       = (1 << 0),
 	/* Scale manipulators as 3D object that respects zoom (otherwise zoom independent draw size) */
 	WM_MANIPULATORGROUPTYPE_SCALE_3D    = (1 << 1),
 	/* Manipulators can be depth culled with scene objects (covered by other geometry - TODO) */
-	WM_MANIPULATORGROUPTYPE_SCENE_DEPTH = (1 << 2),
+	WM_MANIPULATORGROUPTYPE_DEPTH_3D = (1 << 2),
 	/* Manipulators can be selected */
-	WM_MANIPULATORGROUPTYPE_SELECTABLE  = (1 << 3),
+	WM_MANIPULATORGROUPTYPE_SELECT  = (1 << 3),
 	/* manipulator group is attached to operator, and is only accessible as long as this runs */
 	WM_MANIPULATORGROUPTYPE_OP          = (1 << 4),
 };
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator.c b/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
index 44e09c2ec05..a1a103febb0 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
@@ -462,7 +462,7 @@ void WM_manipulator_set_fn_cursor_get(struct wmManipulator *mpr, wmManipulatorFn
 }
 void WM_manipulator_set_fn_select(wmManipulator *mpr, wmManipulatorFnSelect fn)
 {
-	BLI_assert(mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_SELECTABLE);
+	BLI_assert(mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_SELECT);
 	mpr->type->select = fn;
 }
 #endif
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
index af8fb36d90c..d8d3669bceb 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
@@ -177,8 +177,8 @@ void wm_manipulatorgroup_intersectable_manipulators_to_list(const wmManipulatorG
 {
 	for (wmManipulator *manipulator = mgroup->manipulators.first; manipulator; manipulator = manipulator->next) {
 		if ((manipulator->flag & WM_MANIPULATOR_HIDDEN) == 0) {
-			if (((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) && manipulator->type->draw_select) ||
-			    ((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) == 0 && manipulator->type->intersect))
+			if (((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) && manipulator->type->draw_select) ||
+			    ((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) == 0 && manipulator->type->intersect))
 			{
 				BLI_addhead(listbase, BLI_genericNodeN(manipulator));
 			}
@@ -215,11 +215,11 @@ bool wm_manipulatorgroup_is_visible_in_drawstep(const wmManipulatorGroup *mgroup
 {
 	switch (drawstep) {
 		case WM_MANIPULATORMAP_DRAWSTEP_2D:
-			return (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) == 0;
+			return (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) == 0;
 		case WM_MANIPULATORMAP_DRAWSTEP_3D:
-			return (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D);
+			return (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D);
 		case WM_MANIPULATORMAP_DRAWSTEP_IN_SCENE:
-			return (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_SCENE_DEPTH);
+			return (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_DEPTH_3D);
 		default:
 			BLI_assert(0);
 			return false;
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
index 172ed5aabb9..c75ae6ce377 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
@@ -370,7 +370,7 @@ wmManipulator *wm_manipulatormap_find_highlighted_manipulator(
 
 	for (wmManipulatorGroup *mgroup = mmap->manipulator_groups.first; mgroup; mgroup = mgroup->next) {
 		if (wm_manipulatorgroup_is_visible(mgroup, C)) {
-			if (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) {
+			if (mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) {
 				wm_manipulatorgroup_intersectable_manipulators_to_list(mgroup, &visible_3d_manipulators);
 			}
 			else if ((manipulator = wm_manipulatorgroup_find_intersected_mainpulator(mgr

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list