Created
November 30, 2012 02:09
-
-
Save zhchbin/4173331 to your computer and use it in GitHub Desktop.
Node-webkit hotkey api proposal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE> | |
<html> | |
<head> | |
<title>Hotkey Demo</title> | |
<script type="text/javascript" src='keymap.js'></script> | |
<script type="text/javascript"> | |
function log(message) { | |
document.getElementById('log').textContent += message + '\n'; | |
} | |
var gui = require('nw.gui'); | |
var index = 0; | |
var hotkey = new gui.Hotkey({ | |
keyCode: KEY_MAP['VKEY_S'], // 's' | |
shiftKey: false, | |
altKey: true, | |
ctrlKey: true, | |
metaKey: false, | |
onActive : function() { | |
log('hotkey[' + (index++) + ']' + JSON.stringify(this.option)); | |
}, | |
onError : function(msg) { | |
log('Error: ' + msg); | |
} | |
}); | |
var hotkey_2 = new gui.Hotkey({ | |
keyCode: KEY_MAP['VKEY_T'], // 't' | |
altKey: true, | |
onActive : function() { | |
log('hotkey[' + (index++) + ']' + JSON.stringify(this.option)); | |
}, | |
onError : function(msg) { | |
log('Error: ' + msg); | |
} | |
}); | |
</script> | |
</head> | |
<body> | |
<pre id="log"></pre> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var KEY_MAP = { | |
'VKEY_BACK' : 0x08, | |
'VKEY_TAB' : 0x09, | |
'VKEY_BACKTAB' : 0x0A, | |
'VKEY_CLEAR' : 0x0C, | |
'VKEY_RETURN' : 0x0D, | |
'VKEY_SHIFT' : 0x10, | |
'VKEY_CONTROL' : 0x11, | |
'VKEY_MENU' : 0x12, | |
'VKEY_PAUSE' : 0x13, | |
'VKEY_CAPITAL' : 0x14, | |
'VKEY_KANA' : 0x15, | |
'VKEY_HANGUL' : 0x15, | |
'VKEY_JUNJA' : 0x17, | |
'VKEY_FINAL' : 0x18, | |
'VKEY_HANJA' : 0x19, | |
'VKEY_KANJI' : 0x19, | |
'VKEY_ESCAPE' : 0x1B, | |
'VKEY_CONVERT' : 0x1C, | |
'VKEY_NONCONVERT' : 0x1D, | |
'VKEY_ACCEPT' : 0x1E, | |
'VKEY_MODECHANGE' : 0x1F, | |
'VKEY_SPACE' : 0x20, | |
'VKEY_PRIOR' : 0x21, | |
'VKEY_NEXT' : 0x22, | |
'VKEY_END' : 0x23, | |
'VKEY_HOME' : 0x24, | |
'VKEY_LEFT' : 0x25, | |
'VKEY_UP' : 0x26, | |
'VKEY_RIGHT' : 0x27, | |
'VKEY_DOWN' : 0x28, | |
'VKEY_SELECT' : 0x29, | |
'VKEY_PRINT' : 0x2A, | |
'VKEY_EXECUTE' : 0x2B, | |
'VKEY_SNAPSHOT' : 0x2C, | |
'VKEY_INSERT' : 0x2D, | |
'VKEY_DELETE' : 0x2E, | |
'VKEY_HELP' : 0x2F, | |
'VKEY_0' : 0x30, | |
'VKEY_1' : 0x31, | |
'VKEY_2' : 0x32, | |
'VKEY_3' : 0x33, | |
'VKEY_4' : 0x34, | |
'VKEY_5' : 0x35, | |
'VKEY_6' : 0x36, | |
'VKEY_7' : 0x37, | |
'VKEY_8' : 0x38, | |
'VKEY_9' : 0x39, | |
'VKEY_A' : 0x41, | |
'VKEY_B' : 0x42, | |
'VKEY_C' : 0x43, | |
'VKEY_D' : 0x44, | |
'VKEY_E' : 0x45, | |
'VKEY_F' : 0x46, | |
'VKEY_G' : 0x47, | |
'VKEY_H' : 0x48, | |
'VKEY_I' : 0x49, | |
'VKEY_J' : 0x4A, | |
'VKEY_K' : 0x4B, | |
'VKEY_L' : 0x4C, | |
'VKEY_M' : 0x4D, | |
'VKEY_N' : 0x4E, | |
'VKEY_O' : 0x4F, | |
'VKEY_P' : 0x50, | |
'VKEY_Q' : 0x51, | |
'VKEY_R' : 0x52, | |
'VKEY_S' : 0x53, | |
'VKEY_T' : 0x54, | |
'VKEY_U' : 0x55, | |
'VKEY_V' : 0x56, | |
'VKEY_W' : 0x57, | |
'VKEY_X' : 0x58, | |
'VKEY_Y' : 0x59, | |
'VKEY_Z' : 0x5A, | |
'VKEY_LWIN' : 0x5B, | |
'VKEY_COMMAND' : 0x5B, // Provide the Mac name for convenience. | |
'VKEY_RWIN' : 0x5C, | |
'VKEY_APPS' : 0x5D, | |
'VKEY_SLEEP' : 0x5F, | |
'VKEY_NUMPAD0' : 0x60, | |
'VKEY_NUMPAD1' : 0x61, | |
'VKEY_NUMPAD2' : 0x62, | |
'VKEY_NUMPAD3' : 0x63, | |
'VKEY_NUMPAD4' : 0x64, | |
'VKEY_NUMPAD5' : 0x65, | |
'VKEY_NUMPAD6' : 0x66, | |
'VKEY_NUMPAD7' : 0x67, | |
'VKEY_NUMPAD8' : 0x68, | |
'VKEY_NUMPAD9' : 0x69, | |
'VKEY_MULTIPLY' : 0x6A, | |
'VKEY_ADD' : 0x6B, | |
'VKEY_SEPARATOR' : 0x6C, | |
'VKEY_SUBTRACT' : 0x6D, | |
'VKEY_DECIMAL' : 0x6E, | |
'VKEY_DIVIDE' : 0x6F, | |
'VKEY_F1' : 0x70, | |
'VKEY_F2' : 0x71, | |
'VKEY_F3' : 0x72, | |
'VKEY_F4' : 0x73, | |
'VKEY_F5' : 0x74, | |
'VKEY_F6' : 0x75, | |
'VKEY_F7' : 0x76, | |
'VKEY_F8' : 0x77, | |
'VKEY_F9' : 0x78, | |
'VKEY_F10' : 0x79, | |
'VKEY_F11' : 0x7A, | |
'VKEY_F12' : 0x7B, | |
'VKEY_F13' : 0x7C, | |
'VKEY_F14' : 0x7D, | |
'VKEY_F15' : 0x7E, | |
'VKEY_F16' : 0x7F, | |
'VKEY_F17' : 0x80, | |
'VKEY_F18' : 0x81, | |
'VKEY_F19' : 0x82, | |
'VKEY_F20' : 0x83, | |
'VKEY_F21' : 0x84, | |
'VKEY_F22' : 0x85, | |
'VKEY_F23' : 0x86, | |
'VKEY_F24' : 0x87, | |
'VKEY_NUMLOCK' : 0x90, | |
'VKEY_SCROLL' : 0x91, | |
'VKEY_LSHIFT' : 0xA0, | |
'VKEY_RSHIFT' : 0xA1, | |
'VKEY_LCONTROL' : 0xA2, | |
'VKEY_RCONTROL' : 0xA3, | |
'VKEY_LMENU' : 0xA4, | |
'VKEY_RMENU' : 0xA5, | |
'VKEY_BROWSER_BACK' : 0xA6, | |
'VKEY_BROWSER_FORWARD' : 0xA7, | |
'VKEY_BROWSER_REFRESH' : 0xA8, | |
'VKEY_BROWSER_STOP' : 0xA9, | |
'VKEY_BROWSER_SEARCH' : 0xAA, | |
'VKEY_BROWSER_FAVORITES' : 0xAB, | |
'VKEY_BROWSER_HOME' : 0xAC, | |
'VKEY_VOLUME_MUTE' : 0xAD, | |
'VKEY_VOLUME_DOWN' : 0xAE, | |
'VKEY_VOLUME_UP' : 0xAF, | |
'VKEY_MEDIA_NEXT_TRACK' : 0xB0, | |
'VKEY_MEDIA_PREV_TRACK' : 0xB1, | |
'VKEY_MEDIA_STOP' : 0xB2, | |
'VKEY_MEDIA_PLAY_PAUSE' : 0xB3, | |
'VKEY_MEDIA_LAUNCH_MAIL' : 0xB4, | |
'VKEY_MEDIA_LAUNCH_MEDIA_SELECT' : 0xB5, | |
'VKEY_MEDIA_LAUNCH_APP1' : 0xB6, | |
'VKEY_MEDIA_LAUNCH_APP2' : 0xB7, | |
'VKEY_OEM_1' : 0xBA, | |
'VKEY_OEM_PLUS' : 0xBB, | |
'VKEY_OEM_COMMA' : 0xBC, | |
'VKEY_OEM_MINUS' : 0xBD, | |
'VKEY_OEM_PERIOD' : 0xBE, | |
'VKEY_OEM_2' : 0xBF, | |
'VKEY_OEM_3' : 0xC0, | |
'VKEY_OEM_4' : 0xDB, | |
'VKEY_OEM_5' : 0xDC, | |
'VKEY_OEM_6' : 0xDD, | |
'VKEY_OEM_7' : 0xDE, | |
'VKEY_OEM_8' : 0xDF, | |
'VKEY_OEM_102' : 0xE2, | |
'VKEY_PROCESSKEY' : 0xE5, | |
'VKEY_PACKET' : 0xE7, | |
'VKEY_DBE_SBCSCHAR' : 0xF3, | |
'VKEY_DBE_DBCSCHAR' : 0xF4, | |
'VKEY_ATTN' : 0xF6, | |
'VKEY_CRSEL' : 0xF7, | |
'VKEY_EXSEL' : 0xF8, | |
'VKEY_EREOF' : 0xF9, | |
'VKEY_PLAY' : 0xFA, | |
'VKEY_ZOOM' : 0xFB, | |
'VKEY_NONAME' : 0xFC, | |
'VKEY_PA1' : 0xFD, | |
'VKEY_OEM_CLEAR' : 0xFE, | |
'VKEY_UNKNOWN' : 0 | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name" : "Hotkey-demo", | |
"main" : "index.html", | |
"window" : { | |
"width": 900 | |
} | |
} |
I tried it on my Mac but it did not work. This new feature is compatible for Windows?
@Frulko Sorry for this delayed reply. This new feature is still in developing... You can check the status here:nwjs/nw.js#200
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you for your patient replay. Just get the idea about what you want.
What's your plan about when this api should be implemented?