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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to