JustPaste.it

EffectOnWindow.elm

module Common.EffectOnWindow exposing (..)


type VirtualKeyCode
= VirtualKeyCodeFromInt Int
-- Names from https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
| VK_LBUTTON
| VK_RBUTTON
| VK_CANCEL
| VK_BACK
| VK_TAB
| VK_CLEAR
| VK_RETURN
| VK_SHIFT
| VK_CONTROL
| VK_MENU
| VK_PAUSE
| VK_CAPITAL
| VK_ESCAPE
| VK_SPACE
| VK_PRIOR
| VK_NEXT
| VK_END
| VK_HOME
| VK_LEFT
| VK_UP
| VK_RIGHT
| VK_DOWN
| VK_SELECT
| VK_PRINT
| VK_EXECUTE
| VK_SNAPSHOT
| VK_INSERT
| VK_DELETE
| VK_HELP
| VK_0
| VK_1
| VK_2
| VK_3
| VK_4
| VK_5
| VK_6
| VK_7
| VK_8
| VK_9
| VK_A
| VK_B
| VK_C
| VK_D
| VK_E
| VK_F
| VK_G
| VK_H
| VK_I
| VK_J
| VK_K
| VK_L
| VK_M
| VK_N
| VK_O
| VK_P
| VK_Q
| VK_R
| VK_S
| VK_T
| VK_U
| VK_V
| VK_W
| VK_X
| VK_Y
| VK_Z
| VK_LWIN
| VK_RWIN
| VK_APPS
| VK_SLEEP
| VK_NUMPAD0
| VK_NUMPAD1
| VK_NUMPAD2
| VK_NUMPAD3
| VK_NUMPAD4
| VK_NUMPAD5
| VK_NUMPAD6
| VK_NUMPAD7
| VK_NUMPAD8
| VK_NUMPAD9
| VK_MULTIPLY
| VK_ADD
| VK_SEPARATOR
| VK_SUBTRACT
| VK_DECIMAL
| VK_DIVIDE
| VK_F1
| VK_F2
| VK_F3
| VK_F4
| VK_F5
| VK_F6
| VK_F7
| VK_F8
| VK_F9
| VK_F10
| VK_F11
| VK_F12
| VK_NUMLOCK
| VK_SCROLL
| VK_LSHIFT
| VK_RSHIFT
| VK_LCONTROL
| VK_RCONTROL
| VK_LMENU
| VK_RMENU


type MouseButton
= MouseButtonLeft
| MouseButtonRight


virtualKeyCodeFromMouseButton : MouseButton -> VirtualKeyCode
virtualKeyCodeFromMouseButton mouseButton =
case mouseButton of
MouseButtonLeft ->
VirtualKeyCodeFromInt 1

MouseButtonRight ->
VirtualKeyCodeFromInt 1


virtualKeyCodeAsInteger : VirtualKeyCode -> Int
virtualKeyCodeAsInteger keyCode =
-- Mapping from https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
case keyCode of
VirtualKeyCodeFromInt asInt ->
asInt

