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-05-20 23:37:35 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-05-20 23:39:19 +0300
commit768a1528833e014606e71ee18a2a34f412662886 (patch)
treeea814bac6b83212d5a430012c1cadadf1ae1fde9 /release
parente7895bac07f32d4f66184aff2ed2c08956daaac7 (diff)
UI: proof of concept keymap for the popup toolbar
Diffstat (limited to 'release')
-rw-r--r--release/scripts/startup/bl_operators/wm.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index c4b04e63e3f..9320145369c 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -2360,6 +2360,8 @@ class WM_OT_toolbar(Operator):
bl_idname = "wm.toolbar"
bl_label = "Toolbar"
+ keymap = None
+
def execute(self, context):
space_type = context.space_data.type
from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
@@ -2368,12 +2370,30 @@ class WM_OT_toolbar(Operator):
self.report({'WARNING'}, f"Toolbar not found for {space_type!r}")
return {'CANCELLED'}
+ wm = context.window_manager
+
+ if WM_OT_toolbar.keymap is None:
+ keyconf = wm.keyconfigs.active
+ km = keyconf.keymaps.new("Toolbar Popup", space_type='EMPTY', region_type='TEMPORARY')
+ WM_OT_toolbar.keymap = km
+
+ # Example
+ for key, value in (
+ ('G', "Move"),
+ ('R', "Rotate"),
+ ('S', "Scale"),
+ ('C', "Select Circle"),
+ ('B', "Select Border"),
+ ):
+ kmi = km.keymap_items.new("wm.tool_set_by_name", key, 'PRESS')
+ kmi.properties.name = value
+
def draw_menu(popover, context):
- cls.draw_cls(popover.layout, context, detect_layout=False)
+ layout = popover.layout
+ cls.draw_cls(layout, context, detect_layout=False)
- wm = context.window_manager
# wm.popup_menu(draw_menu) # this also works
- wm.popover(draw_menu)
+ wm.popover(draw_menu, keymap=WM_OT_toolbar.keymap)
return {'FINISHED'}