Functions for mapping key strokes to actions.
Functions for mapping key strokes to actions.
(map-key target key act-or-id & {:keys [scope id] :as opts})
Install a key mapping on a widget.
Key mappings are hopelessly entwined with keyboard focus and the widget hierarchy. When a key is pressed in a widget with focus, each widget up the hierarchy gets a chance to handle it. There three 'scopes' with which a mapping may be registered:
:self
The mapping only handles key presses when the widget itself has
the keyboard focus. Use this, for example, to install custom
key mappings in a text box.
:descendants
The mapping handles key presses when the widget itself or any
of its descendants has keyboard focus.
:global
The mapping handles key presses as long as the top-level window
containing the widget is active. This is what's used for menu
shortcuts and should be used for other app-wide mappings.
Given this, each mapping is installed on a particular widget along with the desired keystroke and action to perform. The keystroke can be any valid argument to (seesaw.keystroke/keystroke). The action can be one of the following:
target may be a widget, frame, or something convertible through to-widget.
Returns a function that removes the key mapping.
Examples:
; In frame f, key "K" clicks button b (map-key f "K" b)
; In text box t, map ctrl+enter to a function (map-key t "control ENTER" (fn [e] (alert e "You pressed ctrl+enter!")))
(map-key ta "control P" "caret-up") See: (seesaw.keystroke/keystroke) http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html
Install a key mapping on a widget. Key mappings are hopelessly entwined with keyboard focus and the widget hierarchy. When a key is pressed in a widget with focus, each widget up the hierarchy gets a chance to handle it. There three 'scopes' with which a mapping may be registered: :self The mapping only handles key presses when the widget itself has the keyboard focus. Use this, for example, to install custom key mappings in a text box. :descendants The mapping handles key presses when the widget itself or any of its descendants has keyboard focus. :global The mapping handles key presses as long as the top-level window containing the widget is active. This is what's used for menu shortcuts and should be used for other app-wide mappings. Given this, each mapping is installed on a particular widget along with the desired keystroke and action to perform. The keystroke can be any valid argument to (seesaw.keystroke/keystroke). The action can be one of the following: * A javax.swing.Action. See (seesaw.core/action) * A single-argument function. An action will automatically be created around it. * A button, menu, menuitem, or other button-y thing. An action that programmatically clicks the button will be created. * nil to disable or remove a mapping target may be a widget, frame, or something convertible through to-widget. Returns a function that removes the key mapping. Examples: ; In frame f, key "K" clicks button b (map-key f "K" b) ; In text box t, map ctrl+enter to a function (map-key t "control ENTER" (fn [e] (alert e "You pressed ctrl+enter!"))) (map-key ta "control P" "caret-up") See: (seesaw.keystroke/keystroke) http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close