# -*- coding: utf-8 -*-
# *****************************************************************************
#     Copyright (C) 2006-2020 Jorgen Stenarson. <jorgen.stenarson@bostream.nu>
#     Copyright (C) 2020 Bassem Girgis. <brgirgis@gmail.com>
#
#  Distributed under the terms of the BSD License.  The full license is in
#  the file COPYING, distributed as part of this software.
# *****************************************************************************

# This file contains constants that are normally found in win32all
# But included here to avoid the dependency


VK_LBUTTON = 1
VK_RBUTTON = 2
VK_CANCEL = 3
VK_MBUTTON = 4
VK_XBUTTON1 = 5
VK_XBUTTON2 = 6
VK_BACK = 8
VK_TAB = 9
VK_CLEAR = 12
VK_RETURN = 13
VK_SHIFT = 16
VK_CONTROL = 17
VK_MENU = 18
VK_PAUSE = 19
VK_CAPITAL = 20
VK_KANA = 0x15
VK_HANGEUL = 0x15
VK_HANGUL = 0x15
VK_JUNJA = 0x17
VK_FINAL = 0x18
VK_HANJA = 0x19
VK_KANJI = 0x19
VK_ESCAPE = 0x1B
VK_CONVERT = 0x1C
VK_NONCONVERT = 0x1D
VK_ACCEPT = 0x1E
VK_MODECHANGE = 0x1F
VK_SPACE = 32
VK_PRIOR = 33
VK_NEXT = 34
VK_END = 35
VK_HOME = 36
VK_LEFT = 37
VK_UP = 38
VK_RIGHT = 39
VK_DOWN = 40
VK_SELECT = 41
VK_PRINT = 42
VK_EXECUTE = 43
VK_SNAPSHOT = 44
VK_INSERT = 45
VK_DELETE = 46
VK_HELP = 47
VK_LWIN = 0x5B
VK_RWIN = 0x5C
VK_APPS = 0x5D
VK_SLEEP = 0x5F
VK_NUMPAD0 = 0x60
VK_NUMPAD1 = 0x61
VK_NUMPAD2 = 0x62
VK_NUMPAD3 = 0x63
VK_NUMPAD4 = 0x64
VK_NUMPAD5 = 0x65
VK_NUMPAD6 = 0x66
VK_NUMPAD7 = 0x67
VK_NUMPAD8 = 0x68
VK_NUMPAD9 = 0x69
VK_MULTIPLY = 0x6A
VK_ADD = 0x6B
VK_SEPARATOR = 0x6C
VK_SUBTRACT = 0x6D
VK_DECIMAL = 0x6E
VK_DIVIDE = 0x6F
VK_F1 = 0x70
VK_F2 = 0x71
VK_F3 = 0x72
VK_F4 = 0x73
VK_F5 = 0x74
VK_F6 = 0x75
VK_F7 = 0x76
VK_F8 = 0x77
VK_F9 = 0x78
VK_F10 = 0x79
VK_F11 = 0x7A
VK_F12 = 0x7B
VK_F13 = 0x7C
VK_F14 = 0x7D
VK_F15 = 0x7E
VK_F16 = 0x7F
VK_F17 = 0x80
VK_F18 = 0x81
VK_F19 = 0x82
VK_F20 = 0x83
VK_F21 = 0x84
VK_F22 = 0x85
VK_F23 = 0x86
VK_F24 = 0x87
VK_NUMLOCK = 0x90
VK_SCROLL = 0x91
VK_LSHIFT = 0xA0
VK_RSHIFT = 0xA1
VK_LCONTROL = 0xA2
VK_RCONTROL = 0xA3
VK_LMENU = 0xA4
VK_RMENU = 0xA5
VK_BROWSER_BACK = 0xA6
VK_BROWSER_FORWARD = 0xA7
VK_BROWSER_REFRESH = 0xA8
VK_BROWSER_STOP = 0xA9
VK_BROWSER_SEARCH = 0xAA
VK_BROWSER_FAVORITES = 0xAB
VK_BROWSER_HOME = 0xAC
VK_VOLUME_MUTE = 0xAD
VK_VOLUME_DOWN = 0xAE
VK_VOLUME_UP = 0xAF
VK_MEDIA_NEXT_TRACK = 0xB0
VK_MEDIA_PREV_TRACK = 0xB1
VK_MEDIA_STOP = 0xB2
VK_MEDIA_PLAY_PAUSE = 0xB3
VK_LAUNCH_MAIL = 0xB4
VK_LAUNCH_MEDIA_SELECT = 0xB5
VK_LAUNCH_APP1 = 0xB6
VK_LAUNCH_APP2 = 0xB7
VK_OEM_1 = 0xBA
VK_OEM_PLUS = 0xBB
VK_OEM_COMMA = 0xBC
VK_OEM_MINUS = 0xBD
VK_OEM_PERIOD = 0xBE
VK_OEM_2 = 0xBF
VK_OEM_3 = 0xC0
VK_OEM_4 = 0xDB
VK_OEM_5 = 0xDC
VK_OEM_6 = 0xDD
VK_OEM_7 = 0xDE
VK_OEM_8 = 0xDF
VK_OEM_102 = 0xE2
VK_PROCESSKEY = 0xE5
VK_PACKET = 0xE7
VK_ATTN = 0xF6
VK_CRSEL = 0xF7
VK_EXSEL = 0xF8
VK_EREOF = 0xF9
VK_PLAY = 0xFA
VK_ZOOM = 0xFB
VK_NONAME = 0xFC
VK_PA1 = 0xFD
VK_OEM_CLEAR = 0xFE