VK_LBUTTON ->
0x0001
VK_RBUTTON ->
0x0002
VK_CANCEL ->
0x0003
VK_BACK ->
0x0008
VK_TAB ->
0x0009
VK_CLEAR ->
0x000C
VK_RETURN ->
0x0D
VK_SHIFT ->
0x10
VK_CONTROL ->
0x11
VK_MENU ->
0x12
VK_PAUSE ->
0x0013
VK_CAPITAL ->
0x0014
VK_ESCAPE ->
0x001B
VK_SPACE ->
0x0020
VK_PRIOR ->
0x0021
VK_NEXT ->
0x0022
VK_END ->
0x0023
VK_HOME ->
0x0024
VK_LEFT ->
0x0025
VK_UP ->
0x0026
VK_RIGHT ->
0x0027
VK_DOWN ->
0x0028
VK_SELECT ->
0x0029
VK_PRINT ->
0x002A
VK_EXECUTE ->
0x002B
VK_SNAPSHOT ->
0x002C
VK_INSERT ->
0x002D
VK_DELETE ->
0x002E
VK_HELP ->
0x002F
VK_0 ->
0x0030
VK_1 ->
0x0031
VK_2 ->
0x0032
VK_3 ->
0x0033
VK_4 ->
0x0034
VK_5 ->
0x0035
VK_6 ->
0x0036
VK_7 ->
0x0037
VK_8 ->
0x0038
VK_9 ->
0x0039
VK_A ->
0x0041
VK_B ->
0x0042
VK_C ->
0x0043
VK_D ->
0x0044
VK_E ->
0x0045
VK_F ->
0x0046
VK_G ->
0x0047
VK_H ->
0x0048
VK_I ->
0x0049
VK_J ->
0x004A
VK_K ->
0x004B
VK_L ->
0x004C
VK_M ->
0x004D
VK_N ->
0x004E
VK_O ->
0x004F
VK_P ->
0x0050
VK_Q ->
0x0051
VK_R ->
0x0052
VK_S ->
0x0053
VK_T ->
0x0054
VK_U ->
0x0055
VK_V ->
0x0056
VK_W ->
0x0057
VK_X ->
0x0058
VK_Y ->
0x0059
VK_Z ->
0x005A
VK_LWIN ->
0x005B
VK_RWIN ->
0x005C
VK_APPS ->
0x005D
VK_SLEEP ->
0x005F
VK_NUMPAD0 ->
0x0060
VK_NUMPAD1 ->
0x0061
VK_NUMPAD2 ->
0x0062
VK_NUMPAD3 ->
0x0063
VK_NUMPAD4 ->
0x0064
VK_NUMPAD5 ->
0x0065
VK_NUMPAD6 ->
0x0066
VK_NUMPAD7 ->
0x0067
VK_NUMPAD8 ->
0x0068
VK_NUMPAD9 ->
0x0069
VK_MULTIPLY ->
0x006A
VK_ADD ->
0x006B
VK_SEPARATOR ->
0x006C
VK_SUBTRACT ->
0x006D
VK_DECIMAL ->
0x006E
VK_DIVIDE ->
0x006F
VK_F1 ->
0x0070
VK_F2 ->
0x0071
VK_F3 ->
0x0072
VK_F4 ->
0x0073
VK_F5 ->
0x0074
VK_F6 ->
0x0075
VK_F7 ->
0x0076
VK_F8 ->
0x0077
VK_F9 ->
0x0078
VK_F10 ->
0x0079
VK_F11 ->
0x007A
VK_F12 ->
0x007B

VK_NUMLOCK ->
0x0090
VK_SCROLL ->
0x0091
VK_LSHIFT ->
0x00A0
VK_RSHIFT ->
0x00A1
VK_LCONTROL ->
0x00A2
VK_RCONTROL ->
0x00A3
VK_LMENU ->
0x00A4
VK_RMENU ->
0x00A5

 

key_F1 : VirtualKeyCode
key_F1 =
VirtualKeyCodeFromInt 0x70


key_F2 : VirtualKeyCode
key_F2 =
VirtualKeyCodeFromInt 0x71


key_F3 : VirtualKeyCode
key_F3 =
VirtualKeyCodeFromInt 0x72


key_F4 : VirtualKeyCode
key_F4 =
VirtualKeyCodeFromInt 0x73


key_F5 : VirtualKeyCode
key_F5 =
VirtualKeyCodeFromInt 0x74


key_F6 : VirtualKeyCode
key_F6 =
VirtualKeyCodeFromInt 0x75


key_F7 : VirtualKeyCode
key_F7 =
VirtualKeyCodeFromInt 0x76


key_F8 : VirtualKeyCode
key_F8 =
VirtualKeyCodeFromInt 0x77


key_F9 : VirtualKeyCode
key_F9 =
VirtualKeyCodeFromInt 0x78


key_F10 : VirtualKeyCode
key_F10 =
VirtualKeyCodeFromInt 0x79


key_F11 : VirtualKeyCode
key_F11 =
VirtualKeyCodeFromInt 0x7A


key_F12 : VirtualKeyCode
key_F12 =
VirtualKeyCodeFromInt 0x7B