Start implementing "tool-panel" keymap scheme

Tool panels will be mapped to ctrl-# bindings. If the panel is focused, the # binding closes it. Otherwise the # binding shows it (if needed) and focuses it. The esc key unfocuses the panel, but does not necessarily close it. Meta-w always closes the panel.

This is the scheme. Right now we only have 2 panels:

Command Panel: Ctrl-0, esc still hides it
Tree View: Ctrl-1, esc just unfocuses it
This commit is contained in:
Nathan Sobo
2012-07-20 17:56:36 -06:00
parent ac04a8ed66
commit e8a892ee3e
6 changed files with 47 additions and 13 deletions

View File

@@ -1,8 +1,11 @@
window.keymap.bindKeys '#root-view'
'alt-tab': 'tree-view:focus'
'ctrl-1': 'tree-view:toggle'
'ctrl-T': 'tree-view:toggle'
'alt-tab': 'tree-view:focus'
window.keymap.bindKeys '.tree-view'
'escape': 'tree-view:unfocus'
'meta-w': 'tree-view:toggle'
'right': 'tree-view:expand-directory'
'left': 'tree-view:collapse-directory'
'enter': 'tree-view:open-selected-entry'

View File

@@ -49,6 +49,7 @@ class TreeView extends View
@on 'tree-view:add', => @add()
@on 'tree-view:remove', => @removeSelectedEntry()
@on 'tree-view:directory-modified', => @selectActiveFile()
@on 'tree-view:unfocus', => @rootView.focus()
@rootView.on 'tree-view:toggle', => @toggle()
@rootView.on 'active-editor-path-change', => @selectActiveFile()
@rootView.project.on 'path-change', => @updateRoot()
@@ -71,11 +72,11 @@ class TreeView extends View
@root?.unwatchEntries()
toggle: ->
if @hasParent()
if @is(':focus')
@detach()
@rootView.focus()
else
@attach()
@attach() unless @hasParent()
@focus()
attach: ->