You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
653 lines
42 KiB
653 lines
42 KiB
#!/usr/bin/env python3 |
|
|
|
# MIT License |
|
# |
|
# Copyright (c) 2021 Eugenio Parodi <ceccopierangiolieugenio AT googlemail DOT com> |
|
# |
|
# Permission is hereby granted, free of charge, to any person obtaining a copy |
|
# of this software and associated documentation files (the "Software"), to deal |
|
# in the Software without restriction, including without limitation the rights |
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
# copies of the Software, and to permit persons to whom the Software is |
|
# furnished to do so, subject to the following conditions: |
|
# |
|
# The above copyright notice and this permission notice shall be included in all |
|
# copies or substantial portions of the Software. |
|
# |
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|
# SOFTWARE. |
|
|
|
from TermTk.TTkCore.constant import TTkK |
|
|
|
class KeyEvent: |
|
__slots__ = ('type', 'key', 'code', 'mod') |
|
def __init__(self, type:int, key: str, code: str, mod: int): |
|
self.type = type |
|
self.key = key |
|
self.mod = mod |
|
self.code = code |
|
def __str__(self): |
|
code = self.code.replace('\033','<ESC>') |
|
return f"KeyEvent: {self.key} {key2str(self.key)} {mod2str(self.mod)} {code}" |
|
|
|
@staticmethod |
|
def parse(input_key): # from: Space except "DEL" |
|
if len(input_key) == 1 and "\040" <= input_key != "\177": |
|
return KeyEvent(TTkK.Character, input_key, input_key, TTkK.NoModifier) |
|
else: |
|
key, mod = _translate_key(input_key) |
|
if key is not None: |
|
return KeyEvent(TTkK.SpecialKey, key, input_key, mod) |
|
return None |
|
|
|
def _translate_key(key): |
|
if key == "\177" : return TTkK.Key_Backspace , TTkK.NoModifier |
|
elif key == "\t" : return TTkK.Key_Tab , TTkK.NoModifier |
|
elif key == "\033[Z" : return TTkK.Key_Tab , TTkK.ShiftModifier |
|
elif key == "\n" : return TTkK.Key_Enter , TTkK.NoModifier |
|
elif key == "\033[A" : return TTkK.Key_Up , TTkK.NoModifier |
|
elif key == "\033[B" : return TTkK.Key_Down , TTkK.NoModifier |
|
elif key == "\033[C" : return TTkK.Key_Right , TTkK.NoModifier |
|
elif key == "\033[D" : return TTkK.Key_Left , TTkK.NoModifier |
|
elif key == "\033[5~" : return TTkK.Key_PageUp , TTkK.NoModifier |
|
elif key == "\033[6~" : return TTkK.Key_PageDown , TTkK.NoModifier |
|
# Xterm |
|
elif key == "\033[F" : return TTkK.Key_End , TTkK.NoModifier |
|
elif key == "\033[H" : return TTkK.Key_Home , TTkK.NoModifier |
|
# Terminator + tmux |
|
elif key == "\033[4~" : return TTkK.Key_End , TTkK.NoModifier |
|
elif key == "\033[1~" : return TTkK.Key_Home , TTkK.NoModifier |
|
elif key == "\033[2~" : return TTkK.Key_Insert , TTkK.NoModifier |
|
elif key == "\033[3~" : return TTkK.Key_Delete , TTkK.NoModifier |
|
elif key == "\033" : return TTkK.Key_Escape , TTkK.NoModifier |
|
# Function Key |
|
elif key == "\033OP" : return TTkK.Key_F1 , TTkK.NoModifier |
|
elif key == "\033OQ" : return TTkK.Key_F2 , TTkK.NoModifier |
|
elif key == "\033OR" : return TTkK.Key_F3 , TTkK.NoModifier |
|
elif key == "\033OS" : return TTkK.Key_F4 , TTkK.NoModifier |
|
elif key == "\033[15~" : return TTkK.Key_F5 , TTkK.NoModifier |
|
elif key == "\033[17~" : return TTkK.Key_F6 , TTkK.NoModifier |
|
elif key == "\033[18~" : return TTkK.Key_F7 , TTkK.NoModifier |
|
elif key == "\033[19~" : return TTkK.Key_F8 , TTkK.NoModifier |
|
elif key == "\033[20~" : return TTkK.Key_F9 , TTkK.NoModifier |
|
elif key == "\033[21~" : return TTkK.Key_F10 , TTkK.NoModifier |
|
elif key == "\033[23~" : return TTkK.Key_F11 , TTkK.NoModifier |
|
elif key == "\033[24~" : return TTkK.Key_F12 , TTkK.NoModifier |
|
elif key == "\033[1;2P" : return TTkK.Key_F1 , TTkK.ShiftModifier |
|
elif key == "\033[1;2Q" : return TTkK.Key_F2 , TTkK.ShiftModifier |
|
elif key == "\033[1;2R" : return TTkK.Key_F3 , TTkK.ShiftModifier |
|
elif key == "\033[1;2S" : return TTkK.Key_F4 , TTkK.ShiftModifier |
|
elif key == "\033[15;2~": return TTkK.Key_F5 , TTkK.ShiftModifier |
|
elif key == "\033[17;2~": return TTkK.Key_F6 , TTkK.ShiftModifier |
|
elif key == "\033[18;2~": return TTkK.Key_F7 , TTkK.ShiftModifier |
|
elif key == "\033[19;2~": return TTkK.Key_F8 , TTkK.ShiftModifier |
|
elif key == "\033[20;2~": return TTkK.Key_F9 , TTkK.ShiftModifier |
|
elif key == "\033[21;2~": return TTkK.Key_F10 , TTkK.ShiftModifier |
|
elif key == "\033[23;2~": return TTkK.Key_F11 , TTkK.ShiftModifier |
|
elif key == "\033[24;2~": return TTkK.Key_F12 , TTkK.ShiftModifier |
|
elif key == "\033[1;5P" : return TTkK.Key_F1 , TTkK.ControlModifier |
|
elif key == "\033[1;5Q" : return TTkK.Key_F2 , TTkK.ControlModifier |
|
elif key == "\033[1;5R" : return TTkK.Key_F3 , TTkK.ControlModifier |
|
elif key == "\033[1;5S" : return TTkK.Key_F4 , TTkK.ControlModifier |
|
elif key == "\033[15;5~": return TTkK.Key_F5 , TTkK.ControlModifier |
|
elif key == "\033[17;5~": return TTkK.Key_F6 , TTkK.ControlModifier |
|
elif key == "\033[18;5~": return TTkK.Key_F7 , TTkK.ControlModifier |
|
elif key == "\033[19;5~": return TTkK.Key_F8 , TTkK.ControlModifier |
|
elif key == "\033[20;5~": return TTkK.Key_F9 , TTkK.ControlModifier |
|
elif key == "\033[21;5~": return TTkK.Key_F10 , TTkK.ControlModifier |
|
elif key == "\033[23;5~": return TTkK.Key_F11 , TTkK.ControlModifier |
|
elif key == "\033[24;5~": return TTkK.Key_F12 , TTkK.ControlModifier |
|
# elif key == "\033[1;3P" : return TTkK.Key_F1 , TTkK.AltModifier |
|
# elif key == "\033[1;3Q" : return TTkK.Key_F2 , TTkK.AltModifier |
|
elif key == "\033[1;3R" : return TTkK.Key_F3 , TTkK.AltModifier |
|
#elif key == "\033[1;3S" : return TTkK.Key_F4 , TTkK.AltModifier |
|
#elif key == "\033[15;3~": return TTkK.Key_F5 , TTkK.AltModifier |
|
elif key == "\033[17;3~": return TTkK.Key_F6 , TTkK.AltModifier |
|
#elif key == "\033[18;3~": return TTkK.Key_F7 , TTkK.AltModifier |
|
#elif key == "\033[19;3~": return TTkK.Key_F8 , TTkK.AltModifier |
|
elif key == "\033[20;3~": return TTkK.Key_F9 , TTkK.AltModifier |
|
#elif key == "\033[21;3~": return TTkK.Key_F10 , TTkK.AltModifier |
|
elif key == "\033[23;3~": return TTkK.Key_F11 , TTkK.AltModifier |
|
elif key == "\033[24;3~": return TTkK.Key_F12 , TTkK.AltModifier |
|
return None, None |
|
|
|
# # elif key == "\033": return TTkK.Key_Tab |
|
# if True: return None |
|
# elif key == "\033": return TTkK.Key_Backtab |
|
# elif key == "\033": return TTkK.Key_Backspace |
|
# elif key == "\033": return TTkK.Key_Return |
|
# elif key == "\033": return TTkK.Key_Enter |
|
# elif key == "\033": return TTkK.Key_Pause |
|
# elif key == "\033": return TTkK.Key_Print |
|
# elif key == "\033": return TTkK.Key_SysReq |
|
# elif key == "\033": return TTkK.Key_Clear |
|
# elif key == "\033": return TTkK.Key_Shift |
|
# elif key == "\033": return TTkK.Key_Control |
|
# elif key == "\033": return TTkK.Key_Meta |
|
# elif key == "\033": return TTkK.Key_Alt |
|
# elif key == "\033": return TTkK.Key_AltGr |
|
# elif key == "\033": return TTkK.Key_CapsLock |
|
# elif key == "\033": return TTkK.Key_NumLock |
|
# elif key == "\033": return TTkK.Key_ScrollLock |
|
# elif key == "\033": return TTkK.Key_F13 |
|
# elif key == "\033": return TTkK.Key_F14 |
|
# elif key == "\033": return TTkK.Key_F15 |
|
# elif key == "\033": return TTkK.Key_F16 |
|
# elif key == "\033": return TTkK.Key_F17 |
|
# elif key == "\033": return TTkK.Key_F18 |
|
# elif key == "\033": return TTkK.Key_F19 |
|
# elif key == "\033": return TTkK.Key_F20 |
|
# elif key == "\033": return TTkK.Key_F21 |
|
# elif key == "\033": return TTkK.Key_F22 |
|
# elif key == "\033": return TTkK.Key_F23 |
|
# elif key == "\033": return TTkK.Key_F24 |
|
# elif key == "\033": return TTkK.Key_F25 |
|
# elif key == "\033": return TTkK.Key_F26 |
|
# elif key == "\033": return TTkK.Key_F27 |
|
# elif key == "\033": return TTkK.Key_F28 |
|
# elif key == "\033": return TTkK.Key_F29 |
|
# elif key == "\033": return TTkK.Key_F30 |
|
# elif key == "\033": return TTkK.Key_F31 |
|
# elif key == "\033": return TTkK.Key_F32 |
|
# elif key == "\033": return TTkK.Key_F33 |
|
# elif key == "\033": return TTkK.Key_F34 |
|
# elif key == "\033": return TTkK.Key_F35 |
|
# elif key == "\033": return TTkK.Key_Super_L |
|
# elif key == "\033": return TTkK.Key_Super_R |
|
# elif key == "\033": return TTkK.Key_Menu |
|
# elif key == "\033": return TTkK.Key_Hyper_L |
|
# elif key == "\033": return TTkK.Key_Hyper_R |
|
# elif key == "\033": return TTkK.Key_Help |
|
# elif key == "\033": return TTkK.Key_Direction_L |
|
# elif key == "\033": return TTkK.Key_Direction_R |
|
# elif key == "\033": return TTkK.Key_Space |
|
# elif key == "\033": return TTkK.Key_Any |
|
# return TTkK.NONE |
|
|
|
def mod2str(k): |
|
if k == TTkK.NoModifier : return "NoModifier" |
|
if k == TTkK.ShiftModifier : return "ShiftModifier" |
|
if k == TTkK.ControlModifier : return "ControlModifier" |
|
if k == TTkK.AltModifier : return "AltModifier" |
|
if k == TTkK.MetaModifier : return "MetaModifier" |
|
if k == TTkK.KeypadModifier : return "KeypadModifier" |
|
if k == TTkK.GroupSwitchModifier : return "GroupSwitchModifier" |
|
return "NONE!!!" |
|
|
|
def key2str(k): |
|
if k == TTkK.Key_Escape : return "Key_Escape" |
|
if k == TTkK.Key_Tab : return "Key_Tab" |
|
if k == TTkK.Key_Backtab : return "Key_Backtab" |
|
if k == TTkK.Key_Backspace : return "Key_Backspace" |
|
if k == TTkK.Key_Return : return "Key_Return" |
|
if k == TTkK.Key_Enter : return "Key_Enter" |
|
if k == TTkK.Key_Insert : return "Key_Insert" |
|
if k == TTkK.Key_Delete : return "Key_Delete" |
|
if k == TTkK.Key_Pause : return "Key_Pause" |
|
if k == TTkK.Key_Print : return "Key_Print" |
|
if k == TTkK.Key_SysReq : return "Key_SysReq" |
|
if k == TTkK.Key_Clear : return "Key_Clear" |
|
if k == TTkK.Key_Home : return "Key_Home" |
|
if k == TTkK.Key_End : return "Key_End" |
|
if k == TTkK.Key_Left : return "Key_Left" |
|
if k == TTkK.Key_Up : return "Key_Up" |
|
if k == TTkK.Key_Right : return "Key_Right" |
|
if k == TTkK.Key_Down : return "Key_Down" |
|
if k == TTkK.Key_PageUp : return "Key_PageUp" |
|
if k == TTkK.Key_PageDown : return "Key_PageDown" |
|
if k == TTkK.Key_Shift : return "Key_Shift" |
|
if k == TTkK.Key_Control : return "Key_Control" |
|
if k == TTkK.Key_Meta : return "Key_Meta" |
|
if k == TTkK.Key_Alt : return "Key_Alt" |
|
if k == TTkK.Key_AltGr : return "Key_AltGr" |
|
if k == TTkK.Key_CapsLock : return "Key_CapsLock" |
|
if k == TTkK.Key_NumLock : return "Key_NumLock" |
|
if k == TTkK.Key_ScrollLock : return "Key_ScrollLock" |
|
if k == TTkK.Key_F1 : return "Key_F1" |
|
if k == TTkK.Key_F2 : return "Key_F2" |
|
if k == TTkK.Key_F3 : return "Key_F3" |
|
if k == TTkK.Key_F4 : return "Key_F4" |
|
if k == TTkK.Key_F5 : return "Key_F5" |
|
if k == TTkK.Key_F6 : return "Key_F6" |
|
if k == TTkK.Key_F7 : return "Key_F7" |
|
if k == TTkK.Key_F8 : return "Key_F8" |
|
if k == TTkK.Key_F9 : return "Key_F9" |
|
if k == TTkK.Key_F10 : return "Key_F10" |
|
if k == TTkK.Key_F11 : return "Key_F11" |
|
if k == TTkK.Key_F12 : return "Key_F12" |
|
if k == TTkK.Key_F13 : return "Key_F13" |
|
if k == TTkK.Key_F14 : return "Key_F14" |
|
if k == TTkK.Key_F15 : return "Key_F15" |
|
if k == TTkK.Key_F16 : return "Key_F16" |
|
if k == TTkK.Key_F17 : return "Key_F17" |
|
if k == TTkK.Key_F18 : return "Key_F18" |
|
if k == TTkK.Key_F19 : return "Key_F19" |
|
if k == TTkK.Key_F20 : return "Key_F20" |
|
if k == TTkK.Key_F21 : return "Key_F21" |
|
if k == TTkK.Key_F22 : return "Key_F22" |
|
if k == TTkK.Key_F23 : return "Key_F23" |
|
if k == TTkK.Key_F24 : return "Key_F24" |
|
if k == TTkK.Key_F25 : return "Key_F25" |
|
if k == TTkK.Key_F26 : return "Key_F26" |
|
if k == TTkK.Key_F27 : return "Key_F27" |
|
if k == TTkK.Key_F28 : return "Key_F28" |
|
if k == TTkK.Key_F29 : return "Key_F29" |
|
if k == TTkK.Key_F30 : return "Key_F30" |
|
if k == TTkK.Key_F31 : return "Key_F31" |
|
if k == TTkK.Key_F32 : return "Key_F32" |
|
if k == TTkK.Key_F33 : return "Key_F33" |
|
if k == TTkK.Key_F34 : return "Key_F34" |
|
if k == TTkK.Key_F35 : return "Key_F35" |
|
if k == TTkK.Key_Super_L : return "Key_Super_L" |
|
if k == TTkK.Key_Super_R : return "Key_Super_R" |
|
if k == TTkK.Key_Menu : return "Key_Menu" |
|
if k == TTkK.Key_Hyper_L : return "Key_Hyper_L" |
|
if k == TTkK.Key_Hyper_R : return "Key_Hyper_R" |
|
if k == TTkK.Key_Help : return "Key_Help" |
|
if k == TTkK.Key_Direction_L : return "Key_Direction_L" |
|
if k == TTkK.Key_Direction_R : return "Key_Direction_R" |
|
if k == TTkK.Key_Space : return "Key_Space" |
|
if k == TTkK.Key_Any : return "Key_Any" |
|
if k == TTkK.Key_Space : return "Key_Space" |
|
if k == TTkK.Key_Exclam : return "Key_Exclam" |
|
if k == TTkK.Key_QuoteDbl : return "Key_QuoteDbl" |
|
if k == TTkK.Key_NumberSign : return "Key_NumberSign" |
|
if k == TTkK.Key_Dollar : return "Key_Dollar" |
|
if k == TTkK.Key_Percent : return "Key_Percent" |
|
if k == TTkK.Key_Ampersand : return "Key_Ampersand" |
|
if k == TTkK.Key_Apostrophe : return "Key_Apostrophe" |
|
if k == TTkK.Key_ParenLeft : return "Key_ParenLeft" |
|
if k == TTkK.Key_ParenRight : return "Key_ParenRight" |
|
if k == TTkK.Key_Asterisk : return "Key_Asterisk" |
|
if k == TTkK.Key_Plus : return "Key_Plus" |
|
if k == TTkK.Key_Comma : return "Key_Comma" |
|
if k == TTkK.Key_Minus : return "Key_Minus" |
|
if k == TTkK.Key_Period : return "Key_Period" |
|
if k == TTkK.Key_Slash : return "Key_Slash" |
|
if k == TTkK.Key_0 : return "Key_0" |
|
if k == TTkK.Key_1 : return "Key_1" |
|
if k == TTkK.Key_2 : return "Key_2" |
|
if k == TTkK.Key_3 : return "Key_3" |
|
if k == TTkK.Key_4 : return "Key_4" |
|
if k == TTkK.Key_5 : return "Key_5" |
|
if k == TTkK.Key_6 : return "Key_6" |
|
if k == TTkK.Key_7 : return "Key_7" |
|
if k == TTkK.Key_8 : return "Key_8" |
|
if k == TTkK.Key_9 : return "Key_9" |
|
if k == TTkK.Key_Colon : return "Key_Colon" |
|
if k == TTkK.Key_Semicolon : return "Key_Semicolon" |
|
if k == TTkK.Key_Less : return "Key_Less" |
|
if k == TTkK.Key_Equal : return "Key_Equal" |
|
if k == TTkK.Key_Greater : return "Key_Greater" |
|
if k == TTkK.Key_Question : return "Key_Question" |
|
if k == TTkK.Key_At : return "Key_At" |
|
if k == TTkK.Key_A : return "Key_A" |
|
if k == TTkK.Key_B : return "Key_B" |
|
if k == TTkK.Key_C : return "Key_C" |
|
if k == TTkK.Key_D : return "Key_D" |
|
if k == TTkK.Key_E : return "Key_E" |
|
if k == TTkK.Key_F : return "Key_F" |
|
if k == TTkK.Key_G : return "Key_G" |
|
if k == TTkK.Key_H : return "Key_H" |
|
if k == TTkK.Key_I : return "Key_I" |
|
if k == TTkK.Key_J : return "Key_J" |
|
if k == TTkK.Key_K : return "Key_K" |
|
if k == TTkK.Key_L : return "Key_L" |
|
if k == TTkK.Key_M : return "Key_M" |
|
if k == TTkK.Key_N : return "Key_N" |
|
if k == TTkK.Key_O : return "Key_O" |
|
if k == TTkK.Key_P : return "Key_P" |
|
if k == TTkK.Key_Q : return "Key_Q" |
|
if k == TTkK.Key_R : return "Key_R" |
|
if k == TTkK.Key_S : return "Key_S" |
|
if k == TTkK.Key_T : return "Key_T" |
|
if k == TTkK.Key_U : return "Key_U" |
|
if k == TTkK.Key_V : return "Key_V" |
|
if k == TTkK.Key_W : return "Key_W" |
|
if k == TTkK.Key_X : return "Key_X" |
|
if k == TTkK.Key_Y : return "Key_Y" |
|
if k == TTkK.Key_Z : return "Key_Z" |
|
if k == TTkK.Key_BracketLeft : return "Key_BracketLeft" |
|
if k == TTkK.Key_Backslash : return "Key_Backslash" |
|
if k == TTkK.Key_BracketRight : return "Key_BracketRight" |
|
if k == TTkK.Key_AsciiCircum : return "Key_AsciiCircum" |
|
if k == TTkK.Key_Underscore : return "Key_Underscore" |
|
if k == TTkK.Key_QuoteLeft : return "Key_QuoteLeft" |
|
if k == TTkK.Key_BraceLeft : return "Key_BraceLeft" |
|
if k == TTkK.Key_Bar : return "Key_Bar" |
|
if k == TTkK.Key_BraceRight : return "Key_BraceRight" |
|
if k == TTkK.Key_AsciiTilde : return "Key_AsciiTilde" |
|
if k == TTkK.Key_nobreakspace : return "Key_nobreakspace" |
|
if k == TTkK.Key_exclamdown : return "Key_exclamdown" |
|
if k == TTkK.Key_cent : return "Key_cent" |
|
if k == TTkK.Key_sterling : return "Key_sterling" |
|
if k == TTkK.Key_currency : return "Key_currency" |
|
if k == TTkK.Key_yen : return "Key_yen" |
|
if k == TTkK.Key_brokenbar : return "Key_brokenbar" |
|
if k == TTkK.Key_section : return "Key_section" |
|
if k == TTkK.Key_diaeresis : return "Key_diaeresis" |
|
if k == TTkK.Key_copyright : return "Key_copyright" |
|
if k == TTkK.Key_ordfeminine : return "Key_ordfeminine" |
|
if k == TTkK.Key_guillemotleft : return "Key_guillemotleft" |
|
if k == TTkK.Key_notsign : return "Key_notsign" |
|
if k == TTkK.Key_hyphen : return "Key_hyphen" |
|
if k == TTkK.Key_registered : return "Key_registered" |
|
if k == TTkK.Key_macron : return "Key_macron" |
|
if k == TTkK.Key_degree : return "Key_degree" |
|
if k == TTkK.Key_plusminus : return "Key_plusminus" |
|
if k == TTkK.Key_twosuperior : return "Key_twosuperior" |
|
if k == TTkK.Key_threesuperior : return "Key_threesuperior" |
|
if k == TTkK.Key_acute : return "Key_acute" |
|
if k == TTkK.Key_mu : return "Key_mu" |
|
if k == TTkK.Key_paragraph : return "Key_paragraph" |
|
if k == TTkK.Key_periodcentered : return "Key_periodcentered" |
|
if k == TTkK.Key_cedilla : return "Key_cedilla" |
|
if k == TTkK.Key_onesuperior : return "Key_onesuperior" |
|
if k == TTkK.Key_masculine : return "Key_masculine" |
|
if k == TTkK.Key_guillemotright : return "Key_guillemotright" |
|
if k == TTkK.Key_onequarter : return "Key_onequarter" |
|
if k == TTkK.Key_onehalf : return "Key_onehalf" |
|
if k == TTkK.Key_threequarters : return "Key_threequarters" |
|
if k == TTkK.Key_questiondown : return "Key_questiondown" |
|
if k == TTkK.Key_Agrave : return "Key_Agrave" |
|
if k == TTkK.Key_Aacute : return "Key_Aacute" |
|
if k == TTkK.Key_Acircumflex : return "Key_Acircumflex" |
|
if k == TTkK.Key_Atilde : return "Key_Atilde" |
|
if k == TTkK.Key_Adiaeresis : return "Key_Adiaeresis" |
|
if k == TTkK.Key_Aring : return "Key_Aring" |
|
if k == TTkK.Key_AE : return "Key_AE" |
|
if k == TTkK.Key_Ccedilla : return "Key_Ccedilla" |
|
if k == TTkK.Key_Egrave : return "Key_Egrave" |
|
if k == TTkK.Key_Eacute : return "Key_Eacute" |
|
if k == TTkK.Key_Ecircumflex : return "Key_Ecircumflex" |
|
if k == TTkK.Key_Ediaeresis : return "Key_Ediaeresis" |
|
if k == TTkK.Key_Igrave : return "Key_Igrave" |
|
if k == TTkK.Key_Iacute : return "Key_Iacute" |
|
if k == TTkK.Key_Icircumflex : return "Key_Icircumflex" |
|
if k == TTkK.Key_Idiaeresis : return "Key_Idiaeresis" |
|
if k == TTkK.Key_ETH : return "Key_ETH" |
|
if k == TTkK.Key_Ntilde : return "Key_Ntilde" |
|
if k == TTkK.Key_Ograve : return "Key_Ograve" |
|
if k == TTkK.Key_Oacute : return "Key_Oacute" |
|
if k == TTkK.Key_Ocircumflex : return "Key_Ocircumflex" |
|
if k == TTkK.Key_Otilde : return "Key_Otilde" |
|
if k == TTkK.Key_Odiaeresis : return "Key_Odiaeresis" |
|
if k == TTkK.Key_multiply : return "Key_multiply" |
|
if k == TTkK.Key_Ooblique : return "Key_Ooblique" |
|
if k == TTkK.Key_Ugrave : return "Key_Ugrave" |
|
if k == TTkK.Key_Uacute : return "Key_Uacute" |
|
if k == TTkK.Key_Ucircumflex : return "Key_Ucircumflex" |
|
if k == TTkK.Key_Udiaeresis : return "Key_Udiaeresis" |
|
if k == TTkK.Key_Yacute : return "Key_Yacute" |
|
if k == TTkK.Key_THORN : return "Key_THORN" |
|
if k == TTkK.Key_ssharp : return "Key_ssharp" |
|
if k == TTkK.Key_division : return "Key_division" |
|
if k == TTkK.Key_ydiaeresis : return "Key_ydiaeresis" |
|
if k == TTkK.Key_Multi_key : return "Key_Multi_key" |
|
if k == TTkK.Key_Codeinput : return "Key_Codeinput" |
|
if k == TTkK.Key_SingleCandidate : return "Key_SingleCandidate" |
|
if k == TTkK.Key_MultipleCandidate : return "Key_MultipleCandidate" |
|
if k == TTkK.Key_PreviousCandidate : return "Key_PreviousCandidate" |
|
if k == TTkK.Key_Mode_switch : return "Key_Mode_switch" |
|
if k == TTkK.Key_Kanji : return "Key_Kanji" |
|
if k == TTkK.Key_Muhenkan : return "Key_Muhenkan" |
|
if k == TTkK.Key_Henkan : return "Key_Henkan" |
|
if k == TTkK.Key_Romaji : return "Key_Romaji" |
|
if k == TTkK.Key_Hiragana : return "Key_Hiragana" |
|
if k == TTkK.Key_Katakana : return "Key_Katakana" |
|
if k == TTkK.Key_Hiragana_Katakana : return "Key_Hiragana_Katakana" |
|
if k == TTkK.Key_Zenkaku : return "Key_Zenkaku" |
|
if k == TTkK.Key_Hankaku : return "Key_Hankaku" |
|
if k == TTkK.Key_Zenkaku_Hankaku : return "Key_Zenkaku_Hankaku" |
|
if k == TTkK.Key_Touroku : return "Key_Touroku" |
|
if k == TTkK.Key_Massyo : return "Key_Massyo" |
|
if k == TTkK.Key_Kana_Lock : return "Key_Kana_Lock" |
|
if k == TTkK.Key_Kana_Shift : return "Key_Kana_Shift" |
|
if k == TTkK.Key_Eisu_Shift : return "Key_Eisu_Shift" |
|
if k == TTkK.Key_Eisu_toggle : return "Key_Eisu_toggle" |
|
if k == TTkK.Key_Hangul : return "Key_Hangul" |
|
if k == TTkK.Key_Hangul_Start : return "Key_Hangul_Start" |
|
if k == TTkK.Key_Hangul_End : return "Key_Hangul_End" |
|
if k == TTkK.Key_Hangul_Hanja : return "Key_Hangul_Hanja" |
|
if k == TTkK.Key_Hangul_Jamo : return "Key_Hangul_Jamo" |
|
if k == TTkK.Key_Hangul_Romaja : return "Key_Hangul_Romaja" |
|
if k == TTkK.Key_Hangul_Jeonja : return "Key_Hangul_Jeonja" |
|
if k == TTkK.Key_Hangul_Banja : return "Key_Hangul_Banja" |
|
if k == TTkK.Key_Hangul_PreHanja : return "Key_Hangul_PreHanja" |
|
if k == TTkK.Key_Hangul_PostHanja : return "Key_Hangul_PostHanja" |
|
if k == TTkK.Key_Hangul_Special : return "Key_Hangul_Special" |
|
if k == TTkK.Key_Dead_Grave : return "Key_Dead_Grave" |
|
if k == TTkK.Key_Dead_Acute : return "Key_Dead_Acute" |
|
if k == TTkK.Key_Dead_Circumflex : return "Key_Dead_Circumflex" |
|
if k == TTkK.Key_Dead_Tilde : return "Key_Dead_Tilde" |
|
if k == TTkK.Key_Dead_Macron : return "Key_Dead_Macron" |
|
if k == TTkK.Key_Dead_Breve : return "Key_Dead_Breve" |
|
if k == TTkK.Key_Dead_Abovedot : return "Key_Dead_Abovedot" |
|
if k == TTkK.Key_Dead_Diaeresis : return "Key_Dead_Diaeresis" |
|
if k == TTkK.Key_Dead_Abovering : return "Key_Dead_Abovering" |
|
if k == TTkK.Key_Dead_Doubleacute : return "Key_Dead_Doubleacute" |
|
if k == TTkK.Key_Dead_Caron : return "Key_Dead_Caron" |
|
if k == TTkK.Key_Dead_Cedilla : return "Key_Dead_Cedilla" |
|
if k == TTkK.Key_Dead_Ogonek : return "Key_Dead_Ogonek" |
|
if k == TTkK.Key_Dead_Iota : return "Key_Dead_Iota" |
|
if k == TTkK.Key_Dead_Voiced_Sound : return "Key_Dead_Voiced_Sound" |
|
if k == TTkK.Key_Dead_Semivoiced_Sound : return "Key_Dead_Semivoiced_Sound" |
|
if k == TTkK.Key_Dead_Belowdot : return "Key_Dead_Belowdot" |
|
if k == TTkK.Key_Dead_Hook : return "Key_Dead_Hook" |
|
if k == TTkK.Key_Dead_Horn : return "Key_Dead_Horn" |
|
if k == TTkK.Key_Dead_Stroke : return "Key_Dead_Stroke" |
|
if k == TTkK.Key_Dead_Abovecomma : return "Key_Dead_Abovecomma" |
|
if k == TTkK.Key_Dead_Abovereversedcomma : return "Key_Dead_Abovereversedcomma" |
|
if k == TTkK.Key_Dead_Doublegrave : return "Key_Dead_Doublegrave" |
|
if k == TTkK.Key_Dead_Belowring : return "Key_Dead_Belowring" |
|
if k == TTkK.Key_Dead_Belowmacron : return "Key_Dead_Belowmacron" |
|
if k == TTkK.Key_Dead_Belowcircumflex : return "Key_Dead_Belowcircumflex" |
|
if k == TTkK.Key_Dead_Belowtilde : return "Key_Dead_Belowtilde" |
|
if k == TTkK.Key_Dead_Belowbreve : return "Key_Dead_Belowbreve" |
|
if k == TTkK.Key_Dead_Belowdiaeresis : return "Key_Dead_Belowdiaeresis" |
|
if k == TTkK.Key_Dead_Invertedbreve : return "Key_Dead_Invertedbreve" |
|
if k == TTkK.Key_Dead_Belowcomma : return "Key_Dead_Belowcomma" |
|
if k == TTkK.Key_Dead_Currency : return "Key_Dead_Currency" |
|
if k == TTkK.Key_Dead_a : return "Key_Dead_a" |
|
if k == TTkK.Key_Dead_A : return "Key_Dead_A" |
|
if k == TTkK.Key_Dead_e : return "Key_Dead_e" |
|
if k == TTkK.Key_Dead_E : return "Key_Dead_E" |
|
if k == TTkK.Key_Dead_i : return "Key_Dead_i" |
|
if k == TTkK.Key_Dead_I : return "Key_Dead_I" |
|
if k == TTkK.Key_Dead_o : return "Key_Dead_o" |
|
if k == TTkK.Key_Dead_O : return "Key_Dead_O" |
|
if k == TTkK.Key_Dead_u : return "Key_Dead_u" |
|
if k == TTkK.Key_Dead_U : return "Key_Dead_U" |
|
if k == TTkK.Key_Dead_Small_Schwa : return "Key_Dead_Small_Schwa" |
|
if k == TTkK.Key_Dead_Capital_Schwa : return "Key_Dead_Capital_Schwa" |
|
if k == TTkK.Key_Dead_Greek : return "Key_Dead_Greek" |
|
if k == TTkK.Key_Dead_Lowline : return "Key_Dead_Lowline" |
|
if k == TTkK.Key_Dead_Aboveverticalline : return "Key_Dead_Aboveverticalline" |
|
if k == TTkK.Key_Dead_Belowverticalline : return "Key_Dead_Belowverticalline" |
|
if k == TTkK.Key_Dead_Longsolidusoverlay : return "Key_Dead_Longsolidusoverlay" |
|
if k == TTkK.Key_Back : return "Key_Back" |
|
if k == TTkK.Key_Forward : return "Key_Forward" |
|
if k == TTkK.Key_Stop : return "Key_Stop" |
|
if k == TTkK.Key_Refresh : return "Key_Refresh" |
|
if k == TTkK.Key_VolumeDown : return "Key_VolumeDown" |
|
if k == TTkK.Key_VolumeMute : return "Key_VolumeMute" |
|
if k == TTkK.Key_VolumeUp : return "Key_VolumeUp" |
|
if k == TTkK.Key_BassBoost : return "Key_BassBoost" |
|
if k == TTkK.Key_BassUp : return "Key_BassUp" |
|
if k == TTkK.Key_BassDown : return "Key_BassDown" |
|
if k == TTkK.Key_TrebleUp : return "Key_TrebleUp" |
|
if k == TTkK.Key_TrebleDown : return "Key_TrebleDown" |
|
if k == TTkK.Key_MediaPlay : return "Key_MediaPlay" |
|
if k == TTkK.Key_MediaStop : return "Key_MediaStop" |
|
if k == TTkK.Key_MediaPrevious : return "Key_MediaPrevious" |
|
if k == TTkK.Key_MediaNext : return "Key_MediaNext" |
|
if k == TTkK.Key_MediaRecord : return "Key_MediaRecord" |
|
if k == TTkK.Key_MediaPause : return "Key_MediaPause" |
|
if k == TTkK.Key_MediaTogglePlayPause : return "Key_MediaTogglePlayPause" |
|
if k == TTkK.Key_HomePage : return "Key_HomePage" |
|
if k == TTkK.Key_Favorites : return "Key_Favorites" |
|
if k == TTkK.Key_Search : return "Key_Search" |
|
if k == TTkK.Key_Standby : return "Key_Standby" |
|
if k == TTkK.Key_OpenUrl : return "Key_OpenUrl" |
|
if k == TTkK.Key_LaunchMail : return "Key_LaunchMail" |
|
if k == TTkK.Key_LaunchMedia : return "Key_LaunchMedia" |
|
if k == TTkK.Key_Launch0 : return "Key_Launch0" |
|
if k == TTkK.Key_Launch1 : return "Key_Launch1" |
|
if k == TTkK.Key_Launch2 : return "Key_Launch2" |
|
if k == TTkK.Key_Launch3 : return "Key_Launch3" |
|
if k == TTkK.Key_Launch4 : return "Key_Launch4" |
|
if k == TTkK.Key_Launch5 : return "Key_Launch5" |
|
if k == TTkK.Key_Launch6 : return "Key_Launch6" |
|
if k == TTkK.Key_Launch7 : return "Key_Launch7" |
|
if k == TTkK.Key_Launch8 : return "Key_Launch8" |
|
if k == TTkK.Key_Launch9 : return "Key_Launch9" |
|
if k == TTkK.Key_LaunchA : return "Key_LaunchA" |
|
if k == TTkK.Key_LaunchB : return "Key_LaunchB" |
|
if k == TTkK.Key_LaunchC : return "Key_LaunchC" |
|
if k == TTkK.Key_LaunchD : return "Key_LaunchD" |
|
if k == TTkK.Key_LaunchE : return "Key_LaunchE" |
|
if k == TTkK.Key_LaunchF : return "Key_LaunchF" |
|
if k == TTkK.Key_LaunchG : return "Key_LaunchG" |
|
if k == TTkK.Key_LaunchH : return "Key_LaunchH" |
|
if k == TTkK.Key_MonBrightnessUp : return "Key_MonBrightnessUp" |
|
if k == TTkK.Key_MonBrightnessDown : return "Key_MonBrightnessDown" |
|
if k == TTkK.Key_KeyboardLightOnOff : return "Key_KeyboardLightOnOff" |
|
if k == TTkK.Key_KeyboardBrightnessUp : return "Key_KeyboardBrightnessUp" |
|
if k == TTkK.Key_KeyboardBrightnessDown : return "Key_KeyboardBrightnessDown" |
|
if k == TTkK.Key_PowerOff : return "Key_PowerOff" |
|
if k == TTkK.Key_WakeUp : return "Key_WakeUp" |
|
if k == TTkK.Key_Eject : return "Key_Eject" |
|
if k == TTkK.Key_ScreenSaver : return "Key_ScreenSaver" |
|
if k == TTkK.Key_WWW : return "Key_WWW" |
|
if k == TTkK.Key_Memo : return "Key_Memo" |
|
if k == TTkK.Key_LightBulb : return "Key_LightBulb" |
|
if k == TTkK.Key_Shop : return "Key_Shop" |
|
if k == TTkK.Key_History : return "Key_History" |
|
if k == TTkK.Key_AddFavorite : return "Key_AddFavorite" |
|
if k == TTkK.Key_HotLinks : return "Key_HotLinks" |
|
if k == TTkK.Key_BrightnessAdjust : return "Key_BrightnessAdjust" |
|
if k == TTkK.Key_Finance : return "Key_Finance" |
|
if k == TTkK.Key_Community : return "Key_Community" |
|
if k == TTkK.Key_AudioRewind : return "Key_AudioRewind" |
|
if k == TTkK.Key_BackForward : return "Key_BackForward" |
|
if k == TTkK.Key_ApplicationLeft : return "Key_ApplicationLeft" |
|
if k == TTkK.Key_ApplicationRight : return "Key_ApplicationRight" |
|
if k == TTkK.Key_Book : return "Key_Book" |
|
if k == TTkK.Key_CD : return "Key_CD" |
|
if k == TTkK.Key_Calculator : return "Key_Calculator" |
|
if k == TTkK.Key_ToDoList : return "Key_ToDoList" |
|
if k == TTkK.Key_ClearGrab : return "Key_ClearGrab" |
|
if k == TTkK.Key_Close : return "Key_Close" |
|
if k == TTkK.Key_Copy : return "Key_Copy" |
|
if k == TTkK.Key_Cut : return "Key_Cut" |
|
if k == TTkK.Key_Display : return "Key_Display" |
|
if k == TTkK.Key_DOS : return "Key_DOS" |
|
if k == TTkK.Key_Documents : return "Key_Documents" |
|
if k == TTkK.Key_Excel : return "Key_Excel" |
|
if k == TTkK.Key_Explorer : return "Key_Explorer" |
|
if k == TTkK.Key_Game : return "Key_Game" |
|
if k == TTkK.Key_Go : return "Key_Go" |
|
if k == TTkK.Key_iTouch : return "Key_iTouch" |
|
if k == TTkK.Key_LogOff : return "Key_LogOff" |
|
if k == TTkK.Key_Market : return "Key_Market" |
|
if k == TTkK.Key_Meeting : return "Key_Meeting" |
|
if k == TTkK.Key_MenuKB : return "Key_MenuKB" |
|
if k == TTkK.Key_MenuPB : return "Key_MenuPB" |
|
if k == TTkK.Key_MySites : return "Key_MySites" |
|
if k == TTkK.Key_News : return "Key_News" |
|
if k == TTkK.Key_OfficeHome : return "Key_OfficeHome" |
|
if k == TTkK.Key_Option : return "Key_Option" |
|
if k == TTkK.Key_Paste : return "Key_Paste" |
|
if k == TTkK.Key_Phone : return "Key_Phone" |
|
if k == TTkK.Key_Calendar : return "Key_Calendar" |
|
if k == TTkK.Key_Reply : return "Key_Reply" |
|
if k == TTkK.Key_Reload : return "Key_Reload" |
|
if k == TTkK.Key_RotateWindows : return "Key_RotateWindows" |
|
if k == TTkK.Key_RotationPB : return "Key_RotationPB" |
|
if k == TTkK.Key_RotationKB : return "Key_RotationKB" |
|
if k == TTkK.Key_Save : return "Key_Save" |
|
if k == TTkK.Key_Send : return "Key_Send" |
|
if k == TTkK.Key_Spell : return "Key_Spell" |
|
if k == TTkK.Key_SplitScreen : return "Key_SplitScreen" |
|
if k == TTkK.Key_Support : return "Key_Support" |
|
if k == TTkK.Key_TaskPane : return "Key_TaskPane" |
|
if k == TTkK.Key_Terminal : return "Key_Terminal" |
|
if k == TTkK.Key_Tools : return "Key_Tools" |
|
if k == TTkK.Key_Travel : return "Key_Travel" |
|
if k == TTkK.Key_Video : return "Key_Video" |
|
if k == TTkK.Key_Word : return "Key_Word" |
|
if k == TTkK.Key_Xfer : return "Key_Xfer" |
|
if k == TTkK.Key_ZoomIn : return "Key_ZoomIn" |
|
if k == TTkK.Key_ZoomOut : return "Key_ZoomOut" |
|
if k == TTkK.Key_Away : return "Key_Away" |
|
if k == TTkK.Key_Messenger : return "Key_Messenger" |
|
if k == TTkK.Key_WebCam : return "Key_WebCam" |
|
if k == TTkK.Key_MailForward : return "Key_MailForward" |
|
if k == TTkK.Key_Pictures : return "Key_Pictures" |
|
if k == TTkK.Key_Music : return "Key_Music" |
|
if k == TTkK.Key_Battery : return "Key_Battery" |
|
if k == TTkK.Key_Bluetooth : return "Key_Bluetooth" |
|
if k == TTkK.Key_WLAN : return "Key_WLAN" |
|
if k == TTkK.Key_UWB : return "Key_UWB" |
|
if k == TTkK.Key_AudioForward : return "Key_AudioForward" |
|
if k == TTkK.Key_AudioRepeat : return "Key_AudioRepeat" |
|
if k == TTkK.Key_AudioRandomPlay : return "Key_AudioRandomPlay" |
|
if k == TTkK.Key_Subtitle : return "Key_Subtitle" |
|
if k == TTkK.Key_AudioCycleTrack : return "Key_AudioCycleTrack" |
|
if k == TTkK.Key_Time : return "Key_Time" |
|
if k == TTkK.Key_Hibernate : return "Key_Hibernate" |
|
if k == TTkK.Key_View : return "Key_View" |
|
if k == TTkK.Key_TopMenu : return "Key_TopMenu" |
|
if k == TTkK.Key_PowerDown : return "Key_PowerDown" |
|
if k == TTkK.Key_Suspend : return "Key_Suspend" |
|
if k == TTkK.Key_ContrastAdjust : return "Key_ContrastAdjust" |
|
if k == TTkK.Key_TouchpadToggle : return "Key_TouchpadToggle" |
|
if k == TTkK.Key_TouchpadOn : return "Key_TouchpadOn" |
|
if k == TTkK.Key_TouchpadOff : return "Key_TouchpadOff" |
|
if k == TTkK.Key_MicMute : return "Key_MicMute" |
|
if k == TTkK.Key_Red : return "Key_Red" |
|
if k == TTkK.Key_Green : return "Key_Green" |
|
if k == TTkK.Key_Yellow : return "Key_Yellow" |
|
if k == TTkK.Key_Blue : return "Key_Blue" |
|
if k == TTkK.Key_ChannelUp : return "Key_ChannelUp" |
|
if k == TTkK.Key_ChannelDown : return "Key_ChannelDown" |
|
if k == TTkK.Key_Guide : return "Key_Guide" |
|
if k == TTkK.Key_Info : return "Key_Info" |
|
if k == TTkK.Key_Settings : return "Key_Settings" |
|
if k == TTkK.Key_MicVolumeUp : return "Key_MicVolumeUp" |
|
if k == TTkK.Key_MicVolumeDown : return "Key_MicVolumeDown" |
|
if k == TTkK.Key_New : return "Key_New" |
|
if k == TTkK.Key_Open : return "Key_Open" |
|
if k == TTkK.Key_Find : return "Key_Find" |
|
if k == TTkK.Key_Undo : return "Key_Undo" |
|
if k == TTkK.Key_Redo : return "Key_Redo" |
|
if k == TTkK.Key_MediaLast : return "Key_MediaLast" |
|
if k == TTkK.Key_unknown : return "Key_unknown" |
|
if k == TTkK.Key_Call : return "Key_Call" |
|
if k == TTkK.Key_Camera : return "Key_Camera" |
|
if k == TTkK.Key_CameraFocus : return "Key_CameraFocus" |
|
if k == TTkK.Key_Context1 : return "Key_Context1" |
|
if k == TTkK.Key_Context2 : return "Key_Context2" |
|
if k == TTkK.Key_Context3 : return "Key_Context3" |
|
if k == TTkK.Key_Context4 : return "Key_Context4" |
|
if k == TTkK.Key_Flip : return "Key_Flip" |
|
if k == TTkK.Key_Hangup : return "Key_Hangup" |
|
if k == TTkK.Key_No : return "Key_No" |
|
if k == TTkK.Key_Select : return "Key_Select" |
|
if k == TTkK.Key_Yes : return "Key_Yes" |
|
if k == TTkK.Key_ToggleCallHangup : return "Key_ToggleCallHangup" |
|
if k == TTkK.Key_VoiceDial : return "Key_VoiceDial" |
|
if k == TTkK.Key_LastNumberRedial : return "Key_LastNumberRedial" |
|
if k == TTkK.Key_Execute : return "Key_Execute" |
|
if k == TTkK.Key_Printer : return "Key_Printer" |
|
if k == TTkK.Key_Play : return "Key_Play" |
|
if k == TTkK.Key_Sleep : return "Key_Sleep" |
|
if k == TTkK.Key_Zoom : return "Key_Zoom" |
|
if k == TTkK.Key_Exit : return "Key_Exit" |
|
if k == TTkK.Key_Cancel : return "Key_Cancel" |
|
return "NONE!!!" |