module Graphics.Win32.Key where
import Graphics.Win32.GDI.Types
import System.Win32.Types
import Control.Monad (liftM)
#include "windows_cconv.h"
type VKey = DWORD
vK_LBUTTON :: VKey
vK_LBUTTON = 1
vK_RBUTTON :: VKey
vK_RBUTTON = 2
vK_CANCEL :: VKey
vK_CANCEL = 3
vK_MBUTTON :: VKey
vK_MBUTTON = 4
vK_BACK :: VKey
vK_BACK = 8
vK_TAB :: VKey
vK_TAB = 9
vK_CLEAR :: VKey
vK_CLEAR = 12
vK_RETURN :: VKey
vK_RETURN = 13
vK_SHIFT :: VKey
vK_SHIFT = 16
vK_CONTROL :: VKey
vK_CONTROL = 17
vK_MENU :: VKey
vK_MENU = 18
vK_PAUSE :: VKey
vK_PAUSE = 19
vK_CAPITAL :: VKey
vK_CAPITAL = 20
vK_ESCAPE :: VKey
vK_ESCAPE = 27
vK_SPACE :: VKey
vK_SPACE = 32
vK_PRIOR :: VKey
vK_PRIOR = 33
vK_NEXT :: VKey
vK_NEXT = 34
vK_END :: VKey
vK_END = 35
vK_HOME :: VKey
vK_HOME = 36
vK_LEFT :: VKey
vK_LEFT = 37
vK_UP :: VKey
vK_UP = 38
vK_RIGHT :: VKey
vK_RIGHT = 39
vK_DOWN :: VKey
vK_DOWN = 40
vK_SELECT :: VKey
vK_SELECT = 41
vK_EXECUTE :: VKey
vK_EXECUTE = 43
vK_SNAPSHOT :: VKey
vK_SNAPSHOT = 44
vK_INSERT :: VKey
vK_INSERT = 45
vK_DELETE :: VKey
vK_DELETE = 46
vK_HELP :: VKey
vK_HELP = 47
vK_NUMPAD0 :: VKey
vK_NUMPAD0 = 96
vK_NUMPAD1 :: VKey
vK_NUMPAD1 = 97
vK_NUMPAD2 :: VKey
vK_NUMPAD2 = 98
vK_NUMPAD3 :: VKey
vK_NUMPAD3 = 99
vK_NUMPAD4 :: VKey
vK_NUMPAD4 = 100
vK_NUMPAD5 :: VKey
vK_NUMPAD5 = 101
vK_NUMPAD6 :: VKey
vK_NUMPAD6 = 102
vK_NUMPAD7 :: VKey
vK_NUMPAD7 = 103
vK_NUMPAD8 :: VKey
vK_NUMPAD8 = 104
vK_NUMPAD9 :: VKey
vK_NUMPAD9 = 105
vK_MULTIPLY :: VKey
vK_MULTIPLY = 106
vK_ADD :: VKey
vK_ADD = 107
vK_SEPARATOR :: VKey
vK_SEPARATOR = 108
vK_SUBTRACT :: VKey
vK_SUBTRACT = 109
vK_DECIMAL :: VKey
vK_DECIMAL = 110
vK_DIVIDE :: VKey
vK_DIVIDE = 111
vK_F1 :: VKey
vK_F1 = 112
vK_F2 :: VKey
vK_F2 = 113
vK_F3 :: VKey
vK_F3 = 114
vK_F4 :: VKey
vK_F4 = 115
vK_F5 :: VKey
vK_F5 = 116
vK_F6 :: VKey
vK_F6 = 117
vK_F7 :: VKey
vK_F7 = 118
vK_F8 :: VKey
vK_F8 = 119
vK_F9 :: VKey
vK_F9 = 120
vK_F10 :: VKey
vK_F10 = 121
vK_F11 :: VKey
vK_F11 = 122
vK_F12 :: VKey
vK_F12 = 123
vK_F13 :: VKey
vK_F13 = 124
vK_F14 :: VKey
vK_F14 = 125
vK_F15 :: VKey
vK_F15 = 126
vK_F16 :: VKey
vK_F16 = 127
vK_F17 :: VKey
vK_F17 = 128
vK_F18 :: VKey
vK_F18 = 129
vK_F19 :: VKey
vK_F19 = 130
vK_F20 :: VKey
vK_F20 = 131
vK_F21 :: VKey
vK_F21 = 132
vK_F22 :: VKey
vK_F22 = 133
vK_F23 :: VKey
vK_F23 = 134
vK_F24 :: VKey
vK_F24 = 135
vK_NUMLOCK :: VKey
vK_NUMLOCK = 144
vK_SCROLL :: VKey
vK_SCROLL = 145
foreign import WINDOWS_CCONV unsafe "windows.h EnableWindow"
enableWindow :: HWND -> Bool -> IO Bool
getActiveWindow :: IO (Maybe HWND)
getActiveWindow = liftM ptrToMaybe c_GetActiveWindow
foreign import WINDOWS_CCONV unsafe "windows.h GetActiveWindow"
c_GetActiveWindow :: IO HWND
foreign import WINDOWS_CCONV unsafe "windows.h GetAsyncKeyState"
getAsyncKeyState :: Int -> IO WORD
getFocus :: IO (Maybe HWND)
getFocus = liftM ptrToMaybe c_GetFocus
foreign import WINDOWS_CCONV unsafe "windows.h GetFocus"
c_GetFocus :: IO HWND
foreign import WINDOWS_CCONV unsafe "windows.h GetKBCodePage"
getKBCodePage :: IO UINT
foreign import WINDOWS_CCONV unsafe "windows.h IsWindowEnabled"
isWindowEnabled :: HWND -> IO Bool