Source code for TermTk.TTkCore.TTkTerm.inputkey

# 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.

__all__ = ['TTkKeyEvent']

from TermTk.TTkCore.constant import TTkK

[docs]class TTkKeyEvent: ''' Keyboard Events :Demo: `test.input.py <https://github.com/ceccopierangiolieugenio/pyTermTk/blob/main/tests/test.input.py>`_ :param type: The key input type recorded :type type: :class:`~TermTk.TTkCore.constant.TTkConstant.KeyType` :param key: the key :type key: str :param code: The terminal code used to represent this input :type code: str :param mod: The modifier used by the :class:`~TermTk.TTkCore.constant.TTkConstant.KeyType.SpecialKey` type :type mod: :class:`~TermTk.TTkCore.constant.TTkConstant.KeyModifier` .. py:attribute:: type :type: KeyType The key input :class:`~TermTk.TTkCore.constant.TTkConstant.KeyType` recorded .. py:attribute:: key :type: str the input key .. py:attribute:: code :type: str The terminal code used to represent this input .. py:attribute:: mod :type: KeyModifier The :class:`~TermTk.TTkCore.constant.TTkConstant.KeyModifier` used by the :class:`~TermTk.TTkCore.constant.TTkConstant.KeyType.SpecialKey` type ''' __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}" def __eq__(self, other): if other is None: return False return ( self.type == other.type and self.key == other.key and self.mod == other.mod ) def __hash__(self) -> int: return hash((self.type,self.key,self.mod)) @staticmethod def parse(input_key): # from: Space except "DEL" if len(input_key) == 1 and "\040" <= input_key != "\177": return TTkKeyEvent(TTkK.Character, input_key, input_key, TTkK.NoModifier) else: key, mod = _translate_key(input_key) if key is not None: return TTkKeyEvent(TTkK.SpecialKey, key, input_key, mod) return None
_translate_key_list = { "\177" : ( TTkK.Key_Backspace , TTkK.NoModifier ) , "\t" : ( TTkK.Key_Tab , TTkK.NoModifier ) , "\033[Z" : ( TTkK.Key_Tab , TTkK.ShiftModifier ) , "\n" : ( TTkK.Key_Enter , TTkK.NoModifier ) , "\r" : ( TTkK.Key_Enter , TTkK.NoModifier ) , "\033[A" : ( TTkK.Key_Up , TTkK.NoModifier ) , "\033[B" : ( TTkK.Key_Down , TTkK.NoModifier ) , "\033[C" : ( TTkK.Key_Right , TTkK.NoModifier ) , "\033[D" : ( TTkK.Key_Left , TTkK.NoModifier ) , "\033[1;2A" : ( TTkK.Key_Up , TTkK.ShiftModifier ) , "\033[1;2B" : ( TTkK.Key_Down , TTkK.ShiftModifier ) , "\033[1;2C" : ( TTkK.Key_Right , TTkK.ShiftModifier ) , "\033[1;2D" : ( TTkK.Key_Left , TTkK.ShiftModifier ) , "\033[1;3A" : ( TTkK.Key_Up , TTkK.AltModifier ) , "\033[1;3B" : ( TTkK.Key_Down , TTkK.AltModifier ) , "\033[1;3C" : ( TTkK.Key_Right , TTkK.AltModifier ) , "\033[1;3D" : ( TTkK.Key_Left , TTkK.AltModifier ) , "\033[1;4A" : ( TTkK.Key_Up , TTkK.AltModifier | TTkK.ShiftModifier ) , "\033[1;4B" : ( TTkK.Key_Down , TTkK.AltModifier | TTkK.ShiftModifier ) , "\033[1;4C" : ( TTkK.Key_Right , TTkK.AltModifier | TTkK.ShiftModifier ) , "\033[1;4D" : ( TTkK.Key_Left , TTkK.AltModifier | TTkK.ShiftModifier ) , "\033[1;5A" : ( TTkK.Key_Up , TTkK.ControlModifier ) , "\033[1;5B" : ( TTkK.Key_Down , TTkK.ControlModifier ) , "\033[1;5C" : ( TTkK.Key_Right , TTkK.ControlModifier ) , "\033[1;5D" : ( TTkK.Key_Left , TTkK.ControlModifier ) , "\033[5~" : ( TTkK.Key_PageUp , TTkK.NoModifier ) , "\033[6~" : ( TTkK.Key_PageDown , TTkK.NoModifier ) , "\033[5;2~" : ( TTkK.Key_PageUp , TTkK.ShiftModifier ) , "\033[6;2~" : ( TTkK.Key_PageDown , TTkK.ShiftModifier ) , "\033[5;3~" : ( TTkK.Key_PageUp , TTkK.AltModifier ) , "\033[6;3~" : ( TTkK.Key_PageDown , TTkK.AltModifier ) , "\033[5;4~" : ( TTkK.Key_PageUp , TTkK.AltModifier | TTkK.ShiftModifier ) , "\033[6;4~" : ( TTkK.Key_PageDown , TTkK.AltModifier | TTkK.ShiftModifier ) , "\033[5;5~" : ( TTkK.Key_PageUp , TTkK.ControlModifier ) , "\033[6;5~" : ( TTkK.Key_PageDown , TTkK.ControlModifier ) , "\033[5;7~" : ( TTkK.Key_PageUp , TTkK.AltModifier | TTkK.ControlModifier ) , "\033[6;7~" : ( TTkK.Key_PageDown , TTkK.AltModifier | TTkK.ControlModifier ) , # Xterm "\033[F" : ( TTkK.Key_End , TTkK.NoModifier ) , "\033[H" : ( TTkK.Key_Home , TTkK.NoModifier ) , # Terminator + tmux "\033[4~" : ( TTkK.Key_End , TTkK.NoModifier ) , "\033[1~" : ( TTkK.Key_Home , TTkK.NoModifier ) , "\033[2~" : ( TTkK.Key_Insert , TTkK.NoModifier ) , "\033[3~" : ( TTkK.Key_Delete , TTkK.NoModifier ) , "\033[1;2F" : ( TTkK.Key_End , TTkK.ShiftModifier ) , "\033[1;2H" : ( TTkK.Key_Home , TTkK.ShiftModifier ) , "\033[2;2~" : ( TTkK.Key_Insert , TTkK.ShiftModifier ) , "\033[3;2~" : ( TTkK.Key_Delete , TTkK.ShiftModifier ) , "\033[1;3F" : ( TTkK.Key_End , TTkK.AltModifier ) , "\033[1;3H" : ( TTkK.Key_Home , TTkK.AltModifier ) , "\033[2;3~" : ( TTkK.Key_Insert , TTkK.AltModifier ) , "\033[3;3~" : ( TTkK.Key_Delete , TTkK.AltModifier ) , "\033[1;4F" : ( TTkK.Key_End , TTkK.ShiftModifier | TTkK.AltModifier ) , "\033[1;4H" : ( TTkK.Key_Home , TTkK.ShiftModifier | TTkK.AltModifier ) , "\033[2;4~" : ( TTkK.Key_Insert , TTkK.ShiftModifier | TTkK.AltModifier ) , "\033[3;4~" : ( TTkK.Key_Delete , TTkK.ShiftModifier | TTkK.AltModifier ) , "\033[1;5F" : ( TTkK.Key_End , TTkK.ControlModifier ) , "\033[1;5H" : ( TTkK.Key_Home , TTkK.ControlModifier ) , "\033[2;5~" : ( TTkK.Key_Insert , TTkK.ControlModifier ) , "\033[3;5~" : ( TTkK.Key_Delete , TTkK.ControlModifier ) , "\033[1;6F" : ( TTkK.Key_End , TTkK.ShiftModifier | TTkK.ControlModifier) , "\033[1;6H" : ( TTkK.Key_Home , TTkK.ShiftModifier | TTkK.ControlModifier) , "\033[2;6~" : ( TTkK.Key_Insert , TTkK.ShiftModifier | TTkK.ControlModifier) , "\033[3;6~" : ( TTkK.Key_Delete , TTkK.ShiftModifier | TTkK.ControlModifier) , "\033[1;7F" : ( TTkK.Key_End , TTkK.AltModifier | TTkK.ControlModifier) , "\033[1;7H" : ( TTkK.Key_Home , TTkK.AltModifier | TTkK.ControlModifier) , "\033[2;7~" : ( TTkK.Key_Insert , TTkK.AltModifier | TTkK.ControlModifier) , "\033[3;7~" : ( TTkK.Key_Delete , TTkK.AltModifier | TTkK.ControlModifier) , "\033[1;8F" : ( TTkK.Key_End , TTkK.ShiftModifier | TTkK.AltModifier | TTkK.ControlModifier) , "\033[1;8H" : ( TTkK.Key_Home , TTkK.ShiftModifier | TTkK.AltModifier | TTkK.ControlModifier) , "\033[2;8~" : ( TTkK.Key_Insert , TTkK.ShiftModifier | TTkK.AltModifier | TTkK.ControlModifier) , "\033[3;8~" : ( TTkK.Key_Delete , TTkK.ShiftModifier | TTkK.AltModifier | TTkK.ControlModifier) , "\033" : ( TTkK.Key_Escape , TTkK.NoModifier ) , # Function Key "\033OP" : ( TTkK.Key_F1 , TTkK.NoModifier ) , "\033OQ" : ( TTkK.Key_F2 , TTkK.NoModifier ) , "\033OR" : ( TTkK.Key_F3 , TTkK.NoModifier ) , "\033OS" : ( TTkK.Key_F4 , TTkK.NoModifier ) , "\033[15~" : ( TTkK.Key_F5 , TTkK.NoModifier ) , "\033[17~" : ( TTkK.Key_F6 , TTkK.NoModifier ) , "\033[18~" : ( TTkK.Key_F7 , TTkK.NoModifier ) , "\033[19~" : ( TTkK.Key_F8 , TTkK.NoModifier ) , "\033[20~" : ( TTkK.Key_F9 , TTkK.NoModifier ) , "\033[21~" : ( TTkK.Key_F10 , TTkK.NoModifier ) , "\033[23~" : ( TTkK.Key_F11 , TTkK.NoModifier ) , "\033[24~" : ( TTkK.Key_F12 , TTkK.NoModifier ) , "\033[1;2P" : ( TTkK.Key_F1 , TTkK.ShiftModifier ) , "\033[1;2Q" : ( TTkK.Key_F2 , TTkK.ShiftModifier ) , "\033[1;2R" : ( TTkK.Key_F3 , TTkK.ShiftModifier ) , "\033[1;2S" : ( TTkK.Key_F4 , TTkK.ShiftModifier ) , "\033[15;2~": ( TTkK.Key_F5 , TTkK.ShiftModifier ) , "\033[17;2~": ( TTkK.Key_F6 , TTkK.ShiftModifier ) , "\033[18;2~": ( TTkK.Key_F7 , TTkK.ShiftModifier ) , "\033[19;2~": ( TTkK.Key_F8 , TTkK.ShiftModifier ) , "\033[20;2~": ( TTkK.Key_F9 , TTkK.ShiftModifier ) , "\033[21;2~": ( TTkK.Key_F10 , TTkK.ShiftModifier ) , "\033[23;2~": ( TTkK.Key_F11 , TTkK.ShiftModifier ) , "\033[24;2~": ( TTkK.Key_F12 , TTkK.ShiftModifier ) , "\033[1;5P" : ( TTkK.Key_F1 , TTkK.ControlModifier ) , "\033[1;5Q" : ( TTkK.Key_F2 , TTkK.ControlModifier ) , "\033[1;5R" : ( TTkK.Key_F3 , TTkK.ControlModifier ) , "\033[1;5S" : ( TTkK.Key_F4 , TTkK.ControlModifier ) , "\033[15;5~": ( TTkK.Key_F5 , TTkK.ControlModifier ) , "\033[17;5~": ( TTkK.Key_F6 , TTkK.ControlModifier ) , "\033[18;5~": ( TTkK.Key_F7 , TTkK.ControlModifier ) , "\033[19;5~": ( TTkK.Key_F8 , TTkK.ControlModifier ) , "\033[20;5~": ( TTkK.Key_F9 , TTkK.ControlModifier ) , "\033[21;5~": ( TTkK.Key_F10 , TTkK.ControlModifier ) , "\033[23;5~": ( TTkK.Key_F11 , TTkK.ControlModifier ) , "\033[24;5~": ( TTkK.Key_F12 , TTkK.ControlModifier ) , # "\033[1;3P" : ( TTkK.Key_F1 , TTkK.AltModifier ) , # "\033[1;3Q" : ( TTkK.Key_F2 , TTkK.AltModifier ) , "\033[1;3R" : ( TTkK.Key_F3 , TTkK.AltModifier ) , # "\033[1;3S" : ( TTkK.Key_F4 , TTkK.AltModifier ) , # "\033[15;3~": ( TTkK.Key_F5 , TTkK.AltModifier ) , "\033[17;3~": ( TTkK.Key_F6 , TTkK.AltModifier ) , # "\033[18;3~": ( TTkK.Key_F7 , TTkK.AltModifier ) , # "\033[19;3~": ( TTkK.Key_F8 , TTkK.AltModifier ) , "\033[20;3~": ( TTkK.Key_F9 , TTkK.AltModifier ) , # "\033[21;3~": ( TTkK.Key_F10 , TTkK.AltModifier ) , "\033[23;3~": ( TTkK.Key_F11 , TTkK.AltModifier ) , "\033[24;3~": ( TTkK.Key_F12 , TTkK.AltModifier ) , '\x01': ( TTkK.Key_A , TTkK.ControlModifier ), '\x02': ( TTkK.Key_B , TTkK.ControlModifier ), '\x03': ( TTkK.Key_C , TTkK.ControlModifier ), '\x04': ( TTkK.Key_D , TTkK.ControlModifier ), '\x05': ( TTkK.Key_E , TTkK.ControlModifier ), '\x06': ( TTkK.Key_F , TTkK.ControlModifier ), '\x07': ( TTkK.Key_G , TTkK.ControlModifier ), '\x08': ( TTkK.Key_H , TTkK.ControlModifier ), # '\x09': ( TTkK.Key_I , TTkK.ControlModifier ), # Tab = '\t' = 0x09 '\x0a': ( TTkK.Key_J , TTkK.ControlModifier ), # Enter = '\n' = 0x0a '\x0b': ( TTkK.Key_K , TTkK.ControlModifier ), '\x0c': ( TTkK.Key_L , TTkK.ControlModifier ), # '\x0d': ( TTkK.Key_M , TTkK.ControlModifier ), # Enter = '\r' = 0x0d '\x0e': ( TTkK.Key_N , TTkK.ControlModifier ), '\x0f': ( TTkK.Key_O , TTkK.ControlModifier ), '\x10': ( TTkK.Key_P , TTkK.ControlModifier ), '\x11': ( TTkK.Key_Q , TTkK.ControlModifier ), '\x12': ( TTkK.Key_R , TTkK.ControlModifier ), '\x13': ( TTkK.Key_S , TTkK.ControlModifier ), '\x14': ( TTkK.Key_T , TTkK.ControlModifier ), '\x15': ( TTkK.Key_U , TTkK.ControlModifier ), '\x16': ( TTkK.Key_V , TTkK.ControlModifier ), '\x17': ( TTkK.Key_W , TTkK.ControlModifier ), '\x18': ( TTkK.Key_X , TTkK.ControlModifier ), '\x19': ( TTkK.Key_Y , TTkK.ControlModifier ), '\x1a': ( TTkK.Key_Z , TTkK.ControlModifier ), '\033\x61': ( TTkK.Key_A , TTkK.AltModifier ), '\033\x62': ( TTkK.Key_B , TTkK.AltModifier ), '\033\x63': ( TTkK.Key_C , TTkK.AltModifier ), '\033\x64': ( TTkK.Key_D , TTkK.AltModifier ), '\033\x65': ( TTkK.Key_E , TTkK.AltModifier ), '\033\x66': ( TTkK.Key_F , TTkK.AltModifier ), '\033\x67': ( TTkK.Key_G , TTkK.AltModifier ), '\033\x68': ( TTkK.Key_H , TTkK.AltModifier ), '\033\x69': ( TTkK.Key_I , TTkK.AltModifier ), '\033\x6a': ( TTkK.Key_J , TTkK.AltModifier ), '\033\x6b': ( TTkK.Key_K , TTkK.AltModifier ), '\033\x6c': ( TTkK.Key_L , TTkK.AltModifier ), '\033\x6d': ( TTkK.Key_M , TTkK.AltModifier ), '\033\x6e': ( TTkK.Key_N , TTkK.AltModifier ), '\033\x6f': ( TTkK.Key_O , TTkK.AltModifier ), '\033\x70': ( TTkK.Key_P , TTkK.AltModifier ), '\033\x71': ( TTkK.Key_Q , TTkK.AltModifier ), '\033\x72': ( TTkK.Key_R , TTkK.AltModifier ), '\033\x73': ( TTkK.Key_S , TTkK.AltModifier ), '\033\x74': ( TTkK.Key_T , TTkK.AltModifier ), '\033\x75': ( TTkK.Key_U , TTkK.AltModifier ), '\033\x76': ( TTkK.Key_V , TTkK.AltModifier ), '\033\x77': ( TTkK.Key_W , TTkK.AltModifier ), '\033\x78': ( TTkK.Key_X , TTkK.AltModifier ), '\033\x79': ( TTkK.Key_Y , TTkK.AltModifier ), '\033\x7a': ( TTkK.Key_Z , TTkK.AltModifier ), '\033\x41': ( TTkK.Key_A , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x42': ( TTkK.Key_B , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x43': ( TTkK.Key_C , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x44': ( TTkK.Key_D , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x45': ( TTkK.Key_E , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x46': ( TTkK.Key_F , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x47': ( TTkK.Key_G , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x48': ( TTkK.Key_H , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x49': ( TTkK.Key_I , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x4a': ( TTkK.Key_J , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x4b': ( TTkK.Key_K , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x4c': ( TTkK.Key_L , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x4d': ( TTkK.Key_M , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x4e': ( TTkK.Key_N , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x4f': ( TTkK.Key_O , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x50': ( TTkK.Key_P , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x51': ( TTkK.Key_Q , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x52': ( TTkK.Key_R , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x53': ( TTkK.Key_S , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x54': ( TTkK.Key_T , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x55': ( TTkK.Key_U , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x56': ( TTkK.Key_V , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x57': ( TTkK.Key_W , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x58': ( TTkK.Key_X , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x59': ( TTkK.Key_Y , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x5a': ( TTkK.Key_Z , TTkK.AltModifier | TTkK.ShiftModifier ), '\033\x01': ( TTkK.Key_A , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x02': ( TTkK.Key_B , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x03': ( TTkK.Key_C , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x04': ( TTkK.Key_D , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x05': ( TTkK.Key_E , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x06': ( TTkK.Key_F , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x07': ( TTkK.Key_G , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x08': ( TTkK.Key_H , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x09': ( TTkK.Key_I , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x0a': ( TTkK.Key_J , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x0b': ( TTkK.Key_K , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x0c': ( TTkK.Key_L , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x0d': ( TTkK.Key_M , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x0e': ( TTkK.Key_N , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x0f': ( TTkK.Key_O , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x10': ( TTkK.Key_P , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x11': ( TTkK.Key_Q , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x12': ( TTkK.Key_R , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x13': ( TTkK.Key_S , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x14': ( TTkK.Key_T , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x15': ( TTkK.Key_U , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x16': ( TTkK.Key_V , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x17': ( TTkK.Key_W , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x18': ( TTkK.Key_X , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x19': ( TTkK.Key_Y , TTkK.ControlModifier | TTkK.AltModifier ), '\033\x1a': ( TTkK.Key_Z , TTkK.ControlModifier | TTkK.AltModifier ), # # "\033": return( ey_Tab ) , # if True: return None # "\033": return( ey_Backtab ) , # "\033": return( ey_Backspace ) , # "\033": return( ey_Return ) , # "\033": return( ey_Enter ) , # "\033": return( ey_Pause ) , # "\033": return( ey_Print ) , # "\033": return( ey_SysReq ) , # "\033": return( ey_Clear ) , # "\033": return( ey_Shift ) , # "\033": return( ey_Control ) , # "\033": return( ey_Meta ) , # "\033": return( ey_Alt ) , # "\033": return( ey_AltGr ) , # "\033": return( ey_CapsLock ) , # "\033": return( ey_NumLock ) , # "\033": return( ey_ScrollLock ) , # "\033": return( ey_F13 ) , # "\033": return( ey_F14 ) , # "\033": return( ey_F15 ) , # "\033": return( ey_F16 ) , # "\033": return( ey_F17 ) , # "\033": return( ey_F18 ) , # "\033": return( ey_F19 ) , # "\033": return( ey_F20 ) , # "\033": return( ey_F21 ) , # "\033": return( ey_F22 ) , # "\033": return( ey_F23 ) , # "\033": return( ey_F24 ) , # "\033": return( ey_F25 ) , # "\033": return( ey_F26 ) , # "\033": return( ey_F27 ) , # "\033": return( ey_F28 ) , # "\033": return( ey_F29 ) , # "\033": return( ey_F30 ) , # "\033": return( ey_F31 ) , # "\033": return( ey_F32 ) , # "\033": return( ey_F33 ) , # "\033": return( ey_F34 ) , # "\033": return( ey_F35 ) , # "\033": return( ey_Super_L ) , # "\033": return( ey_Super_R ) , # "\033": return( ey_Menu ) , # "\033": return( ey_Hyper_L ) , # "\033": return( ey_Hyper_R ) , # "\033": return( ey_Help ) , # "\033": return( ey_Direction_L ) , # "\033": return( ey_Direction_R ) , # "\033": return( ey_Space ) , # "\033": return( ey_Any ) , # return TTkK.NONE } def _translate_key(key): return _translate_key_list.get(key,(None, None)) def mod2str(k): if k == TTkK.NoModifier : return "" ret = [] if k & TTkK.ShiftModifier : ret.append("Shift") if k & TTkK.ControlModifier : ret.append("Control") if k & TTkK.AltModifier : ret.append("Alt") if k & TTkK.MetaModifier : ret.append("Meta") if k & TTkK.KeypadModifier : ret.append("Keypad") if k & TTkK.GroupSwitchModifier : ret.append("GroupSwitch") if ret: return ",".join(ret) return "NONE!!!" def key2str(k): return { TTkK.Key_Escape : "Key_Escape" , TTkK.Key_Tab : "Key_Tab" , TTkK.Key_Backtab : "Key_Backtab" , TTkK.Key_Backspace : "Key_Backspace" , TTkK.Key_Return : "Key_Return" , TTkK.Key_Enter : "Key_Enter" , TTkK.Key_Insert : "Key_Insert" , TTkK.Key_Delete : "Key_Delete" , TTkK.Key_Pause : "Key_Pause" , TTkK.Key_Print : "Key_Print" , TTkK.Key_SysReq : "Key_SysReq" , TTkK.Key_Clear : "Key_Clear" , TTkK.Key_Home : "Key_Home" , TTkK.Key_End : "Key_End" , TTkK.Key_Left : "Key_Left" , TTkK.Key_Up : "Key_Up" , TTkK.Key_Right : "Key_Right" , TTkK.Key_Down : "Key_Down" , TTkK.Key_PageUp : "Key_PageUp" , TTkK.Key_PageDown : "Key_PageDown" , TTkK.Key_Shift : "Key_Shift" , TTkK.Key_Control : "Key_Control" , TTkK.Key_Meta : "Key_Meta" , TTkK.Key_Alt : "Key_Alt" , TTkK.Key_AltGr : "Key_AltGr" , TTkK.Key_CapsLock : "Key_CapsLock" , TTkK.Key_NumLock : "Key_NumLock" , TTkK.Key_ScrollLock : "Key_ScrollLock" , TTkK.Key_F1 : "Key_F1" , TTkK.Key_F2 : "Key_F2" , TTkK.Key_F3 : "Key_F3" , TTkK.Key_F4 : "Key_F4" , TTkK.Key_F5 : "Key_F5" , TTkK.Key_F6 : "Key_F6" , TTkK.Key_F7 : "Key_F7" , TTkK.Key_F8 : "Key_F8" , TTkK.Key_F9 : "Key_F9" , TTkK.Key_F10 : "Key_F10" , TTkK.Key_F11 : "Key_F11" , TTkK.Key_F12 : "Key_F12" , TTkK.Key_F13 : "Key_F13" , TTkK.Key_F14 : "Key_F14" , TTkK.Key_F15 : "Key_F15" , TTkK.Key_F16 : "Key_F16" , TTkK.Key_F17 : "Key_F17" , TTkK.Key_F18 : "Key_F18" , TTkK.Key_F19 : "Key_F19" , TTkK.Key_F20 : "Key_F20" , TTkK.Key_F21 : "Key_F21" , TTkK.Key_F22 : "Key_F22" , TTkK.Key_F23 : "Key_F23" , TTkK.Key_F24 : "Key_F24" , TTkK.Key_F25 : "Key_F25" , TTkK.Key_F26 : "Key_F26" , TTkK.Key_F27 : "Key_F27" , TTkK.Key_F28 : "Key_F28" , TTkK.Key_F29 : "Key_F29" , TTkK.Key_F30 : "Key_F30" , TTkK.Key_F31 : "Key_F31" , TTkK.Key_F32 : "Key_F32" , TTkK.Key_F33 : "Key_F33" , TTkK.Key_F34 : "Key_F34" , TTkK.Key_F35 : "Key_F35" , TTkK.Key_Super_L : "Key_Super_L" , TTkK.Key_Super_R : "Key_Super_R" , TTkK.Key_Menu : "Key_Menu" , TTkK.Key_Hyper_L : "Key_Hyper_L" , TTkK.Key_Hyper_R : "Key_Hyper_R" , TTkK.Key_Help : "Key_Help" , TTkK.Key_Direction_L : "Key_Direction_L" , TTkK.Key_Direction_R : "Key_Direction_R" , TTkK.Key_Space : "Key_Space" , TTkK.Key_Any : "Key_Any" , TTkK.Key_Space : "Key_Space" , TTkK.Key_Exclam : "Key_Exclam" , TTkK.Key_QuoteDbl : "Key_QuoteDbl" , TTkK.Key_NumberSign : "Key_NumberSign" , TTkK.Key_Dollar : "Key_Dollar" , TTkK.Key_Percent : "Key_Percent" , TTkK.Key_Ampersand : "Key_Ampersand" , TTkK.Key_Apostrophe : "Key_Apostrophe" , TTkK.Key_ParenLeft : "Key_ParenLeft" , TTkK.Key_ParenRight : "Key_ParenRight" , TTkK.Key_Asterisk : "Key_Asterisk" , TTkK.Key_Plus : "Key_Plus" , TTkK.Key_Comma : "Key_Comma" , TTkK.Key_Minus : "Key_Minus" , TTkK.Key_Period : "Key_Period" , TTkK.Key_Slash : "Key_Slash" , TTkK.Key_0 : "Key_0" , TTkK.Key_1 : "Key_1" , TTkK.Key_2 : "Key_2" , TTkK.Key_3 : "Key_3" , TTkK.Key_4 : "Key_4" , TTkK.Key_5 : "Key_5" , TTkK.Key_6 : "Key_6" , TTkK.Key_7 : "Key_7" , TTkK.Key_8 : "Key_8" , TTkK.Key_9 : "Key_9" , TTkK.Key_Colon : "Key_Colon" , TTkK.Key_Semicolon : "Key_Semicolon" , TTkK.Key_Less : "Key_Less" , TTkK.Key_Equal : "Key_Equal" , TTkK.Key_Greater : "Key_Greater" , TTkK.Key_Question : "Key_Question" , TTkK.Key_At : "Key_At" , TTkK.Key_A : "Key_A" , TTkK.Key_B : "Key_B" , TTkK.Key_C : "Key_C" , TTkK.Key_D : "Key_D" , TTkK.Key_E : "Key_E" , TTkK.Key_F : "Key_F" , TTkK.Key_G : "Key_G" , TTkK.Key_H : "Key_H" , TTkK.Key_I : "Key_I" , TTkK.Key_J : "Key_J" , TTkK.Key_K : "Key_K" , TTkK.Key_L : "Key_L" , TTkK.Key_M : "Key_M" , TTkK.Key_N : "Key_N" , TTkK.Key_O : "Key_O" , TTkK.Key_P : "Key_P" , TTkK.Key_Q : "Key_Q" , TTkK.Key_R : "Key_R" , TTkK.Key_S : "Key_S" , TTkK.Key_T : "Key_T" , TTkK.Key_U : "Key_U" , TTkK.Key_V : "Key_V" , TTkK.Key_W : "Key_W" , TTkK.Key_X : "Key_X" , TTkK.Key_Y : "Key_Y" , TTkK.Key_Z : "Key_Z" , TTkK.Key_BracketLeft : "Key_BracketLeft" , TTkK.Key_Backslash : "Key_Backslash" , TTkK.Key_BracketRight : "Key_BracketRight" , TTkK.Key_AsciiCircum : "Key_AsciiCircum" , TTkK.Key_Underscore : "Key_Underscore" , TTkK.Key_QuoteLeft : "Key_QuoteLeft" , TTkK.Key_BraceLeft : "Key_BraceLeft" , TTkK.Key_Bar : "Key_Bar" , TTkK.Key_BraceRight : "Key_BraceRight" , TTkK.Key_AsciiTilde : "Key_AsciiTilde" , TTkK.Key_nobreakspace : "Key_nobreakspace" , TTkK.Key_exclamdown : "Key_exclamdown" , TTkK.Key_cent : "Key_cent" , TTkK.Key_sterling : "Key_sterling" , TTkK.Key_currency : "Key_currency" , TTkK.Key_yen : "Key_yen" , TTkK.Key_brokenbar : "Key_brokenbar" , TTkK.Key_section : "Key_section" , TTkK.Key_diaeresis : "Key_diaeresis" , TTkK.Key_copyright : "Key_copyright" , TTkK.Key_ordfeminine : "Key_ordfeminine" , TTkK.Key_guillemotleft : "Key_guillemotleft" , TTkK.Key_notsign : "Key_notsign" , TTkK.Key_hyphen : "Key_hyphen" , TTkK.Key_registered : "Key_registered" , TTkK.Key_macron : "Key_macron" , TTkK.Key_degree : "Key_degree" , TTkK.Key_plusminus : "Key_plusminus" , TTkK.Key_twosuperior : "Key_twosuperior" , TTkK.Key_threesuperior : "Key_threesuperior" , TTkK.Key_acute : "Key_acute" , TTkK.Key_mu : "Key_mu" , TTkK.Key_paragraph : "Key_paragraph" , TTkK.Key_periodcentered : "Key_periodcentered" , TTkK.Key_cedilla : "Key_cedilla" , TTkK.Key_onesuperior : "Key_onesuperior" , TTkK.Key_masculine : "Key_masculine" , TTkK.Key_guillemotright : "Key_guillemotright" , TTkK.Key_onequarter : "Key_onequarter" , TTkK.Key_onehalf : "Key_onehalf" , TTkK.Key_threequarters : "Key_threequarters" , TTkK.Key_questiondown : "Key_questiondown" , TTkK.Key_Agrave : "Key_Agrave" , TTkK.Key_Aacute : "Key_Aacute" , TTkK.Key_Acircumflex : "Key_Acircumflex" , TTkK.Key_Atilde : "Key_Atilde" , TTkK.Key_Adiaeresis : "Key_Adiaeresis" , TTkK.Key_Aring : "Key_Aring" , TTkK.Key_AE : "Key_AE" , TTkK.Key_Ccedilla : "Key_Ccedilla" , TTkK.Key_Egrave : "Key_Egrave" , TTkK.Key_Eacute : "Key_Eacute" , TTkK.Key_Ecircumflex : "Key_Ecircumflex" , TTkK.Key_Ediaeresis : "Key_Ediaeresis" , TTkK.Key_Igrave : "Key_Igrave" , TTkK.Key_Iacute : "Key_Iacute" , TTkK.Key_Icircumflex : "Key_Icircumflex" , TTkK.Key_Idiaeresis : "Key_Idiaeresis" , TTkK.Key_ETH : "Key_ETH" , TTkK.Key_Ntilde : "Key_Ntilde" , TTkK.Key_Ograve : "Key_Ograve" , TTkK.Key_Oacute : "Key_Oacute" , TTkK.Key_Ocircumflex : "Key_Ocircumflex" , TTkK.Key_Otilde : "Key_Otilde" , TTkK.Key_Odiaeresis : "Key_Odiaeresis" , TTkK.Key_multiply : "Key_multiply" , TTkK.Key_Ooblique : "Key_Ooblique" , TTkK.Key_Ugrave : "Key_Ugrave" , TTkK.Key_Uacute : "Key_Uacute" , TTkK.Key_Ucircumflex : "Key_Ucircumflex" , TTkK.Key_Udiaeresis : "Key_Udiaeresis" , TTkK.Key_Yacute : "Key_Yacute" , TTkK.Key_THORN : "Key_THORN" , TTkK.Key_ssharp : "Key_ssharp" , TTkK.Key_division : "Key_division" , TTkK.Key_ydiaeresis : "Key_ydiaeresis" , TTkK.Key_Multi_key : "Key_Multi_key" , TTkK.Key_Codeinput : "Key_Codeinput" , TTkK.Key_SingleCandidate : "Key_SingleCandidate" , TTkK.Key_MultipleCandidate : "Key_MultipleCandidate" , TTkK.Key_PreviousCandidate : "Key_PreviousCandidate" , TTkK.Key_Mode_switch : "Key_Mode_switch" , TTkK.Key_Kanji : "Key_Kanji" , TTkK.Key_Muhenkan : "Key_Muhenkan" , TTkK.Key_Henkan : "Key_Henkan" , TTkK.Key_Romaji : "Key_Romaji" , TTkK.Key_Hiragana : "Key_Hiragana" , TTkK.Key_Katakana : "Key_Katakana" , TTkK.Key_Hiragana_Katakana : "Key_Hiragana_Katakana" , TTkK.Key_Zenkaku : "Key_Zenkaku" , TTkK.Key_Hankaku : "Key_Hankaku" , TTkK.Key_Zenkaku_Hankaku : "Key_Zenkaku_Hankaku" , TTkK.Key_Touroku : "Key_Touroku" , TTkK.Key_Massyo : "Key_Massyo" , TTkK.Key_Kana_Lock : "Key_Kana_Lock" , TTkK.Key_Kana_Shift : "Key_Kana_Shift" , TTkK.Key_Eisu_Shift : "Key_Eisu_Shift" , TTkK.Key_Eisu_toggle : "Key_Eisu_toggle" , TTkK.Key_Hangul : "Key_Hangul" , TTkK.Key_Hangul_Start : "Key_Hangul_Start" , TTkK.Key_Hangul_End : "Key_Hangul_End" , TTkK.Key_Hangul_Hanja : "Key_Hangul_Hanja" , TTkK.Key_Hangul_Jamo : "Key_Hangul_Jamo" , TTkK.Key_Hangul_Romaja : "Key_Hangul_Romaja" , TTkK.Key_Hangul_Jeonja : "Key_Hangul_Jeonja" , TTkK.Key_Hangul_Banja : "Key_Hangul_Banja" , TTkK.Key_Hangul_PreHanja : "Key_Hangul_PreHanja" , TTkK.Key_Hangul_PostHanja : "Key_Hangul_PostHanja" , TTkK.Key_Hangul_Special : "Key_Hangul_Special" , TTkK.Key_Dead_Grave : "Key_Dead_Grave" , TTkK.Key_Dead_Acute : "Key_Dead_Acute" , TTkK.Key_Dead_Circumflex : "Key_Dead_Circumflex" , TTkK.Key_Dead_Tilde : "Key_Dead_Tilde" , TTkK.Key_Dead_Macron : "Key_Dead_Macron" , TTkK.Key_Dead_Breve : "Key_Dead_Breve" , TTkK.Key_Dead_Abovedot : "Key_Dead_Abovedot" , TTkK.Key_Dead_Diaeresis : "Key_Dead_Diaeresis" , TTkK.Key_Dead_Abovering : "Key_Dead_Abovering" , TTkK.Key_Dead_Doubleacute : "Key_Dead_Doubleacute" , TTkK.Key_Dead_Caron : "Key_Dead_Caron" , TTkK.Key_Dead_Cedilla : "Key_Dead_Cedilla" , TTkK.Key_Dead_Ogonek : "Key_Dead_Ogonek" , TTkK.Key_Dead_Iota : "Key_Dead_Iota" , TTkK.Key_Dead_Voiced_Sound : "Key_Dead_Voiced_Sound" , TTkK.Key_Dead_Semivoiced_Sound : "Key_Dead_Semivoiced_Sound" , TTkK.Key_Dead_Belowdot : "Key_Dead_Belowdot" , TTkK.Key_Dead_Hook : "Key_Dead_Hook" , TTkK.Key_Dead_Horn : "Key_Dead_Horn" , TTkK.Key_Dead_Stroke : "Key_Dead_Stroke" , TTkK.Key_Dead_Abovecomma : "Key_Dead_Abovecomma" , TTkK.Key_Dead_Abovereversedcomma : "Key_Dead_Abovereversedcomma" , TTkK.Key_Dead_Doublegrave : "Key_Dead_Doublegrave" , TTkK.Key_Dead_Belowring : "Key_Dead_Belowring" , TTkK.Key_Dead_Belowmacron : "Key_Dead_Belowmacron" , TTkK.Key_Dead_Belowcircumflex : "Key_Dead_Belowcircumflex" , TTkK.Key_Dead_Belowtilde : "Key_Dead_Belowtilde" , TTkK.Key_Dead_Belowbreve : "Key_Dead_Belowbreve" , TTkK.Key_Dead_Belowdiaeresis : "Key_Dead_Belowdiaeresis" , TTkK.Key_Dead_Invertedbreve : "Key_Dead_Invertedbreve" , TTkK.Key_Dead_Belowcomma : "Key_Dead_Belowcomma" , TTkK.Key_Dead_Currency : "Key_Dead_Currency" , TTkK.Key_Dead_a : "Key_Dead_a" , TTkK.Key_Dead_A : "Key_Dead_A" , TTkK.Key_Dead_e : "Key_Dead_e" , TTkK.Key_Dead_E : "Key_Dead_E" , TTkK.Key_Dead_i : "Key_Dead_i" , TTkK.Key_Dead_I : "Key_Dead_I" , TTkK.Key_Dead_o : "Key_Dead_o" , TTkK.Key_Dead_O : "Key_Dead_O" , TTkK.Key_Dead_u : "Key_Dead_u" , TTkK.Key_Dead_U : "Key_Dead_U" , TTkK.Key_Dead_Small_Schwa : "Key_Dead_Small_Schwa" , TTkK.Key_Dead_Capital_Schwa : "Key_Dead_Capital_Schwa" , TTkK.Key_Dead_Greek : "Key_Dead_Greek" , TTkK.Key_Dead_Lowline : "Key_Dead_Lowline" , TTkK.Key_Dead_Aboveverticalline : "Key_Dead_Aboveverticalline" , TTkK.Key_Dead_Belowverticalline : "Key_Dead_Belowverticalline" , TTkK.Key_Dead_Longsolidusoverlay : "Key_Dead_Longsolidusoverlay" , TTkK.Key_Back : "Key_Back" , TTkK.Key_Forward : "Key_Forward" , TTkK.Key_Stop : "Key_Stop" , TTkK.Key_Refresh : "Key_Refresh" , TTkK.Key_VolumeDown : "Key_VolumeDown" , TTkK.Key_VolumeMute : "Key_VolumeMute" , TTkK.Key_VolumeUp : "Key_VolumeUp" , TTkK.Key_BassBoost : "Key_BassBoost" , TTkK.Key_BassUp : "Key_BassUp" , TTkK.Key_BassDown : "Key_BassDown" , TTkK.Key_TrebleUp : "Key_TrebleUp" , TTkK.Key_TrebleDown : "Key_TrebleDown" , TTkK.Key_MediaPlay : "Key_MediaPlay" , TTkK.Key_MediaStop : "Key_MediaStop" , TTkK.Key_MediaPrevious : "Key_MediaPrevious" , TTkK.Key_MediaNext : "Key_MediaNext" , TTkK.Key_MediaRecord : "Key_MediaRecord" , TTkK.Key_MediaPause : "Key_MediaPause" , TTkK.Key_MediaTogglePlayPause : "Key_MediaTogglePlayPause" , TTkK.Key_HomePage : "Key_HomePage" , TTkK.Key_Favorites : "Key_Favorites" , TTkK.Key_Search : "Key_Search" , TTkK.Key_Standby : "Key_Standby" , TTkK.Key_OpenUrl : "Key_OpenUrl" , TTkK.Key_LaunchMail : "Key_LaunchMail" , TTkK.Key_LaunchMedia : "Key_LaunchMedia" , TTkK.Key_Launch0 : "Key_Launch0" , TTkK.Key_Launch1 : "Key_Launch1" , TTkK.Key_Launch2 : "Key_Launch2" , TTkK.Key_Launch3 : "Key_Launch3" , TTkK.Key_Launch4 : "Key_Launch4" , TTkK.Key_Launch5 : "Key_Launch5" , TTkK.Key_Launch6 : "Key_Launch6" , TTkK.Key_Launch7 : "Key_Launch7" , TTkK.Key_Launch8 : "Key_Launch8" , TTkK.Key_Launch9 : "Key_Launch9" , TTkK.Key_LaunchA : "Key_LaunchA" , TTkK.Key_LaunchB : "Key_LaunchB" , TTkK.Key_LaunchC : "Key_LaunchC" , TTkK.Key_LaunchD : "Key_LaunchD" , TTkK.Key_LaunchE : "Key_LaunchE" , TTkK.Key_LaunchF : "Key_LaunchF" , TTkK.Key_LaunchG : "Key_LaunchG" , TTkK.Key_LaunchH : "Key_LaunchH" , TTkK.Key_MonBrightnessUp : "Key_MonBrightnessUp" , TTkK.Key_MonBrightnessDown : "Key_MonBrightnessDown" , TTkK.Key_KeyboardLightOnOff : "Key_KeyboardLightOnOff" , TTkK.Key_KeyboardBrightnessUp : "Key_KeyboardBrightnessUp" , TTkK.Key_KeyboardBrightnessDown : "Key_KeyboardBrightnessDown" , TTkK.Key_PowerOff : "Key_PowerOff" , TTkK.Key_WakeUp : "Key_WakeUp" , TTkK.Key_Eject : "Key_Eject" , TTkK.Key_ScreenSaver : "Key_ScreenSaver" , TTkK.Key_WWW : "Key_WWW" , TTkK.Key_Memo : "Key_Memo" , TTkK.Key_LightBulb : "Key_LightBulb" , TTkK.Key_Shop : "Key_Shop" , TTkK.Key_History : "Key_History" , TTkK.Key_AddFavorite : "Key_AddFavorite" , TTkK.Key_HotLinks : "Key_HotLinks" , TTkK.Key_BrightnessAdjust : "Key_BrightnessAdjust" , TTkK.Key_Finance : "Key_Finance" , TTkK.Key_Community : "Key_Community" , TTkK.Key_AudioRewind : "Key_AudioRewind" , TTkK.Key_BackForward : "Key_BackForward" , TTkK.Key_ApplicationLeft : "Key_ApplicationLeft" , TTkK.Key_ApplicationRight : "Key_ApplicationRight" , TTkK.Key_Book : "Key_Book" , TTkK.Key_CD : "Key_CD" , TTkK.Key_Calculator : "Key_Calculator" , TTkK.Key_ToDoList : "Key_ToDoList" , TTkK.Key_ClearGrab : "Key_ClearGrab" , TTkK.Key_Close : "Key_Close" , TTkK.Key_Copy : "Key_Copy" , TTkK.Key_Cut : "Key_Cut" , TTkK.Key_Display : "Key_Display" , TTkK.Key_DOS : "Key_DOS" , TTkK.Key_Documents : "Key_Documents" , TTkK.Key_Excel : "Key_Excel" , TTkK.Key_Explorer : "Key_Explorer" , TTkK.Key_Game : "Key_Game" , TTkK.Key_Go : "Key_Go" , TTkK.Key_iTouch : "Key_iTouch" , TTkK.Key_LogOff : "Key_LogOff" , TTkK.Key_Market : "Key_Market" , TTkK.Key_Meeting : "Key_Meeting" , TTkK.Key_MenuKB : "Key_MenuKB" , TTkK.Key_MenuPB : "Key_MenuPB" , TTkK.Key_MySites : "Key_MySites" , TTkK.Key_News : "Key_News" , TTkK.Key_OfficeHome : "Key_OfficeHome" , TTkK.Key_Option : "Key_Option" , TTkK.Key_Paste : "Key_Paste" , TTkK.Key_Phone : "Key_Phone" , TTkK.Key_Calendar : "Key_Calendar" , TTkK.Key_Reply : "Key_Reply" , TTkK.Key_Reload : "Key_Reload" , TTkK.Key_RotateWindows : "Key_RotateWindows" , TTkK.Key_RotationPB : "Key_RotationPB" , TTkK.Key_RotationKB : "Key_RotationKB" , TTkK.Key_Save : "Key_Save" , TTkK.Key_Send : "Key_Send" , TTkK.Key_Spell : "Key_Spell" , TTkK.Key_SplitScreen : "Key_SplitScreen" , TTkK.Key_Support : "Key_Support" , TTkK.Key_TaskPane : "Key_TaskPane" , TTkK.Key_Terminal : "Key_Terminal" , TTkK.Key_Tools : "Key_Tools" , TTkK.Key_Travel : "Key_Travel" , TTkK.Key_Video : "Key_Video" , TTkK.Key_Word : "Key_Word" , TTkK.Key_Xfer : "Key_Xfer" , TTkK.Key_ZoomIn : "Key_ZoomIn" , TTkK.Key_ZoomOut : "Key_ZoomOut" , TTkK.Key_Away : "Key_Away" , TTkK.Key_Messenger : "Key_Messenger" , TTkK.Key_WebCam : "Key_WebCam" , TTkK.Key_MailForward : "Key_MailForward" , TTkK.Key_Pictures : "Key_Pictures" , TTkK.Key_Music : "Key_Music" , TTkK.Key_Battery : "Key_Battery" , TTkK.Key_Bluetooth : "Key_Bluetooth" , TTkK.Key_WLAN : "Key_WLAN" , TTkK.Key_UWB : "Key_UWB" , TTkK.Key_AudioForward : "Key_AudioForward" , TTkK.Key_AudioRepeat : "Key_AudioRepeat" , TTkK.Key_AudioRandomPlay : "Key_AudioRandomPlay" , TTkK.Key_Subtitle : "Key_Subtitle" , TTkK.Key_AudioCycleTrack : "Key_AudioCycleTrack" , TTkK.Key_Time : "Key_Time" , TTkK.Key_Hibernate : "Key_Hibernate" , TTkK.Key_View : "Key_View" , TTkK.Key_TopMenu : "Key_TopMenu" , TTkK.Key_PowerDown : "Key_PowerDown" , TTkK.Key_Suspend : "Key_Suspend" , TTkK.Key_ContrastAdjust : "Key_ContrastAdjust" , TTkK.Key_TouchpadToggle : "Key_TouchpadToggle" , TTkK.Key_TouchpadOn : "Key_TouchpadOn" , TTkK.Key_TouchpadOff : "Key_TouchpadOff" , TTkK.Key_MicMute : "Key_MicMute" , TTkK.Key_Red : "Key_Red" , TTkK.Key_Green : "Key_Green" , TTkK.Key_Yellow : "Key_Yellow" , TTkK.Key_Blue : "Key_Blue" , TTkK.Key_ChannelUp : "Key_ChannelUp" , TTkK.Key_ChannelDown : "Key_ChannelDown" , TTkK.Key_Guide : "Key_Guide" , TTkK.Key_Info : "Key_Info" , TTkK.Key_Settings : "Key_Settings" , TTkK.Key_MicVolumeUp : "Key_MicVolumeUp" , TTkK.Key_MicVolumeDown : "Key_MicVolumeDown" , TTkK.Key_New : "Key_New" , TTkK.Key_Open : "Key_Open" , TTkK.Key_Find : "Key_Find" , TTkK.Key_Undo : "Key_Undo" , TTkK.Key_Redo : "Key_Redo" , TTkK.Key_MediaLast : "Key_MediaLast" , TTkK.Key_unknown : "Key_unknown" , TTkK.Key_Call : "Key_Call" , TTkK.Key_Camera : "Key_Camera" , TTkK.Key_CameraFocus : "Key_CameraFocus" , TTkK.Key_Context1 : "Key_Context1" , TTkK.Key_Context2 : "Key_Context2" , TTkK.Key_Context3 : "Key_Context3" , TTkK.Key_Context4 : "Key_Context4" , TTkK.Key_Flip : "Key_Flip" , TTkK.Key_Hangup : "Key_Hangup" , TTkK.Key_No : "Key_No" , TTkK.Key_Select : "Key_Select" , TTkK.Key_Yes : "Key_Yes" , TTkK.Key_ToggleCallHangup : "Key_ToggleCallHangup" , TTkK.Key_VoiceDial : "Key_VoiceDial" , TTkK.Key_LastNumberRedial : "Key_LastNumberRedial" , TTkK.Key_Execute : "Key_Execute" , TTkK.Key_Printer : "Key_Printer" , TTkK.Key_Play : "Key_Play" , TTkK.Key_Sleep : "Key_Sleep" , TTkK.Key_Zoom : "Key_Zoom" , TTkK.Key_Exit : "Key_Exit" , TTkK.Key_Cancel : "Key_Cancel" }.get(k, "NONE!!!")