coffeescript-ui
Version:
Coffeescript User Interface System
128 lines (113 loc) • 2.46 kB
text/coffeescript
###
* coffeescript-ui - Coffeescript User Interface System (CUI)
* Copyright (c) 2013 - 2016 Programmfabrik GmbH
* MIT Licence
* https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org
###
class CUI.KeyboardEvent extends CUI.Event
getKeyboard: ->
keys =
keys.push.apply(keys, CUI.KeyboardEvent.__keys)
keys.join("+")
# Returns the visible keyboard key
# "key" only returns the native event key which is different
# between OSs
getKeyboardKey: ->
key =
if CUI.util.isUndef(key)
return
if key in [96..105]
s = "Num"+String.fromCharCode(key-48)
if key in [112..123]
s = "F"+String.fromCharCode(key-111)
else
switch key
when 8
s = "Backspace"
when 9
s = "Tab"
when 13
s = "Return"
when 16
s = "Shift"
when 17
s = "Ctrl"
when 18
s = "Alt"
when 20
s = "CapsLock"
when 27
s = "Esc"
when 32
s = "Space"
when 33
s = "PageUp"
when 34
s = "PageDown"
when 37
s = "Left"
when 38
s = "Up"
when 39
s = "Right"
when 40
s = "Down"
when 46
s = "Insert"
when 46
s = "Delete"
when 110
s = "Num."
when 144
s = "Numlock"
when 111
s = "Num/"
when 106
s = "Num*"
when 107
s = "Num+"
else
s = String.fromCharCode(key)
s
key: ->
.key
dump: ->
txt = +": **"++"**"
txt += " Key: **"++"** KeyCode: **"++"**"
keyboard =
if keyboard.length > 0
txt = txt + " Keyboard: **"+keyboard+"**"
txt
: ->
is_modifier = (keyCode) ->
switch keyCode
when 16, 17, 18, 91, 93
true
else
false
CUI.KeyboardEvent.__keys = []
CUI.Events.listen
type: ["keydown"]
node: window
capture: true
call: (ev) ->
if not is_modifier(ev.keyCode())
CUI.util.pushOntoArray(ev.getKeyboardKey(), CUI.KeyboardEvent.__keys)
return
CUI.Events.listen
type: ["keyup"]
node: window
capture: true
call: (ev) ->
if not is_modifier(ev.keyCode())
CUI.util.removeFromArray(ev.getKeyboardKey(), CUI.KeyboardEvent.__keys)
return
CUI.Events.listen
type: ["blur"]
node: window
capture: true
call: (ev) ->
# console.debug "blur windo"
CUI.KeyboardEvent.__keys = []
CUI.ready =>
CUI.KeyboardEvent.__initKeyboardListener()