diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-04 22:57:01 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-04 23:12:57 +0300 |
commit | 2f8a45e3140a4984bd18eadb2dc4850919d27bd4 (patch) | |
tree | c3f4f787fd581b8229258e4be34728acefdca042 /release | |
parent | 5195f03ca129a417524280278e87257dc8188646 (diff) |
Tool System: support passing in args to ToolDef functions
Needed since class aren't yet defined
so we can't access their namespace.
This avoids intermediate draw functions.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_toolsystem_common.py | 10 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_toolsystem_toolbar.py | 121 |
2 files changed, 51 insertions, 80 deletions
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py index 98bd0e3531a..79da1ee786e 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_common.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py @@ -143,10 +143,16 @@ def from_fn(fn): return ToolDef.from_dict(fn()) +def with_args(*args): + def from_fn(fn): + return ToolDef.from_dict(fn(*args)) + return from_fn + + +from_fn.with_args = with_args ToolDef.from_dict = from_dict ToolDef.from_fn = from_fn -del from_dict -del from_fn +del from_dict, from_fn, with_args class ToolSelectPanelHelper: diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index ed59d6f3d36..58e0d174e66 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -171,7 +171,7 @@ class _defs_view3d_generic: def _defs_annotate_factory(): class _defs_annotate: - @staticmethod + def draw_settings_common(context, layout, tool): if type(context.gpencil_data_owner) is bpy.types.Object: gpd = context.scene.grease_pencil @@ -211,10 +211,8 @@ def _defs_annotate_factory(): elif tool_settings.gpencil_stroke_placement_view3d in {'SURFACE', 'STROKE'}: row.prop(tool_settings, "use_gpencil_stroke_endpoints") - @ToolDef.from_fn - def scribble(): - def draw_settings(context, layout, tool): - _defs_annotate.draw_settings_common(context, layout, tool) + @ToolDef.from_fn.with_args(draw_settings_common) + def scribble(draw_settings_common): return dict( text="Annotate", icon="ops.gpencil.draw", @@ -224,13 +222,11 @@ def _defs_annotate_factory(): dict(mode='DRAW', wait_for_input=False), dict(type='ACTIONMOUSE', value='PRESS')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def line(): - def draw_settings(context, layout, tool): - _defs_annotate.draw_settings_common(context, layout, tool) + @ToolDef.from_fn.with_args(draw_settings_common) + def line(draw_settings_common): return dict( text="Annotate Line", icon="ops.gpencil.draw.line", @@ -240,13 +236,11 @@ def _defs_annotate_factory(): dict(mode='DRAW_STRAIGHT', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def poly(): - def draw_settings(context, layout, tool): - _defs_annotate.draw_settings_common(context, layout, tool) + @ToolDef.from_fn.with_args(draw_settings_common) + def poly(draw_settings_common): return dict( text="Annotate Polygon", icon="ops.gpencil.draw.poly", @@ -256,7 +250,7 @@ def _defs_annotate_factory(): dict(mode='DRAW_POLY', wait_for_input=False), dict(type='ACTIONMOUSE', value='PRESS')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) @ToolDef.from_fn @@ -276,6 +270,7 @@ def _defs_annotate_factory(): ), draw_settings=draw_settings, ) + return _defs_annotate @@ -1401,7 +1396,7 @@ class _defs_gpencil_edit: class _defs_gpencil_sculpt: - @staticmethod + def draw_settings_common(context, layout, tool): ob = context.active_object if ob and ob.mode == 'GPENCIL_SCULPT': @@ -1420,11 +1415,8 @@ class _defs_gpencil_sculpt: row.separator() row.prop(brush, "direction", expand=True, text="") - @ToolDef.from_fn - def smooth(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def smooth(draw_settings_common): return dict( text="Smooth", icon="ops.gpencil.sculpt_smooth", @@ -1434,14 +1426,11 @@ class _defs_gpencil_sculpt: dict(mode='SMOOTH', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def thickness(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def thickness(draw_settings_common): return dict( text="Thickness", icon="ops.gpencil.sculpt_thickness", @@ -1451,14 +1440,11 @@ class _defs_gpencil_sculpt: dict(mode='THICKNESS', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def strength(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def strength(draw_settings_common): return dict( text="Strength", icon="ops.gpencil.sculpt_strength", @@ -1468,14 +1454,11 @@ class _defs_gpencil_sculpt: dict(mode='STRENGTH', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def grab(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def grab(draw_settings_common): return dict( text="Grab", icon="ops.gpencil.sculpt_grab", @@ -1485,14 +1468,11 @@ class _defs_gpencil_sculpt: dict(mode='GRAB', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def push(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def push(draw_settings_common): return dict( text="Push", icon="ops.gpencil.sculpt_push", @@ -1502,14 +1482,11 @@ class _defs_gpencil_sculpt: dict(mode='PUSH', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def twist(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def twist(draw_settings_common): return dict( text="Twist", icon="ops.gpencil.sculpt_twist", @@ -1519,14 +1496,11 @@ class _defs_gpencil_sculpt: dict(mode='TWIST', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def pinch(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def pinch(draw_settings_common): return dict( text="Pinch", icon="ops.gpencil.sculpt_pinch", @@ -1536,14 +1510,11 @@ class _defs_gpencil_sculpt: dict(mode='PINCH', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def randomize(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def randomize(draw_settings_common): return dict( text="Randomize", icon="ops.gpencil.sculpt_randomize", @@ -1553,14 +1524,11 @@ class _defs_gpencil_sculpt: dict(mode='RANDOMIZE', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) - @ToolDef.from_fn - def clone(): - def draw_settings(context, layout, tool): - _defs_gpencil_sculpt.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def clone(draw_settings_common): return dict( text="Clone", icon="ops.gpencil.sculpt_clone", @@ -1570,12 +1538,12 @@ class _defs_gpencil_sculpt: dict(mode='CLONE', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) class _defs_gpencil_weight: - @staticmethod + def draw_settings_common(context, layout, tool): ob = context.active_object if ob and ob.mode == 'GPENCIL_WEIGHT': @@ -1588,11 +1556,8 @@ class _defs_gpencil_weight: row.prop(brush, "strength", slider=True) row.prop(brush, "use_pressure_strength", text="") - @ToolDef.from_fn - def paint(): - def draw_settings(context, layout, tool): - _defs_gpencil_weight.draw_settings_common(context, layout, tool) - + @ToolDef.from_fn.with_args(draw_settings_common) + def paint(draw_settings_common): return dict( text="Draw", icon="ops.gpencil.sculpt_weight", @@ -1602,7 +1567,7 @@ class _defs_gpencil_weight: dict(mode='WEIGHT', wait_for_input=False), dict(type='EVT_TWEAK_A', value='ANY')), ), - draw_settings=draw_settings, + draw_settings=draw_settings_common, ) |