Module TermTk.libbpytop.inputkey

Expand source code
#!/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')
    def __init__(self, type:int, key: str, code: str):
        self.type = type
        self.key = key
        self.code = code
    def __str__(self):
        code = self.code.replace('\033','<ESC>')
        return f"KeyEvent: {self.key} {key2str(self.key)} {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)
        else:
            key = _translate_key(input_key)
            if key is not None:
                return KeyEvent(TTkK.SpecialKey, key, input_key)
        return None

def _translate_key(key):
    if   key == "\177"   : return TTkK.Key_Backspace
    elif key == "\t"     : return TTkK.Key_Tab
    elif key == "\n"     : return TTkK.Key_Enter
    elif key == "\033[A" : return TTkK.Key_Up
    elif key == "\033[B" : return TTkK.Key_Down
    elif key == "\033[C" : return TTkK.Key_Right
    elif key == "\033[D" : return TTkK.Key_Left
    elif key == "\033[5~": return TTkK.Key_PageUp
    elif key == "\033[6~": return TTkK.Key_PageDown
    # Xterm
    elif key == "\033[F" : return TTkK.Key_End
    elif key == "\033[H" : return TTkK.Key_Home
    # Terminator + tmux
    elif key == "\033[4~": return TTkK.Key_End
    elif key == "\033[1~": return TTkK.Key_Home
    elif key == "\033[2~": return TTkK.Key_Insert
    elif key == "\033[3~": return TTkK.Key_Delete
    elif key == "\033": return TTkK.Key_Escape
    elif key == "\033OP": return TTkK.Key_F1
    elif key == "\033OQ": return TTkK.Key_F2
    elif key == "\033OR": return TTkK.Key_F3
    elif key == "\033OS": return TTkK.Key_F4
    elif key == "\033[15~": return TTkK.Key_F5
    elif key == "\033[17~": return TTkK.Key_F6
    elif key == "\033[18~": return TTkK.Key_F7
    elif key == "\033[19~": return TTkK.Key_F8
    elif key == "\033[20~": return TTkK.Key_F9
    elif key == "\033[21~": return TTkK.Key_F10
    elif key == "\033[23~": return TTkK.Key_F11
    elif key == "\033[24~": return TTkK.Key_F12
    return 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 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!!!"

Functions

def key2str(k)
Expand source code
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!!!"

Classes

class KeyEvent (type: int, key: str, code: str)
Expand source code
class KeyEvent:
    __slots__ = ('type', 'key', 'code')
    def __init__(self, type:int, key: str, code: str):
        self.type = type
        self.key = key
        self.code = code
    def __str__(self):
        code = self.code.replace('\033','<ESC>')
        return f"KeyEvent: {self.key} {key2str(self.key)} {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)
        else:
            key = _translate_key(input_key)
            if key is not None:
                return KeyEvent(TTkK.SpecialKey, key, input_key)
        return None

Static methods

def parse(input_key)
Expand source 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)
    else:
        key = _translate_key(input_key)
        if key is not None:
            return KeyEvent(TTkK.SpecialKey, key, input_key)
    return None

Instance variables

var code

Return an attribute of instance, which is of type owner.

var key

Return an attribute of instance, which is of type owner.

var type

Return an attribute of instance, which is of type owner.