CF_TEXT = 1
CF_BITMAP = 2
CF_METAFILEPICT = 3
CF_SYLK = 4
CF_DIF = 5
CF_TIFF = 6
CF_OEMTEXT = 7
CF_DIB = 8
CF_PALETTE = 9
CF_PENDATA = 10
CF_RIFF = 11
CF_WAVE = 12
CF_UNICODETEXT = 13
CF_ENHMETAFILE = 14
CF_HDROP = 15
CF_LOCALE = 16
CF_MAX = 17
CF_OWNERDISPLAY = 128
CF_DSPTEXT = 129
CF_DSPBITMAP = 130
CF_DSPMETAFILEPICT = 131
CF_DSPENHMETAFILE = 142
CF_PRIVATEFIRST = 512
CF_PRIVATELAST = 767
CF_GDIOBJFIRST = 768
CF_GDIOBJLAST = 1023


GPTR = 64
GHND = 66

CODE_TO_SYM_MAP = {
    VK_CANCEL: "cancel",
    VK_BACK: "backspace",
    VK_TAB: "tab",
    VK_CLEAR: "clear",
    VK_RETURN: "return",
    VK_SHIFT: "shift_l",
    VK_CONTROL: "control_l",
    VK_MENU: "alt_l",
    VK_PAUSE: "pause",
    VK_CAPITAL: "caps_lock",
    VK_ESCAPE: "escape",
    VK_SPACE: "space",
    VK_PRIOR: "prior",
    VK_NEXT: "next",
    VK_END: "end",
    VK_HOME: "home",
    VK_LEFT: "left",
    VK_UP: "up",
    VK_RIGHT: "right",
    VK_DOWN: "down",
    VK_SELECT: "select",
    VK_PRINT: "print",
    VK_EXECUTE: "execute",
    VK_SNAPSHOT: "snapshot",
    VK_INSERT: "insert",
    VK_DELETE: "delete",
    VK_HELP: "help",
    VK_F1: "f1",
    VK_F2: "f2",
    VK_F3: "f3",
    VK_F4: "f4",
    VK_F5: "f5",
    VK_F6: "f6",
    VK_F7: "f7",
    VK_F8: "f8",
    VK_F9: "f9",
    VK_F10: "f10",
    VK_F11: "f11",
    VK_F12: "f12",
    VK_F13: "f13",
    VK_F14: "f14",
    VK_F15: "f15",
    VK_F16: "f16",
    VK_F17: "f17",
    VK_F18: "f18",
    VK_F19: "f19",
    VK_F20: "f20",
    VK_F21: "f21",
    VK_F22: "f22",
    VK_F23: "f23",
    VK_F24: "f24",
    VK_NUMLOCK: "num_lock,",
    VK_SCROLL: "scroll_lock",
    VK_APPS: "vk_apps",
    VK_PROCESSKEY: "vk_processkey",
    VK_ATTN: "vk_attn",
    VK_CRSEL: "vk_crsel",
    VK_EXSEL: "vk_exsel",
    VK_EREOF: "vk_ereof",
    VK_PLAY: "vk_play",
    VK_ZOOM: "vk_zoom",
    VK_NONAME: "vk_noname",
    VK_PA1: "vk_pa1",
    VK_OEM_CLEAR: "vk_oem_clear",
    VK_NUMPAD0: "numpad0",
    VK_NUMPAD1: "numpad1",
    VK_NUMPAD2: "numpad2",
    VK_NUMPAD3: "numpad3",
    VK_NUMPAD4: "numpad4",
    VK_NUMPAD5: "numpad5",
    VK_NUMPAD6: "numpad6",
    VK_NUMPAD7: "numpad7",
    VK_NUMPAD8: "numpad8",
    VK_NUMPAD9: "numpad9",
    VK_DIVIDE: "divide",
    VK_MULTIPLY: "multiply",
    VK_ADD: "add",
    VK_SUBTRACT: "subtract",
    VK_DECIMAL: "vk_decimal",
}
