mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Display keybindings in EventPalette. Style a bit.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
SelectList = require 'select-list'
|
||||
Editor = require 'editor'
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
|
||||
module.exports =
|
||||
class EventPalette extends SelectList
|
||||
@@ -15,25 +16,36 @@ class EventPalette extends SelectList
|
||||
|
||||
filterKey: 'eventDescription'
|
||||
|
||||
previouslyFocusedElement: null
|
||||
keyBindings: null
|
||||
|
||||
initialize: (@rootView) ->
|
||||
@on 'event-palette:toggle', => @cancel()
|
||||
super
|
||||
|
||||
attach: ->
|
||||
@previouslyFocusedElement = $(':focus')
|
||||
@keyBindings = _.losslessInvert(keymap.bindingsForElement(@previouslyFocusedElement))
|
||||
|
||||
events = []
|
||||
for eventName, eventDescription of @previouslyFocusedElement.events()
|
||||
events.push({eventName, eventDescription}) if eventDescription
|
||||
|
||||
events = _.sortBy events, (e) -> e.eventDescription
|
||||
|
||||
@setArray(events)
|
||||
@appendTo(@rootView)
|
||||
@miniEditor.setText('')
|
||||
@miniEditor.focus()
|
||||
|
||||
itemForElement: ({eventName, eventDescription}) ->
|
||||
keyBindings = @keyBindings
|
||||
$$ ->
|
||||
@li class: 'event', 'data-event-name': eventName, =>
|
||||
@div eventDescription, class: 'event-description'
|
||||
@div eventName, class: 'event-name'
|
||||
for binding in keyBindings[eventName] ? []
|
||||
@div binding, class: 'key-binding'
|
||||
@div class: 'clear-float'
|
||||
|
||||
confirmed: ({eventName}) ->
|
||||
|
||||
@@ -7,12 +7,28 @@
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.event-palette ol li {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.event-palette ol .event-description {
|
||||
float: left;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.event-palette ol .event-name {
|
||||
.event-palette ol .event-name, .event-palette ol .key-binding {
|
||||
float: right;
|
||||
display: inline-block;
|
||||
margin-right: .5em;
|
||||
color: #ddd;
|
||||
-webkit-border-radius: 3px;
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.event-palette ol .event-name {
|
||||
background: rgba(0, 0, 0, .2);
|
||||
}
|
||||
|
||||
.event-palette ol .key-binding {
|
||||
background: rgba(255, 255, 255, .1);
|
||||
}
|
||||
Reference in New Issue
Block a user