Source code for hotkeynet.canned

# -*- coding: utf-8 -*-

"""
Similar to :mod:`hotkeynet.keyname`. However, everything in this module is
:mod:`hotkeynet.maker` factory object. Everything in this module should be called
to use.

Example:

    >>> from hotkeynet import canned
    >>> canned.KEY_1()
    >>> canned.CTRL_(canned.KEY_1)()
"""

import typing as _T
from . import keyname as _KN
from .maker import (
    KeyMaker as _KeyMaker,
    ClickMaker as _ClickMaker,
    ModifiedClickMaker as _ModifiedClickMaker,
)

ESC = _KeyMaker(_KN.ESC)
TRIGGER = _KeyMaker(_KN.TRIGGER)

# ------------------------------------------------------------------------------
# F1 - F12
# ------------------------------------------------------------------------------
F1 = _KeyMaker(_KN.F1)
F2 = _KeyMaker(_KN.F2)
F3 = _KeyMaker(_KN.F3)
F4 = _KeyMaker(_KN.F4)
F5 = _KeyMaker(_KN.F5)
F6 = _KeyMaker(_KN.F6)
F7 = _KeyMaker(_KN.F7)
F8 = _KeyMaker(_KN.F8)
F9 = _KeyMaker(_KN.F9)
F10 = _KeyMaker(_KN.F10)
F11 = _KeyMaker(_KN.F11)
F12 = _KeyMaker(_KN.F12)

# ------------------------------------------------------------------------------
# Main number keys
# ------------------------------------------------------------------------------
OEM3_WAVE_OR_BACK_QUOTE = _KeyMaker(_KN.OEM3_WAVE_OR_BACK_QUOTE)  # ~
KEY_1 = _KeyMaker(_KN.KEY_1)
KEY_2 = _KeyMaker(_KN.KEY_2)
KEY_3 = _KeyMaker(_KN.KEY_3)
KEY_4 = _KeyMaker(_KN.KEY_4)
KEY_5 = _KeyMaker(_KN.KEY_5)
KEY_6 = _KeyMaker(_KN.KEY_6)
KEY_7 = _KeyMaker(_KN.KEY_7)
KEY_8 = _KeyMaker(_KN.KEY_8)
KEY_9 = _KeyMaker(_KN.KEY_9)
KEY_0 = _KeyMaker(_KN.KEY_0)
KEY_11_MINUS = _KeyMaker(_KN.KEY_11_MINUS)
KEY_12_PLUS = _KeyMaker(_KN.KEY_12_PLUS)
BACKSPACE = _KeyMaker(_KN.BACKSPACE)

# ------------------------------------------------------------------------------
# Modifier keys
# ------------------------------------------------------------------------------
TAB = _KeyMaker(_KN.TAB)
CAPS_LOCK = _KeyMaker(_KN.CAPS_LOCK)
SHIFT = _KeyMaker(_KN.SHIFT)
CTRL = _KeyMaker(_KN.CTRL)
ALT = _KeyMaker(_KN.ALT)

LSHIFT = _KeyMaker(_KN.LSHIFT)
RSHIFT = _KeyMaker(_KN.RSHIFT)
LCTRL = _KeyMaker(_KN.LCTRL)
RCTRL = _KeyMaker(_KN.RCTRL)
LALT = _KeyMaker(_KN.LALT)
RALT = _KeyMaker(_KN.RALT)

SPACE = _KeyMaker(_KN.SPACE)

LWIN = _KeyMaker(_KN.LWIN)
RWIN = _KeyMaker(_KN.RWIN)

# ------------------------------------------------------------------------------
# Alphabet keys
# ------------------------------------------------------------------------------
A = _KeyMaker(_KN.A)
B = _KeyMaker(_KN.B)
C = _KeyMaker(_KN.C)
D = _KeyMaker(_KN.D)
E = _KeyMaker(_KN.E)
F = _KeyMaker(_KN.F)
G = _KeyMaker(_KN.G)
H = _KeyMaker(_KN.H)
I = _KeyMaker(_KN.I)
J = _KeyMaker(_KN.J)
K = _KeyMaker(_KN.K)
L = _KeyMaker(_KN.L)
M = _KeyMaker(_KN.M)
N = _KeyMaker(_KN.N)
O = _KeyMaker(_KN.O)
P = _KeyMaker(_KN.P)
Q = _KeyMaker(_KN.Q)
R = _KeyMaker(_KN.R)
S = _KeyMaker(_KN.S)
T = _KeyMaker(_KN.T)
U = _KeyMaker(_KN.U)
V = _KeyMaker(_KN.V)
W = _KeyMaker(_KN.W)
X = _KeyMaker(_KN.X)
Y = _KeyMaker(_KN.Y)
Z = _KeyMaker(_KN.Z)

# ------------------------------------------------------------------------------
# Special characters
# ------------------------------------------------------------------------------
OEM4_SQUARE_BRACKET_LEFT = _KeyMaker(_KN.OEM4_SQUARE_BRACKET_LEFT)  # (
OEM6_SQUARE_BRACKET_RIGHT = _KeyMaker(_KN.OEM6_SQUARE_BRACKET_RIGHT)  # )
OEM5_PIPE_OR_BACK_SLASH = _KeyMaker(_KN.OEM5_PIPE_OR_BACK_SLASH)  # /
OEM1_SEMICOLUMN = _KeyMaker(_KN.OEM1_SEMICOLUMN)  # :
OEM7_QUOTE = _KeyMaker(_KN.OEM7_QUOTE)  # "
COMMA = _KeyMaker(_KN.COMMA)  # ,
PERIOD = _KeyMaker(_KN.PERIOD)  # .
OEM2_QUESTION = _KeyMaker(_KN.OEM2_QUESTION)  # ? Key
ENTER = _KeyMaker(_KN.ENTER)

# ------------------------------------------------------------------------------
# Arrow keys
# ------------------------------------------------------------------------------
INSERT = _KeyMaker(_KN.INSERT)
HOME = _KeyMaker(_KN.HOME)
PAGE_UP = _KeyMaker(_KN.PAGE_UP)
DELETE = _KeyMaker(_KN.DELETE)
END = _KeyMaker(_KN.END)
PAGE_DOWN = _KeyMaker(_KN.PAGE_DOWN)
LEFT = _KeyMaker(_KN.LEFT)
UP = _KeyMaker(_KN.UP)
RIGHT = _KeyMaker(_KN.RIGHT)
DOWN = _KeyMaker(_KN.DOWN)

