Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-10-05 06:47:04 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-10-05 06:48:43 +0300
commit1b7b6d906023e5a370b238e416505aa7660df13e (patch)
tree40dcbd97a87518caee658172704b83806137e62f /release/scripts/startup/bl_ui/space_topbar.py
parent1b38effd5f270de0ef6b81fe78af4c63ed256e05 (diff)
Tool System: prepare for showing non 3D view tools
Diffstat (limited to 'release/scripts/startup/bl_ui/space_topbar.py')
-rw-r--r--release/scripts/startup/bl_ui/space_topbar.py219
1 files changed, 111 insertions, 108 deletions
diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py
index 4f1473e419d..8e1551eba0e 100644
--- a/release/scripts/startup/bl_ui/space_topbar.py
+++ b/release/scripts/startup/bl_ui/space_topbar.py
@@ -110,12 +110,13 @@ class TOPBAR_HT_lower_bar(Header):
def draw_left(self, context):
layout = self.layout
- mode = context.mode
# Active Tool
# -----------
from .space_toolsystem_common import ToolSelectPanelHelper
tool = ToolSelectPanelHelper.draw_active_tool_header(context, layout)
+ tool_space_type = 'VIEW_3D' if tool is None else tool.space_type
+ tool_mode = context.mode if tool is None else tool.mode
# Object Mode Options
# -------------------
@@ -124,42 +125,43 @@ class TOPBAR_HT_lower_bar(Header):
# TODO(campbell): editing options should be after active tool options
# (obviously separated for from the users POV)
- draw_fn = getattr(_draw_left_context_mode, mode, None)
+ draw_fn = getattr(getattr(_draw_left_context_mode, tool_space_type, None), tool_mode, None)
if draw_fn is not None:
draw_fn(context, layout, tool)
- # Note: general mode options should be added to 'draw_right'.
- if mode == 'SCULPT':
- if (tool is not None) and tool.has_datablock:
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
- elif mode == 'PAINT_VERTEX':
- if (tool is not None) and tool.has_datablock:
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
- elif mode == 'PAINT_WEIGHT':
- if (tool is not None) and tool.has_datablock:
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
- elif mode == 'PAINT_TEXTURE':
- if (tool is not None) and tool.has_datablock:
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
- elif mode == 'EDIT_ARMATURE':
- pass
- elif mode == 'EDIT_CURVE':
- pass
- elif mode == 'EDIT_MESH':
- pass
- elif mode == 'POSE':
- pass
- elif mode == 'PARTICLE':
- # Disable, only shows "Brush" panel, which is already in the top-bar.
- # if tool.has_datablock:
- # layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
- pass
- elif mode == 'GPENCIL_PAINT':
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".greasepencil_paint", category="")
- elif mode == 'GPENCIL_SCULPT':
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".greasepencil_sculpt", category="")
- elif mode == 'GPENCIL_WEIGHT':
- layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".greasepencil_weight", category="")
+ if tool_space_type == 'VIEW_3D':
+ # Note: general mode options should be added to 'draw_right'.
+ if tool_mode == 'SCULPT':
+ if (tool is not None) and tool.has_datablock:
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
+ elif tool_mode == 'PAINT_VERTEX':
+ if (tool is not None) and tool.has_datablock:
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
+ elif tool_mode == 'PAINT_WEIGHT':
+ if (tool is not None) and tool.has_datablock:
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
+ elif tool_mode == 'PAINT_TEXTURE':
+ if (tool is not None) and tool.has_datablock:
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
+ elif tool_mode == 'EDIT_ARMATURE':
+ pass
+ elif tool_mode == 'EDIT_CURVE':
+ pass
+ elif tool_mode == 'EDIT_MESH':
+ pass
+ elif tool_mode == 'POSE':
+ pass
+ elif tool_mode == 'PARTICLE':
+ # Disable, only shows "Brush" panel, which is already in the top-bar.
+ # if tool.has_datablock:
+ # layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".paint_common", category="")
+ pass
+ elif tool_mode == 'GPENCIL_PAINT':
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".greasepencil_paint", category="")
+ elif tool_mode == 'GPENCIL_SCULPT':
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".greasepencil_sculpt", category="")
+ elif tool_mode == 'GPENCIL_WEIGHT':
+ layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".greasepencil_weight", category="")
def draw_center(self, context):
pass
@@ -230,80 +232,81 @@ class TOPBAR_HT_lower_bar(Header):
class _draw_left_context_mode:
- @staticmethod
- def SCULPT(context, layout, tool):
- if (tool is None) or (not tool.has_datablock):
- return
- brush = context.tool_settings.sculpt.brush
- if brush is None:
- return
-
- from .properties_paint_common import UnifiedPaintPanel
-
- UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
- UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
- layout.prop(brush, "direction", text="", expand=True)
-
- def PAINT_TEXTURE(context, layout, tool):
- if (tool is None) or (not tool.has_datablock):
- return
- brush = context.tool_settings.vertex_paint.brush
- if brush is None:
- return
-
- from .properties_paint_common import UnifiedPaintPanel
-
- layout.prop(brush, "color", text="")
- UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
- UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
-
- def PAINT_VERTEX(context, layout, tool):
- if (tool is None) or (not tool.has_datablock):
- return
- brush = context.tool_settings.vertex_paint.brush
- if brush is None:
- return
-
- from .properties_paint_common import UnifiedPaintPanel
-
- layout.prop(brush, "color", text="")
- UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
- UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
-
- def PAINT_WEIGHT(context, layout, tool):
- if (tool is None) or (not tool.has_datablock):
- return
- brush = context.tool_settings.weight_paint.brush
- if brush is None:
- return
-
- from .properties_paint_common import UnifiedPaintPanel
-
- UnifiedPaintPanel.prop_unified_weight(layout, context, brush, "weight", slider=True, text="Weight")
- UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
- UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
-
- def PARTICLE(context, layout, tool):
- # See: 'VIEW3D_PT_tools_brush', basically a duplicate
- settings = context.tool_settings.particle_edit
- brush = settings.brush
- tool = settings.tool
- if tool != 'NONE':
- layout.prop(brush, "size", slider=True)
- if tool == 'ADD':
- layout.prop(brush, "count")
-
- layout.prop(settings, "use_default_interpolate")
- layout.prop(brush, "steps", slider=True)
- layout.prop(settings, "default_key_count", slider=True)
- else:
- layout.prop(brush, "strength", slider=True)
-
- if tool == 'LENGTH':
- layout.row().prop(brush, "length_mode", expand=True)
- elif tool == 'PUFF':
- layout.row().prop(brush, "puff_mode", expand=True)
- layout.prop(brush, "use_puff_volume")
+ class VIEW_3D:
+ @staticmethod
+ def SCULPT(context, layout, tool):
+ if (tool is None) or (not tool.has_datablock):
+ return
+ brush = context.tool_settings.sculpt.brush
+ if brush is None:
+ return
+
+ from .properties_paint_common import UnifiedPaintPanel
+
+ UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
+ UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
+ layout.prop(brush, "direction", text="", expand=True)
+
+ def PAINT_TEXTURE(context, layout, tool):
+ if (tool is None) or (not tool.has_datablock):
+ return
+ brush = context.tool_settings.vertex_paint.brush
+ if brush is None:
+ return
+
+ from .properties_paint_common import UnifiedPaintPanel
+
+ layout.prop(brush, "color", text="")
+ UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
+ UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
+
+ def PAINT_VERTEX(context, layout, tool):
+ if (tool is None) or (not tool.has_datablock):
+ return
+ brush = context.tool_settings.vertex_paint.brush
+ if brush is None:
+ return
+
+ from .properties_paint_common import UnifiedPaintPanel
+
+ layout.prop(brush, "color", text="")
+ UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
+ UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
+
+ def PAINT_WEIGHT(context, layout, tool):
+ if (tool is None) or (not tool.has_datablock):
+ return
+ brush = context.tool_settings.weight_paint.brush
+ if brush is None:
+ return
+
+ from .properties_paint_common import UnifiedPaintPanel
+
+ UnifiedPaintPanel.prop_unified_weight(layout, context, brush, "weight", slider=True, text="Weight")
+ UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
+ UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
+
+ def PARTICLE(context, layout, tool):
+ # See: 'VIEW3D_PT_tools_brush', basically a duplicate
+ settings = context.tool_settings.particle_edit
+ brush = settings.brush
+ tool = settings.tool
+ if tool != 'NONE':
+ layout.prop(brush, "size", slider=True)
+ if tool == 'ADD':
+ layout.prop(brush, "count")
+
+ layout.prop(settings, "use_default_interpolate")
+ layout.prop(brush, "steps", slider=True)
+ layout.prop(settings, "default_key_count", slider=True)
+ else:
+ layout.prop(brush, "strength", slider=True)
+
+ if tool == 'LENGTH':
+ layout.row().prop(brush, "length_mode", expand=True)
+ elif tool == 'PUFF':
+ layout.row().prop(brush, "puff_mode", expand=True)
+ layout.prop(brush, "use_puff_volume")
class TOPBAR_PT_gpencil_layers(Panel):