UNPKG

coffeescript-ui

Version:
128 lines (113 loc) 2.46 kB
### * 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 = @getModifiers() 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 = @keyCode() 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: -> @getNativeEvent().key dump: -> txt = @__cls+": **"+@getType()+"**" txt += " Key: **"+@key()+"** KeyCode: **"+@keyCode()+"**" keyboard = @getKeyboard() if keyboard.length > 0 txt = txt + " Keyboard: **"+keyboard+"**" txt @__initKeyboardListener: -> 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()