# ------------------------------------------------------------------------------
# Numpad keys
# ------------------------------------------------------------------------------
SCROLL_LOCK = _KeyMaker(_KN.SCROLL_LOCK)

NUMPAD_1 = _KeyMaker(_KN.NUMPAD_1)
NUMPAD_2 = _KeyMaker(_KN.NUMPAD_2)
NUMPAD_3 = _KeyMaker(_KN.NUMPAD_3)
NUMPAD_4 = _KeyMaker(_KN.NUMPAD_4)
NUMPAD_5 = _KeyMaker(_KN.NUMPAD_5)
NUMPAD_6 = _KeyMaker(_KN.NUMPAD_6)
NUMPAD_7 = _KeyMaker(_KN.NUMPAD_7)
NUMPAD_8 = _KeyMaker(_KN.NUMPAD_8)
NUMPAD_9 = _KeyMaker(_KN.NUMPAD_9)
NUMPAD_0 = _KeyMaker(_KN.NUMPAD_0)
NUMPAD_11_DIVIDE = _KeyMaker(_KN.NUMPAD_11_DIVIDE)
NUMPAD_12_MULTIPLY = _KeyMaker(_KN.NUMPAD_12_MULTIPLY)

NUMPAD_MINUS = _KeyMaker(_KN.NUMPAD_MINUS)
NUMPAD_PLUS = _KeyMaker(_KN.NUMPAD_PLUS)
NUMPAD_ENTER = _KeyMaker(_KN.NUMPAD_ENTER)
NUMPAD_DELETE = _KeyMaker(_KN.NUMPAD_DELETE)

NUMPAD_SHIFT_1_END = _KeyMaker(_KN.NUMPAD_SHIFT_1_END)
NUMPAD_SHIFT_2_DOWN = _KeyMaker(_KN.NUMPAD_SHIFT_2_DOWN)
NUMPAD_SHIFT_3_PAGE_DOWN = _KeyMaker(_KN.NUMPAD_SHIFT_3_PAGE_DOWN)
NUMPAD_SHIFT_4_LEFT = _KeyMaker(_KN.NUMPAD_SHIFT_4_LEFT)
NUMPAD_SHIFT_5_CLEAR = _KeyMaker(_KN.NUMPAD_SHIFT_5_CLEAR)
NUMPAD_SHIFT_6_RIGHT = _KeyMaker(_KN.NUMPAD_SHIFT_6_RIGHT)
NUMPAD_SHIFT_7_HOME = _KeyMaker(_KN.NUMPAD_SHIFT_7_HOME)
NUMPAD_SHIFT_8_UP = _KeyMaker(_KN.NUMPAD_SHIFT_8_UP)
NUMPAD_SHIFT_9_PAGE_UP = _KeyMaker(_KN.NUMPAD_SHIFT_9_PAGE_UP)

UNKNOWN = _KeyMaker(_KN.UNKNOWN)

# ------------------------------------------------------------------------------
# Mouse buttons
# ------------------------------------------------------------------------------
MOUSE_LButton = _ClickMaker(_KN.MOUSE_LButton)
MOUSE_RButton = _ClickMaker(_KN.MOUSE_RButton)
MOUSE_MButton = _ClickMaker(_KN.MOUSE_MButton)
MOUSE_Button4 = _ClickMaker(_KN.MOUSE_Button4)
MOUSE_Button5 = _ClickMaker(_KN.MOUSE_Button5)

LEFT_CLICK = MOUSE_LButton
RIGHT_CLICK = MOUSE_RButton
MIDDLE_CLICK = MOUSE_MButton

SHIFT_LEFT_CLICK = _ModifiedClickMaker(_KN.MOUSE_LButton, _KN.SHIFT)
SHIFT_RIGHT_CLICK = _ModifiedClickMaker(_KN.MOUSE_RButton, _KN.SHIFT)
SHIFT_MIDDLE_CLICK = _ModifiedClickMaker(_KN.MOUSE_MButton, _KN.SHIFT)
ALT_LEFT_CLICK = _ModifiedClickMaker(_KN.MOUSE_LButton, _KN.ALT)
ALT_RIGHT_CLICK = _ModifiedClickMaker(_KN.MOUSE_RButton, _KN.ALT)
ALT_MIDDLE_CLICK = _ModifiedClickMaker(_KN.MOUSE_MButton, _KN.ALT)
CTRL_LEFT_CLICK = _ModifiedClickMaker(_KN.MOUSE_LButton, _KN.CTRL)
CTRL_RIGHT_CLICK = _ModifiedClickMaker(_KN.MOUSE_RButton, _KN.CTRL)
CTRL_MIDDLE_CLICK = _ModifiedClickMaker(_KN.MOUSE_MButton, _KN.CTRL)

# ------------------------------------------------------------------------------
# Key collections
# ------------------------------------------------------------------------------
F1_to_F12 = [
    F1,
    F2,
    F3,
    F4,
    F5,
    F6,
    F7,
    F8,
    F9,
    F10,
    F11,
    F12,
]

INSERT_TO_PGDN = [
    INSERT,
    HOME,
    PAGE_UP,
    DELETE,
    END,
    PAGE_DOWN,
]

KEY_1_to_12 = [
    KEY_1,
    KEY_2,
    KEY_3,
    KEY_4,
    KEY_5,
    KEY_6,
    KEY_7,
    KEY_8,
    KEY_9,
    KEY_0,
    KEY_11_MINUS,
    KEY_12_PLUS,
]

NUMPAD_1_to_12 = [
    NUMPAD_1,
    NUMPAD_2,
    NUMPAD_3,
    NUMPAD_4,
    NUMPAD_5,
    NUMPAD_6,
    NUMPAD_7,
    NUMPAD_8,
    NUMPAD_9,
    NUMPAD_0,
    NUMPAD_11_DIVIDE,
    NUMPAD_12_MULTIPLY,
]


# ------------------------------------------------------------------------------
# One modifier compound keys
# ------------------------------------------------------------------------------
def _resolve_key_liked_arg(key: _T.Union[str, _KeyMaker]) -> str:
    if isinstance(key, _KeyMaker):
        return key.key
    elif isinstance(key, str):
        return key
    else:  # pragma: no cover
        raise TypeError("key must be a str or a KeyMaker instance")


