class Button():
    LEFT = 0
    CENTER = 1
    RIGHT = 2

class Key():
    """ Key codes for PlatformManager.TypeKeys() function.

    Can be entered directly or concatenated with an existing string. """
    ENTER 		= "{ENTER}"
    ESC 		= "{ESC}"
    BACKSPACE 	= "{BACKSPACE}"
    DELETE 		= "{DELETE}"
    F1 			= "{F1}"
    F2 			= "{F2}"
    F3 			= "{F3}"
    F4 			= "{F4}"
    F5 			= "{F5}"
    F6 			= "{F6}"
    F7 			= "{F7}"
    F8 			= "{F8}"
    F9 			= "{F9}"
    F10 		= "{F10}"
    F11 		= "{F11}"
    F12 		= "{F12}"
    F13 		= "{F13}"
    F14 		= "{F14}"
    F15 		= "{F15}"
    F16 		= "{F16}"
    HOME 		= "{HOME}"
    END 		= "{END}"
    LEFT 		= "{LEFT}"
    RIGHT 		= "{RIGHT}"
    DOWN 		= "{DOWN}"
    UP 			= "{UP}"
    PAGE_DOWN 	= "{PGDN}"
    PAGE_UP 	= "{PGUP}"
    TAB			= "{TAB}"
    CAPS_LOCK 	= "{CAPS_LOCK}"
    NUM_LOCK	= "{NUM_LOCK}"
    SCROLL_LOCK	= "{SCROLL_LOCK}"
    INSERT		= "{INSERT}"
    SPACE		= "{SPACE}"
    PRINTSCREEN = "{PRTSC}"
    ALT 		= "{ALT}"
    CMD 		= "{CMD}"
    CONTROL 	= "{CTRL}"
    META 		= "{META}"
    SHIFT 		= "{SHIFT}"
    WIN 		= "{WIN}"
    PAUSE		= "{PAUSE}"
    NUM_0		= "{NUM_0}"
    NUM_1		= "{NUM_1}"
    NUM_2		= "{NUM_2}"
    NUM_3		= "{NUM_3}"
    NUM_4		= "{NUM_4}"
    NUM_5		= "{NUM_5}"
    NUM_6		= "{NUM_6}"
    NUM_7		= "{NUM_7}"
    NUM_8		= "{NUM_8}"
    NUM_9		= "{NUM_9}"

class KeyModifier():
    """ Key modifiers precede either a single key [e.g., ^v] or a set of characters within parentheses [e.g., +(hello)] """
    CTRL 		= "{CTRL}"
    SHIFT 		= "{SHIFT}"
    ALT 		= "{ALT}"
    META 		= "{WIN}"
    CMD 		= "{WIN}"
    WIN 		= "{WIN}"