def _key_with_modifier(mod: str, *keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:
    return _KeyMaker(
        "{} {}".format(mod, ", ".join([_resolve_key_liked_arg(k) for k in keys]))
    )


def CTRL_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:
    return _key_with_modifier(_KN.CTRL, *keys)


def SHIFT_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:  # pragma: no cover
    return _key_with_modifier(_KN.SHIFT, *keys)


def ALT_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:  # pragma: no cover
    return _key_with_modifier(_KN.ALT, *keys)


# ------------------------------------------------------------------------------
# Two modifier compound keys
# ------------------------------------------------------------------------------
def CTRL_ALT_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:
    return _key_with_modifier(f"{_KN.CTRL} {_KN.ALT}", *keys)


def CTRL_SHIFT_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:  # pragma: no cover
    return _key_with_modifier(f"{_KN.CTRL} {_KN.SHIFT}", *keys)


def ALT_SHIFT_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:  # pragma: no cover
    return _key_with_modifier(f"{_KN.ALT} {_KN.SHIFT}", *keys)


# ------------------------------------------------------------------------------
# Three modifier compound keys
# ------------------------------------------------------------------------------
def CTRL_SHIFT_ALT_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker:
    return _key_with_modifier(f"{_KN.CTRL} {_KN.SHIFT} {_KN.ALT}", *keys)


# ------------------------------------------------------------------------------
# Special modifier compound keys
# ------------------------------------------------------------------------------
[docs]def LWIN_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker: """ Left windows + any key """ return _key_with_modifier(_KN.LWIN, *keys)
[docs]def RWIN_(*keys: _T.Union[str, _KeyMaker]) -> _KeyMaker: """ Right windows + any key """ return _key_with_modifier(_KN.RWIN, *keys)
# ------------------------------------------------------------------------------ # regular key with modifier # ------------------------------------------------------------------------------ # CTRL CTRL_TAB = CTRL_(_KN.TAB) CTRL_F1 = CTRL_(_KN.F1) CTRL_F2 = CTRL_(_KN.F2) CTRL_F3 = CTRL_(_KN.F3) CTRL_F4 = CTRL_(_KN.F4) CTRL_F5 = CTRL_(_KN.F5) CTRL_F6 = CTRL_(_KN.F6) CTRL_F7 = CTRL_(_KN.F7) CTRL_F8 = CTRL_(_KN.F8) CTRL_F9 = CTRL_(_KN.F9) CTRL_F10 = CTRL_(_KN.F10) CTRL_F11 = CTRL_(_KN.F11) CTRL_F12 = CTRL_(_KN.F12) CTRL_OEM3_WAVE_OR_BACK_QUOTE = CTRL_(_KN.OEM3_WAVE_OR_BACK_QUOTE) CTRL_1 = CTRL_(_KN.KEY_1) CTRL_2 = CTRL_(_KN.KEY_2) CTRL_3 = CTRL_(_KN.KEY_3) CTRL_4 = CTRL_(_KN.KEY_4) CTRL_5 = CTRL_(_KN.KEY_5) CTRL_6 = CTRL_(_KN.KEY_6) CTRL_7 = CTRL_(_KN.KEY_7) CTRL_8 = CTRL_(_KN.KEY_8) CTRL_9 = CTRL_(_KN.KEY_9) CTRL_0 = CTRL_(_KN.KEY_0) CTRL_11_MINUS = CTRL_(_KN.KEY_11_MINUS) CTRL_12_PLUS = CTRL_(_KN.KEY_12_PLUS) CTRL_BACKSPACE = CTRL_(_KN.BACKSPACE) CTRL_NUMPAD_1 = CTRL_(_KN.NUMPAD_1) CTRL_NUMPAD_2 = CTRL_(_KN.NUMPAD_2) CTRL_NUMPAD_3 = CTRL_(_KN.NUMPAD_3) CTRL_NUMPAD_4 = CTRL_(_KN.NUMPAD_4) CTRL_NUMPAD_5 = CTRL_(_KN.NUMPAD_5) CTRL_NUMPAD_6 = CTRL_(_KN.NUMPAD_6) CTRL_NUMPAD_7 = CTRL_(_KN.NUMPAD_7) CTRL_NUMPAD_8 = CTRL_(_KN.NUMPAD_8) CTRL_NUMPAD_9 = CTRL_(_KN.NUMPAD_9) CTRL_NUMPAD_0 = CTRL_(_KN.NUMPAD_0) CTRL_NUMPAD_11_DIVIDE = CTRL_(_KN.NUMPAD_11_DIVIDE) CTRL_NUMPAD_12_MULTIPLY = CTRL_(_KN.NUMPAD_12_MULTIPLY) CTRL_A = CTRL_(_KN.A) CTRL_B = CTRL_(_KN.B) CTRL_C = CTRL_(_KN.C) CTRL_D = CTRL_(_KN.D) CTRL_E = CTRL_(_KN.E) CTRL_F = CTRL_(_KN.F) CTRL_G = CTRL_(_KN.G) CTRL_H = CTRL_(_KN.H) CTRL_I = CTRL_(_KN.I) CTRL_J = CTRL_(_KN.J) CTRL_K = CTRL_(_KN.K) CTRL_L = CTRL_(_KN.L) CTRL_M = CTRL_(_KN.M) CTRL_N = CTRL_(_KN.N) CTRL_O = CTRL_(_KN.O) CTRL_P = CTRL_(_KN.P) CTRL_Q = CTRL_(_KN.Q) CTRL_R = CTRL_(_KN.R) CTRL_S = CTRL_(_KN.S) CTRL_T = CTRL_(_KN.T) CTRL_U = CTRL_(_KN.U) CTRL_V = CTRL_(_KN.V) CTRL_W = CTRL_(_KN.W) CTRL_X = CTRL_(_KN.X) CTRL_Y = CTRL_(_KN.Y) CTRL_Z = CTRL_(_KN.Z) # SHIFT SHIFT_TAB = SHIFT_(_KN.TAB) SHIFT_F1 = SHIFT_(_KN.F1) SHIFT_F2 = SHIFT_(_KN.F2) SHIFT_F3 = SHIFT_(_KN.F3) SHIFT_F4 = SHIFT_(_KN.F4) SHIFT_F5 = SHIFT_(_KN.F5) SHIFT_F6 = SHIFT_(_KN.F6) SHIFT_F7 = SHIFT_(_KN.F7) SHIFT_F8 = SHIFT_(_KN.F8) SHIFT_F9 = SHIFT_(_KN.F9) SHIFT_F10 = SHIFT_(_KN.F10) SHIFT_F11 = SHIFT_(_KN.F11) SHIFT_F12 = SHIFT_(_KN.F12) SHIFT_OEM3_WAVE_OR_BACK_QUOTE = SHIFT_(_KN.OEM3_WAVE_OR_BACK_QUOTE) SHIFT_1 = SHIFT_(_KN.KEY_1) SHIFT_2 = SHIFT_(_KN.KEY_2) SHIFT_3 = SHIFT_(_KN.KEY_3) SHIFT_4 = SHIFT_(_KN.KEY_4) SHIFT_5 = SHIFT_(_KN.KEY_5) SHIFT_6 = SHIFT_(_KN.KEY_6) SHIFT_7 = SHIFT_(_KN.KEY_7) SHIFT_8 = SHIFT_(_KN.KEY_8) SHIFT_9 = SHIFT_(_KN.KEY_9) SHIFT_0 = SHIFT_(_KN.KEY_0) SHIFT_11_MINUS = SHIFT_(_KN.KEY_11_MINUS) SHIFT_12_PLUS = SHIFT_(_KN.KEY_12_PLUS) SHIFT_BACKSPACE = SHIFT_(_KN.BACKSPACE) SHIFT_NUMPAD_1 = SHIFT_(_KN.NUMPAD_1) SHIFT_NUMPAD_2 = SHIFT_(_KN.NUMPAD_2) SHIFT_NUMPAD_3 = SHIFT_(_KN.NUMPAD_3) SHIFT_NUMPAD_4 = SHIFT_(_KN.NUMPAD_4) SHIFT_NUMPAD_5 = SHIFT_(_KN.NUMPAD_5) SHIFT_NUMPAD_6 = SHIFT_(_KN.NUMPAD_6) SHIFT_NUMPAD_7 = SHIFT_(_KN.NUMPAD_7) SHIFT_NUMPAD_8 = SHIFT_(_KN.NUMPAD_8) SHIFT_NUMPAD_9 = SHIFT_(_KN.NUMPAD_9) SHIFT_NUMPAD_0 = SHIFT_(_KN.NUMPAD_0) SHIFT_NUMPAD_11_DIVIDE = SHIFT_(_KN.NUMPAD_11_DIVIDE) SHIFT_NUMPAD_12_MULTIPLY = SHIFT_(_KN.NUMPAD_12_MULTIPLY) SHIFT_A = SHIFT_(_KN.A) SHIFT_B = SHIFT_(_KN.B) SHIFT_C = SHIFT_(_KN.C) SHIFT_D = SHIFT_(_KN.D) SHIFT_E = SHIFT_(_KN.E) SHIFT_F = SHIFT_(_KN.F) SHIFT_G = SHIFT_(_KN.G) SHIFT_H = SHIFT_(_KN.H) SHIFT_I = SHIFT_(_KN.I) SHIFT_J = SHIFT_(_KN.J) SHIFT_K = SHIFT_(_KN.K) SHIFT_L = SHIFT_(_KN.L) SHIFT_M = SHIFT_(_KN.M) SHIFT_N = SHIFT_(_KN.N) SHIFT_O = SHIFT_(_KN.O) SHIFT_P = SHIFT_(_KN.P) SHIFT_Q = SHIFT_(_KN.Q) SHIFT_R = SHIFT_(_KN.R) SHIFT_S = SHIFT_(_KN.S) SHIFT_T = SHIFT_(_KN.T) SHIFT_U = SHIFT_(_KN.U) SHIFT_V = SHIFT_(_KN.V) SHIFT_W = SHIFT_(_KN.W) SHIFT_X = SHIFT_(_KN.X) SHIFT_Y = SHIFT_(_KN.Y) SHIFT_Z = SHIFT_(_KN.Z) # ALT ALT_TAB = ALT_(_KN.TAB) ALT_F1 = ALT_(_KN.F1) ALT_F2 = ALT_(_KN.F2) ALT_F3 = ALT_(_KN.F3) ALT_F4 = ALT_(_KN.F4) ALT_F5 = ALT_(_KN.F5) ALT_F6 = ALT_(_KN.F6) ALT_F7 = ALT_(_KN.F7) ALT_F8 = ALT_(_KN.F8) ALT_F9 = ALT_(_KN.F9) ALT_F10 = ALT_(_KN.F10) ALT_F11 = ALT_(_KN.F11) ALT_F12 = ALT_(_KN.F12) ALT_OEM3_WAVE_OR_BACK_QUOTE = ALT_(_KN.OEM3_WAVE_OR_BACK_QUOTE) ALT_1 = ALT_(_KN.KEY_1) ALT_2 = ALT_(_KN.KEY_2) ALT_3 = ALT_(_KN.KEY_3) ALT_4 = ALT_(_KN.KEY_4) ALT_5 = ALT_(_KN.KEY_5) ALT_6 = ALT_(_KN.KEY_6) ALT_7 = ALT_(_KN.KEY_7) ALT_8 = ALT_(_KN.KEY_8) ALT_9 = ALT_(_KN.KEY_9) ALT_0 = ALT_(_KN.KEY_0) ALT_11_MINUS = ALT_(_KN.KEY_11_MINUS) ALT_12_PLUS = ALT_(_KN.KEY_12_PLUS) ALT_BACKSPACE = ALT_(_KN.BACKSPACE) ALT_NUMPAD_1 = ALT_(_KN.NUMPAD_1) ALT_NUMPAD_2 = ALT_(_KN.NUMPAD_2) ALT_NUMPAD_3 = ALT_(_KN.NUMPAD_3) ALT_NUMPAD_4 = ALT_(_KN.NUMPAD_4) ALT_NUMPAD_5 = ALT_(_KN.NUMPAD_5) ALT_NUMPAD_6 = ALT_(_KN.NUMPAD_6) ALT_NUMPAD_7 = ALT_(_KN.NUMPAD_7) ALT_NUMPAD_8 = ALT_(_KN.NUMPAD_8) ALT_NUMPAD_9 = ALT_(_KN.NUMPAD_9) ALT_NUMPAD_0 = ALT_(_KN.NUMPAD_0) ALT_NUMPAD_11_DIVIDE = ALT_(_KN.NUMPAD_11_DIVIDE) ALT_NUMPAD_12_MULTIPLY = ALT_(_KN.NUMPAD_12_MULTIPLY) ALT_A = ALT_(_KN.A) ALT_B = ALT_(_KN.B) ALT_C = ALT_(_KN.C) ALT_D = ALT_(_KN.D) ALT_E = ALT_(_KN.E) ALT_F = ALT_(_KN.F) ALT_G = ALT_(_KN.G) ALT_H = ALT_(_KN.H) ALT_I = ALT_(_KN.I) ALT_J = ALT_(_KN.J) ALT_K = ALT_(_KN.K) ALT_L = ALT_(_KN.L) ALT_M = ALT_(_KN.M) ALT_N = ALT_(_KN.N) ALT_O = ALT_(_KN.O) ALT_P = ALT_(_KN.P) ALT_Q = ALT_(_KN.Q) ALT_R = ALT_(_KN.R) ALT_S = ALT_(_KN.S) ALT_T = ALT_(_KN.T) ALT_U = ALT_(_KN.U) ALT_V = ALT_(_KN.V) ALT_W = ALT_(_KN.W) ALT_X = ALT_(_KN.X) ALT_Y = ALT_(_KN.Y) ALT_Z = ALT_(_KN.Z) # CTRL ALT CTRL_ALT_F1 = CTRL_ALT_(_KN.F1) CTRL_ALT_F2 = CTRL_ALT_(_KN.F2) CTRL_ALT_F3 = CTRL_ALT_(_KN.F3) CTRL_ALT_F4 = CTRL_ALT_(_KN.F4) CTRL_ALT_F5 = CTRL_ALT_(_KN.F5) CTRL_ALT_F6 = CTRL_ALT_(_KN.F6) CTRL_ALT_F7 = CTRL_ALT_(_KN.F7) CTRL_ALT_F8 = CTRL_ALT_(_KN.F8) CTRL_ALT_F9 = CTRL_ALT_(_KN.F9) CTRL_ALT_F10 = CTRL_ALT_(_KN.F10) CTRL_ALT_F11 = CTRL_ALT_(_KN.F11) CTRL_ALT_F12 = CTRL_ALT_(_KN.F12) CTRL_ALT_OEM3_WAVE_OR_BACK_QUOTE = CTRL_ALT_(_KN.OEM3_WAVE_OR_BACK_QUOTE) CTRL_ALT_1 = CTRL_ALT_(_KN.KEY_1) CTRL_ALT_2 = CTRL_ALT_(_KN.KEY_2) CTRL_ALT_3 = CTRL_ALT_(_KN.KEY_3) CTRL_ALT_4 = CTRL_ALT_(_KN.KEY_4) CTRL_ALT_5 = CTRL_ALT_(_KN.KEY_5) CTRL_ALT_6 = CTRL_ALT_(_KN.KEY_6) CTRL_ALT_7 = CTRL_ALT_(_KN.KEY_7) CTRL_ALT_8 = CTRL_ALT_(_KN.KEY_8) CTRL_ALT_9 = CTRL_ALT_(_KN.KEY_9) CTRL_ALT_0 = CTRL_ALT_(_KN.KEY_0) CTRL_ALT_11_MINUS = CTRL_ALT_(_KN.KEY_11_MINUS) CTRL_ALT_12_PLUS = CTRL_ALT_(_KN.KEY_12_PLUS) CTRL_ALT_BACKSPACE = CTRL_ALT_(_KN.BACKSPACE) CTRL_ALT_NUMPAD_1 = CTRL_ALT_(_KN.NUMPAD_1) CTRL_ALT_NUMPAD_2 = CTRL_ALT_(_KN.NUMPAD_2) CTRL_ALT_NUMPAD_3 = CTRL_ALT_(_KN.NUMPAD_3) CTRL_ALT_NUMPAD_4 = CTRL_ALT_(_KN.NUMPAD_4) CTRL_ALT_NUMPAD_5 = CTRL_ALT_(_KN.NUMPAD_5) CTRL_ALT_NUMPAD_6 = CTRL_ALT_(_KN.NUMPAD_6) CTRL_ALT_NUMPAD_7 = CTRL_ALT_(_KN.NUMPAD_7) CTRL_ALT_NUMPAD_8 = CTRL_ALT_(_KN.NUMPAD_8) CTRL_ALT_NUMPAD_9 = CTRL_ALT_(_KN.NUMPAD_9) CTRL_ALT_NUMPAD_0 = CTRL_ALT_(_KN.NUMPAD_0) CTRL_ALT_NUMPAD_11_DIVIDE = CTRL_ALT_(_KN.NUMPAD_11_DIVIDE) CTRL_ALT_NUMPAD_12_MULTIPLY = CTRL_ALT_(_KN.NUMPAD_12_MULTIPLY) CTRL_ALT_A = CTRL_ALT_(_KN.A) CTRL_ALT_B = CTRL_ALT_(_KN.B) CTRL_ALT_C = CTRL_ALT_(_KN.C) CTRL_ALT_D = CTRL_ALT_(_KN.D) CTRL_ALT_E = CTRL_ALT_(_KN.E) CTRL_ALT_F = CTRL_ALT_(_KN.F) CTRL_ALT_G = CTRL_ALT_(_KN.G) CTRL_ALT_H = CTRL_ALT_(_KN.H) CTRL_ALT_I = CTRL_ALT_(_KN.I) CTRL_ALT_J = CTRL_ALT_(_KN.J) CTRL_ALT_K = CTRL_ALT_(_KN.K) CTRL_ALT_L = CTRL_ALT_(_KN.L) CTRL_ALT_M = CTRL_ALT_(_KN.M) CTRL_ALT_N = CTRL_ALT_(_KN.N) CTRL_ALT_O = CTRL_ALT_(_KN.O) CTRL_ALT_P = CTRL_ALT_(_KN.P) CTRL_ALT_Q = CTRL_ALT_(_KN.Q) CTRL_ALT_R = CTRL_ALT_(_KN.R) CTRL_ALT_S = CTRL_ALT_(_KN.S) CTRL_ALT_T = CTRL_ALT_(_KN.T) CTRL_ALT_U = CTRL_ALT_(_KN.U) CTRL_ALT_V = CTRL_ALT_(_KN.V) CTRL_ALT_W = CTRL_ALT_(_KN.W) CTRL_ALT_X = CTRL_ALT_(_KN.X) CTRL_ALT_Y = CTRL_ALT_(_KN.Y) CTRL_ALT_Z = CTRL_ALT_(_KN.Z) # CTRL SHIFT CTRL_SHIFT_F1 = CTRL_SHIFT_(_KN.F1) CTRL_SHIFT_F2 = CTRL_SHIFT_(_KN.F2) CTRL_SHIFT_F3 = CTRL_SHIFT_(_KN.F3) CTRL_SHIFT_F4 = CTRL_SHIFT_(_KN.F4) CTRL_SHIFT_F5 = CTRL_SHIFT_(_KN.F5) CTRL_SHIFT_F6 = CTRL_SHIFT_(_KN.F6) CTRL_SHIFT_F7 = CTRL_SHIFT_(_KN.F7) CTRL_SHIFT_F8 = CTRL_SHIFT_(_KN.F8) CTRL_SHIFT_F9 = CTRL_SHIFT_(_KN.F9) CTRL_SHIFT_F10 = CTRL_SHIFT_(_KN.F10) CTRL_SHIFT_F11 = CTRL_SHIFT_(_KN.F11) CTRL_SHIFT_F12 = CTRL_SHIFT_(_KN.F12) CTRL_SHIFT_OEM3_WAVE_OR_BACK_QUOTE = CTRL_SHIFT_(_KN.OEM3_WAVE_OR_BACK_QUOTE) CTRL_SHIFT_1 = CTRL_SHIFT_(_KN.KEY_1) CTRL_SHIFT_2 = CTRL_SHIFT_(_KN.KEY_2) CTRL_SHIFT_3 = CTRL_SHIFT_(_KN.KEY_3) CTRL_SHIFT_4 = CTRL_SHIFT_(_KN.KEY_4) CTRL_SHIFT_5 = CTRL_SHIFT_(_KN.KEY_5) CTRL_SHIFT_6 = CTRL_SHIFT_(_KN.KEY_6) CTRL_SHIFT_7 = CTRL_SHIFT_(_KN.KEY_7) CTRL_SHIFT_8 = CTRL_SHIFT_(_KN.KEY_8) CTRL_SHIFT_9 = CTRL_SHIFT_(_KN.KEY_9) CTRL_SHIFT_0 = CTRL_SHIFT_(_KN.KEY_0) CTRL_SHIFT_11_MINUS = CTRL_SHIFT_(_KN.KEY_11_MINUS) CTRL_SHIFT_12_PLUS = CTRL_SHIFT_(_KN.KEY_12_PLUS) CTRL_SHIFT_BACKSPACE = CTRL_SHIFT_(_KN.BACKSPACE) CTRL_SHIFT_NUMPAD_1 = CTRL_SHIFT_(_KN.NUMPAD_1) CTRL_SHIFT_NUMPAD_2 = CTRL_SHIFT_(_KN.NUMPAD_2) CTRL_SHIFT_NUMPAD_3 = CTRL_SHIFT_(_KN.NUMPAD_3) CTRL_SHIFT_NUMPAD_4 = CTRL_SHIFT_(_KN.NUMPAD_4) CTRL_SHIFT_NUMPAD_5 = CTRL_SHIFT_(_KN.NUMPAD_5) CTRL_SHIFT_NUMPAD_6 = CTRL_SHIFT_(_KN.NUMPAD_6) CTRL_SHIFT_NUMPAD_7 = CTRL_SHIFT_(_KN.NUMPAD_7) CTRL_SHIFT_NUMPAD_8 = CTRL_SHIFT_(_KN.NUMPAD_8) CTRL_SHIFT_NUMPAD_9 = CTRL_SHIFT_(_KN.NUMPAD_9) CTRL_SHIFT_NUMPAD_0 = CTRL_SHIFT_(_KN.NUMPAD_0) CTRL_SHIFT_NUMPAD_11_DIVIDE = CTRL_SHIFT_(_KN.NUMPAD_11_DIVIDE) CTRL_SHIFT_NUMPAD_12_MULTIPLY = CTRL_SHIFT_(_KN.NUMPAD_12_MULTIPLY) CTRL_SHIFT_A = CTRL_SHIFT_(_KN.A) CTRL_SHIFT_B = CTRL_SHIFT_(_KN.B) CTRL_SHIFT_C = CTRL_SHIFT_(_KN.C) CTRL_SHIFT_D = CTRL_SHIFT_(_KN.D) CTRL_SHIFT_E = CTRL_SHIFT_(_KN.E) CTRL_SHIFT_F = CTRL_SHIFT_(_KN.F) CTRL_SHIFT_G = CTRL_SHIFT_(_KN.G) CTRL_SHIFT_H = CTRL_SHIFT_(_KN.H) CTRL_SHIFT_I = CTRL_SHIFT_(_KN.I) CTRL_SHIFT_J = CTRL_SHIFT_(_KN.J) CTRL_SHIFT_K = CTRL_SHIFT_(_KN.K) CTRL_SHIFT_L = CTRL_SHIFT_(_KN.L) CTRL_SHIFT_M = CTRL_SHIFT_(_KN.M) CTRL_SHIFT_N = CTRL_SHIFT_(_KN.N) CTRL_SHIFT_O = CTRL_SHIFT_(_KN.O) CTRL_SHIFT_P = CTRL_SHIFT_(_KN.P) CTRL_SHIFT_Q = CTRL_SHIFT_(_KN.Q) CTRL_SHIFT_R = CTRL_SHIFT_(_KN.R) CTRL_SHIFT_S = CTRL_SHIFT_(_KN.S) CTRL_SHIFT_T = CTRL_SHIFT_(_KN.T) CTRL_SHIFT_U = CTRL_SHIFT_(_KN.U) CTRL_SHIFT_V = CTRL_SHIFT_(_KN.V) CTRL_SHIFT_W = CTRL_SHIFT_(_KN.W) CTRL_SHIFT_X = CTRL_SHIFT_(_KN.X) CTRL_SHIFT_Y = CTRL_SHIFT_(_KN.Y) CTRL_SHIFT_Z = CTRL_SHIFT_(_KN.Z) # ALT SHIFT ALT_SHIFT_F1 = ALT_SHIFT_(_KN.F1) ALT_SHIFT_F2 = ALT_SHIFT_(_KN.F2) ALT_SHIFT_F3 = ALT_SHIFT_(_KN.F3) ALT_SHIFT_F4 = ALT_SHIFT_(_KN.F4) ALT_SHIFT_F5 = ALT_SHIFT_(_KN.F5) ALT_SHIFT_F6 = ALT_SHIFT_(_KN.F6) ALT_SHIFT_F7 = ALT_SHIFT_(_KN.F7) ALT_SHIFT_F8 = ALT_SHIFT_(_KN.F8) ALT_SHIFT_F9 = ALT_SHIFT_(_KN.F9) ALT_SHIFT_F10 = ALT_SHIFT_(_KN.F10) ALT_SHIFT_F11 = ALT_SHIFT_(_KN.F11) ALT_SHIFT_F12 = ALT_SHIFT_(_KN.F12) ALT_SHIFT_OEM3_WAVE_OR_BACK_QUOTE = ALT_SHIFT_(_KN.OEM3_WAVE_OR_BACK_QUOTE) ALT_SHIFT_1 = ALT_SHIFT_(_KN.KEY_1) ALT_SHIFT_2 = ALT_SHIFT_(_KN.KEY_2) ALT_SHIFT_3 = ALT_SHIFT_(_KN.KEY_3) ALT_SHIFT_4 = ALT_SHIFT_(_KN.KEY_4) ALT_SHIFT_5 = ALT_SHIFT_(_KN.KEY_5) ALT_SHIFT_6 = ALT_SHIFT_(_KN.KEY_6) ALT_SHIFT_7 = ALT_SHIFT_(_KN.KEY_7) ALT_SHIFT_8 = ALT_SHIFT_(_KN.KEY_8) ALT_SHIFT_9 = ALT_SHIFT_(_KN.KEY_9) ALT_SHIFT_0 = ALT_SHIFT_(_KN.KEY_0) ALT_SHIFT_11_MINUS = ALT_SHIFT_(_KN.KEY_11_MINUS) ALT_SHIFT_12_PLUS = ALT_SHIFT_(_KN.KEY_12_PLUS) ALT_SHIFT_BACKSPACE = ALT_SHIFT_(_KN.BACKSPACE) ALT_SHIFT_NUMPAD_1 = ALT_SHIFT_(_KN.NUMPAD_1) ALT_SHIFT_NUMPAD_2 = ALT_SHIFT_(_KN.NUMPAD_2) ALT_SHIFT_NUMPAD_3 = ALT_SHIFT_(_KN.NUMPAD_3) ALT_SHIFT_NUMPAD_4 = ALT_SHIFT_(_KN.NUMPAD_4) ALT_SHIFT_NUMPAD_5 = ALT_SHIFT_(_KN.NUMPAD_5) ALT_SHIFT_NUMPAD_6 = ALT_SHIFT_(_KN.NUMPAD_6) ALT_SHIFT_NUMPAD_7 = ALT_SHIFT_(_KN.NUMPAD_7) ALT_SHIFT_NUMPAD_8 = ALT_SHIFT_(_KN.NUMPAD_8) ALT_SHIFT_NUMPAD_9 = ALT_SHIFT_(_KN.NUMPAD_9) ALT_SHIFT_NUMPAD_0 = ALT_SHIFT_(_KN.NUMPAD_0) ALT_SHIFT_NUMPAD_11_DIVIDE = ALT_SHIFT_(_KN.NUMPAD_11_DIVIDE) ALT_SHIFT_NUMPAD_12_MULTIPLY = ALT_SHIFT_(_KN.NUMPAD_12_MULTIPLY) ALT_SHIFT_A = ALT_SHIFT_(_KN.A) ALT_SHIFT_B = ALT_SHIFT_(_KN.B) ALT_SHIFT_C = ALT_SHIFT_(_KN.C) ALT_SHIFT_D = ALT_SHIFT_(_KN.D) ALT_SHIFT_E = ALT_SHIFT_(_KN.E) ALT_SHIFT_F = ALT_SHIFT_(_KN.F) ALT_SHIFT_G = ALT_SHIFT_(_KN.G) ALT_SHIFT_H = ALT_SHIFT_(_KN.H) ALT_SHIFT_I = ALT_SHIFT_(_KN.I) ALT_SHIFT_J = ALT_SHIFT_(_KN.J) ALT_SHIFT_K = ALT_SHIFT_(_KN.K) ALT_SHIFT_L = ALT_SHIFT_(_KN.L) ALT_SHIFT_M = ALT_SHIFT_(_KN.M) ALT_SHIFT_N = ALT_SHIFT_(_KN.N) ALT_SHIFT_O = ALT_SHIFT_(_KN.O) ALT_SHIFT_P = ALT_SHIFT_(_KN.P) ALT_SHIFT_Q = ALT_SHIFT_(_KN.Q) ALT_SHIFT_R = ALT_SHIFT_(_KN.R) ALT_SHIFT_S = ALT_SHIFT_(_KN.S) ALT_SHIFT_T = ALT_SHIFT_(_KN.T) ALT_SHIFT_U = ALT_SHIFT_(_KN.U) ALT_SHIFT_V = ALT_SHIFT_(_KN.V) ALT_SHIFT_W = ALT_SHIFT_(_KN.W) ALT_SHIFT_X = ALT_SHIFT_(_KN.X) ALT_SHIFT_Y = ALT_SHIFT_(_KN.Y) ALT_SHIFT_Z = ALT_SHIFT_(_KN.Z) # CTRL SHIFT ALT CTRL_SHIFT_ALT_F1 = CTRL_SHIFT_ALT_(_KN.F1) CTRL_SHIFT_ALT_F2 = CTRL_SHIFT_ALT_(_KN.F2) CTRL_SHIFT_ALT_F3 = CTRL_SHIFT_ALT_(_KN.F3) CTRL_SHIFT_ALT_F4 = CTRL_SHIFT_ALT_(_KN.F4) CTRL_SHIFT_ALT_F5 = CTRL_SHIFT_ALT_(_KN.F5) CTRL_SHIFT_ALT_F6 = CTRL_SHIFT_ALT_(_KN.F6) CTRL_SHIFT_ALT_F7 = CTRL_SHIFT_ALT_(_KN.F7) CTRL_SHIFT_ALT_F8 = CTRL_SHIFT_ALT_(_KN.F8) CTRL_SHIFT_ALT_F9 = CTRL_SHIFT_ALT_(_KN.F9) CTRL_SHIFT_ALT_F10 = CTRL_SHIFT_ALT_(_KN.F10) CTRL_SHIFT_ALT_F11 = CTRL_SHIFT_ALT_(_KN.F11) CTRL_SHIFT_ALT_F12 = CTRL_SHIFT_ALT_(_KN.F12) CTRL_SHIFT_ALT_OEM3_WAVE_OR_BACK_QUOTE = CTRL_SHIFT_ALT_(_KN.OEM3_WAVE_OR_BACK_QUOTE) CTRL_SHIFT_ALT_1 = CTRL_SHIFT_ALT_(_KN.KEY_1) CTRL_SHIFT_ALT_2 = CTRL_SHIFT_ALT_(_KN.KEY_2) CTRL_SHIFT_ALT_3 = CTRL_SHIFT_ALT_(_KN.KEY_3) CTRL_SHIFT_ALT_4 = CTRL_SHIFT_ALT_(_KN.KEY_4) CTRL_SHIFT_ALT_5 = CTRL_SHIFT_ALT_(_KN.KEY_5) CTRL_SHIFT_ALT_6 = CTRL_SHIFT_ALT_(_KN.KEY_6) CTRL_SHIFT_ALT_7 = CTRL_SHIFT_ALT_(_KN.KEY_7) CTRL_SHIFT_ALT_8 = CTRL_SHIFT_ALT_(_KN.KEY_8) CTRL_SHIFT_ALT_9 = CTRL_SHIFT_ALT_(_KN.KEY_9) CTRL_SHIFT_ALT_0 = CTRL_SHIFT_ALT_(_KN.KEY_0) CTRL_SHIFT_ALT_11_MINUS = CTRL_SHIFT_ALT_(_KN.KEY_11_MINUS) CTRL_SHIFT_ALT_12_PLUS = CTRL_SHIFT_ALT_(_KN.KEY_12_PLUS) CTRL_SHIFT_ALT_BACKSPACE = CTRL_SHIFT_ALT_(_KN.BACKSPACE) CTRL_SHIFT_ALT_NUMPAD_1 = CTRL_SHIFT_ALT_(_KN.NUMPAD_1) CTRL_SHIFT_ALT_NUMPAD_2 = CTRL_SHIFT_ALT_(_KN.NUMPAD_2) CTRL_SHIFT_ALT_NUMPAD_3 = CTRL_SHIFT_ALT_(_KN.NUMPAD_3) CTRL_SHIFT_ALT_NUMPAD_4 = CTRL_SHIFT_ALT_(_KN.NUMPAD_4) CTRL_SHIFT_ALT_NUMPAD_5 = CTRL_SHIFT_ALT_(_KN.NUMPAD_5) CTRL_SHIFT_ALT_NUMPAD_6 = CTRL_SHIFT_ALT_(_KN.NUMPAD_6) CTRL_SHIFT_ALT_NUMPAD_7 = CTRL_SHIFT_ALT_(_KN.NUMPAD_7) CTRL_SHIFT_ALT_NUMPAD_8 = CTRL_SHIFT_ALT_(_KN.NUMPAD_8) CTRL_SHIFT_ALT_NUMPAD_9 = CTRL_SHIFT_ALT_(_KN.NUMPAD_9) CTRL_SHIFT_ALT_NUMPAD_0 = CTRL_SHIFT_ALT_(_KN.NUMPAD_0) CTRL_SHIFT_ALT_NUMPAD_11_DIVIDE = CTRL_SHIFT_ALT_(_KN.NUMPAD_11_DIVIDE) CTRL_SHIFT_ALT_NUMPAD_12_MULTIPLY = CTRL_SHIFT_ALT_(_KN.NUMPAD_12_MULTIPLY) CTRL_SHIFT_ALT_A = CTRL_SHIFT_ALT_(_KN.A) CTRL_SHIFT_ALT_B = CTRL_SHIFT_ALT_(_KN.B) CTRL_SHIFT_ALT_C = CTRL_SHIFT_ALT_(_KN.C) CTRL_SHIFT_ALT_D = CTRL_SHIFT_ALT_(_KN.D) CTRL_SHIFT_ALT_E = CTRL_SHIFT_ALT_(_KN.E) CTRL_SHIFT_ALT_F = CTRL_SHIFT_ALT_(_KN.F) CTRL_SHIFT_ALT_G = CTRL_SHIFT_ALT_(_KN.G) CTRL_SHIFT_ALT_H = CTRL_SHIFT_ALT_(_KN.H) CTRL_SHIFT_ALT_I = CTRL_SHIFT_ALT_(_KN.I) CTRL_SHIFT_ALT_J = CTRL_SHIFT_ALT_(_KN.J) CTRL_SHIFT_ALT_K = CTRL_SHIFT_ALT_(_KN.K) CTRL_SHIFT_ALT_L = CTRL_SHIFT_ALT_(_KN.L) CTRL_SHIFT_ALT_M = CTRL_SHIFT_ALT_(_KN.M) CTRL_SHIFT_ALT_N = CTRL_SHIFT_ALT_(_KN.N) CTRL_SHIFT_ALT_O = CTRL_SHIFT_ALT_(_KN.O) CTRL_SHIFT_ALT_P = CTRL_SHIFT_ALT_(_KN.P) CTRL_SHIFT_ALT_Q = CTRL_SHIFT_ALT_(_KN.Q) CTRL_SHIFT_ALT_R = CTRL_SHIFT_ALT_(_KN.R) CTRL_SHIFT_ALT_S = CTRL_SHIFT_ALT_(_KN.S) CTRL_SHIFT_ALT_T = CTRL_SHIFT_ALT_(_KN.T) CTRL_SHIFT_ALT_U = CTRL_SHIFT_ALT_(_KN.U) CTRL_SHIFT_ALT_V = CTRL_SHIFT_ALT_(_KN.V) CTRL_SHIFT_ALT_W = CTRL_SHIFT_ALT_(_KN.W) CTRL_SHIFT_ALT_X = CTRL_SHIFT_ALT_(_KN.X) CTRL_SHIFT_ALT_Y = CTRL_SHIFT_ALT_(_KN.Y) CTRL_SHIFT_ALT_Z = CTRL_SHIFT_ALT_(_KN.Z)