dear-imgui-raw-1.0.0: src/DearImGui/Raw/Enums/ImGuiKey.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Enums.ImGuiKey
( ImGuiKey
, pattern A
, pattern Apostrophe
, pattern AppBack
, pattern AppForward
, pattern B
, pattern Backslash
, pattern Backspace
, pattern C
, pattern CapsLock
, pattern Comma
, pattern D
, pattern Delete
, pattern DownArrow
, pattern E
, pattern End
, pattern Enter
, pattern Equal
, pattern Escape
, pattern F
, pattern F1
, pattern F10
, pattern F11
, pattern F12
, pattern F13
, pattern F14
, pattern F15
, pattern F16
, pattern F17
, pattern F18
, pattern F19
, pattern F2
, pattern F20
, pattern F21
, pattern F22
, pattern F23
, pattern F24
, pattern F3
, pattern F4
, pattern F5
, pattern F6
, pattern F7
, pattern F8
, pattern F9
, pattern G
, pattern GamepadBack
, pattern GamepadDpadDown
, pattern GamepadDpadLeft
, pattern GamepadDpadRight
, pattern GamepadDpadUp
, pattern GamepadFaceDown
, pattern GamepadFaceLeft
, pattern GamepadFaceRight
, pattern GamepadFaceUp
, pattern GamepadL1
, pattern GamepadL2
, pattern GamepadL3
, pattern GamepadLStickDown
, pattern GamepadLStickLeft
, pattern GamepadLStickRight
, pattern GamepadLStickUp
, pattern GamepadR1
, pattern GamepadR2
, pattern GamepadR3
, pattern GamepadRStickDown
, pattern GamepadRStickLeft
, pattern GamepadRStickRight
, pattern GamepadRStickUp
, pattern GamepadStart
, pattern GraveAccent
, pattern H
, pattern Home
, pattern I
, pattern ImGuiKey_0
, pattern ImGuiKey_1
, pattern ImGuiKey_2
, pattern ImGuiKey_3
, pattern ImGuiKey_4
, pattern ImGuiKey_5
, pattern ImGuiKey_6
, pattern ImGuiKey_7
, pattern ImGuiKey_8
, pattern ImGuiKey_9
, pattern ImGuiMod_Alt
, pattern ImGuiMod_Ctrl
, pattern ImGuiMod_Mask_
, pattern ImGuiMod_None
, pattern ImGuiMod_Shift
, pattern ImGuiMod_Super
, pattern Insert
, pattern J
, pattern K
, pattern Keypad0
, pattern Keypad1
, pattern Keypad2
, pattern Keypad3
, pattern Keypad4
, pattern Keypad5
, pattern Keypad6
, pattern Keypad7
, pattern Keypad8
, pattern Keypad9
, pattern KeypadAdd
, pattern KeypadDecimal
, pattern KeypadDivide
, pattern KeypadEnter
, pattern KeypadEqual
, pattern KeypadMultiply
, pattern KeypadSubtract
, pattern L
, pattern LeftAlt
, pattern LeftArrow
, pattern LeftBracket
, pattern LeftCtrl
, pattern LeftShift
, pattern LeftSuper
, pattern M
, pattern Menu
, pattern Minus
, pattern MouseLeft
, pattern MouseMiddle
, pattern MouseRight
, pattern MouseWheelX
, pattern MouseWheelY
, pattern MouseX1
, pattern MouseX2
, pattern N
, pattern NamedKey_BEGIN
, pattern NamedKey_COUNT
, pattern NamedKey_END
, pattern None
, pattern NumLock
, pattern O
, pattern Oem102
, pattern P
, pattern PageDown
, pattern PageUp
, pattern Pause
, pattern Period
, pattern PrintScreen
, pattern Q
, pattern R
, pattern ReservedForModAlt
, pattern ReservedForModCtrl
, pattern ReservedForModShift
, pattern ReservedForModSuper
, pattern RightAlt
, pattern RightArrow
, pattern RightBracket
, pattern RightCtrl
, pattern RightShift
, pattern RightSuper
, pattern S
, pattern ScrollLock
, pattern Semicolon
, pattern Slash
, pattern Space
, pattern T
, pattern Tab
, pattern U
, pattern UpArrow
, pattern V
, pattern W
, pattern X
, pattern Y
, pattern Z
) where
import Foreign.C.Types
#include "dcimgui_nodefaultargfunctions.h"
-- enums
-- | A key identifier (ImGuiKey_XXX or ImGuiMod_XXX value): can represent Keyboard, Mouse and Gamepad values.
-- All our named keys are >= 512. Keys value 0 to 511 are left unused and were legacy native/opaque key values (< 1.87).
-- Support for legacy keys was completely removed in 1.91.5.
-- Read details about the 1.87+ transition : https://github.com/ocornut/imgui/issues/4921
-- Note that "Keys" related to physical keys and are not the same concept as input "Characters", the latter are submitted via io.AddInputCharacter().
-- The keyboard key enum values are named after the keys on a standard US keyboard, and on other keyboard types the keys reported may not match the keycaps.
-- Forward declared enum type ImGuiKey
type ImGuiKey = CInt
-- | Keyboard
pattern None :: ImGuiKey
pattern None = #{const ImGuiKey_None}
-- | First valid key value (other than 0)
pattern NamedKey_BEGIN :: ImGuiKey
pattern NamedKey_BEGIN = #{const ImGuiKey_NamedKey_BEGIN}
-- | == ImGuiKey_NamedKey_BEGIN
pattern Tab :: ImGuiKey
pattern Tab = #{const ImGuiKey_Tab}
pattern LeftArrow :: ImGuiKey
pattern LeftArrow = #{const ImGuiKey_LeftArrow}
pattern RightArrow :: ImGuiKey
pattern RightArrow = #{const ImGuiKey_RightArrow}
pattern UpArrow :: ImGuiKey
pattern UpArrow = #{const ImGuiKey_UpArrow}
pattern DownArrow :: ImGuiKey
pattern DownArrow = #{const ImGuiKey_DownArrow}
pattern PageUp :: ImGuiKey
pattern PageUp = #{const ImGuiKey_PageUp}
pattern PageDown :: ImGuiKey
pattern PageDown = #{const ImGuiKey_PageDown}
pattern Home :: ImGuiKey
pattern Home = #{const ImGuiKey_Home}
pattern End :: ImGuiKey
pattern End = #{const ImGuiKey_End}
pattern Insert :: ImGuiKey
pattern Insert = #{const ImGuiKey_Insert}
pattern Delete :: ImGuiKey
pattern Delete = #{const ImGuiKey_Delete}
pattern Backspace :: ImGuiKey
pattern Backspace = #{const ImGuiKey_Backspace}
pattern Space :: ImGuiKey
pattern Space = #{const ImGuiKey_Space}
pattern Enter :: ImGuiKey
pattern Enter = #{const ImGuiKey_Enter}
pattern Escape :: ImGuiKey
pattern Escape = #{const ImGuiKey_Escape}
pattern LeftCtrl :: ImGuiKey
pattern LeftCtrl = #{const ImGuiKey_LeftCtrl}
pattern LeftShift :: ImGuiKey
pattern LeftShift = #{const ImGuiKey_LeftShift}
pattern LeftAlt :: ImGuiKey
pattern LeftAlt = #{const ImGuiKey_LeftAlt}
-- | Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!
pattern LeftSuper :: ImGuiKey
pattern LeftSuper = #{const ImGuiKey_LeftSuper}
pattern RightCtrl :: ImGuiKey
pattern RightCtrl = #{const ImGuiKey_RightCtrl}
pattern RightShift :: ImGuiKey
pattern RightShift = #{const ImGuiKey_RightShift}
pattern RightAlt :: ImGuiKey
pattern RightAlt = #{const ImGuiKey_RightAlt}
pattern RightSuper :: ImGuiKey
pattern RightSuper = #{const ImGuiKey_RightSuper}
pattern Menu :: ImGuiKey
pattern Menu = #{const ImGuiKey_Menu}
pattern ImGuiKey_0 :: ImGuiKey
pattern ImGuiKey_0 = #{const ImGuiKey_0}
pattern ImGuiKey_1 :: ImGuiKey
pattern ImGuiKey_1 = #{const ImGuiKey_1}
pattern ImGuiKey_2 :: ImGuiKey
pattern ImGuiKey_2 = #{const ImGuiKey_2}
pattern ImGuiKey_3 :: ImGuiKey
pattern ImGuiKey_3 = #{const ImGuiKey_3}
pattern ImGuiKey_4 :: ImGuiKey
pattern ImGuiKey_4 = #{const ImGuiKey_4}
pattern ImGuiKey_5 :: ImGuiKey
pattern ImGuiKey_5 = #{const ImGuiKey_5}
pattern ImGuiKey_6 :: ImGuiKey
pattern ImGuiKey_6 = #{const ImGuiKey_6}
pattern ImGuiKey_7 :: ImGuiKey
pattern ImGuiKey_7 = #{const ImGuiKey_7}
pattern ImGuiKey_8 :: ImGuiKey
pattern ImGuiKey_8 = #{const ImGuiKey_8}
pattern ImGuiKey_9 :: ImGuiKey
pattern ImGuiKey_9 = #{const ImGuiKey_9}
pattern A :: ImGuiKey
pattern A = #{const ImGuiKey_A}
pattern B :: ImGuiKey
pattern B = #{const ImGuiKey_B}
pattern C :: ImGuiKey
pattern C = #{const ImGuiKey_C}
pattern D :: ImGuiKey
pattern D = #{const ImGuiKey_D}
pattern E :: ImGuiKey
pattern E = #{const ImGuiKey_E}
pattern F :: ImGuiKey
pattern F = #{const ImGuiKey_F}
pattern G :: ImGuiKey
pattern G = #{const ImGuiKey_G}
pattern H :: ImGuiKey
pattern H = #{const ImGuiKey_H}
pattern I :: ImGuiKey
pattern I = #{const ImGuiKey_I}
pattern J :: ImGuiKey
pattern J = #{const ImGuiKey_J}
pattern K :: ImGuiKey
pattern K = #{const ImGuiKey_K}
pattern L :: ImGuiKey
pattern L = #{const ImGuiKey_L}
pattern M :: ImGuiKey
pattern M = #{const ImGuiKey_M}
pattern N :: ImGuiKey
pattern N = #{const ImGuiKey_N}
pattern O :: ImGuiKey
pattern O = #{const ImGuiKey_O}
pattern P :: ImGuiKey
pattern P = #{const ImGuiKey_P}
pattern Q :: ImGuiKey
pattern Q = #{const ImGuiKey_Q}
pattern R :: ImGuiKey
pattern R = #{const ImGuiKey_R}
pattern S :: ImGuiKey
pattern S = #{const ImGuiKey_S}
pattern T :: ImGuiKey
pattern T = #{const ImGuiKey_T}
pattern U :: ImGuiKey
pattern U = #{const ImGuiKey_U}
pattern V :: ImGuiKey
pattern V = #{const ImGuiKey_V}
pattern W :: ImGuiKey
pattern W = #{const ImGuiKey_W}
pattern X :: ImGuiKey
pattern X = #{const ImGuiKey_X}
pattern Y :: ImGuiKey
pattern Y = #{const ImGuiKey_Y}
pattern Z :: ImGuiKey
pattern Z = #{const ImGuiKey_Z}
pattern F1 :: ImGuiKey
pattern F1 = #{const ImGuiKey_F1}
pattern F2 :: ImGuiKey
pattern F2 = #{const ImGuiKey_F2}
pattern F3 :: ImGuiKey
pattern F3 = #{const ImGuiKey_F3}
pattern F4 :: ImGuiKey
pattern F4 = #{const ImGuiKey_F4}
pattern F5 :: ImGuiKey
pattern F5 = #{const ImGuiKey_F5}
pattern F6 :: ImGuiKey
pattern F6 = #{const ImGuiKey_F6}
pattern F7 :: ImGuiKey
pattern F7 = #{const ImGuiKey_F7}
pattern F8 :: ImGuiKey
pattern F8 = #{const ImGuiKey_F8}
pattern F9 :: ImGuiKey
pattern F9 = #{const ImGuiKey_F9}
pattern F10 :: ImGuiKey
pattern F10 = #{const ImGuiKey_F10}
pattern F11 :: ImGuiKey
pattern F11 = #{const ImGuiKey_F11}
pattern F12 :: ImGuiKey
pattern F12 = #{const ImGuiKey_F12}
pattern F13 :: ImGuiKey
pattern F13 = #{const ImGuiKey_F13}
pattern F14 :: ImGuiKey
pattern F14 = #{const ImGuiKey_F14}
pattern F15 :: ImGuiKey
pattern F15 = #{const ImGuiKey_F15}
pattern F16 :: ImGuiKey
pattern F16 = #{const ImGuiKey_F16}
pattern F17 :: ImGuiKey
pattern F17 = #{const ImGuiKey_F17}
pattern F18 :: ImGuiKey
pattern F18 = #{const ImGuiKey_F18}
pattern F19 :: ImGuiKey
pattern F19 = #{const ImGuiKey_F19}
pattern F20 :: ImGuiKey
pattern F20 = #{const ImGuiKey_F20}
pattern F21 :: ImGuiKey
pattern F21 = #{const ImGuiKey_F21}
pattern F22 :: ImGuiKey
pattern F22 = #{const ImGuiKey_F22}
pattern F23 :: ImGuiKey
pattern F23 = #{const ImGuiKey_F23}
pattern F24 :: ImGuiKey
pattern F24 = #{const ImGuiKey_F24}
-- | '
pattern Apostrophe :: ImGuiKey
pattern Apostrophe = #{const ImGuiKey_Apostrophe}
-- | ,
pattern Comma :: ImGuiKey
pattern Comma = #{const ImGuiKey_Comma}
-- | -
pattern Minus :: ImGuiKey
pattern Minus = #{const ImGuiKey_Minus}
-- | .
pattern Period :: ImGuiKey
pattern Period = #{const ImGuiKey_Period}
-- | /
pattern Slash :: ImGuiKey
pattern Slash = #{const ImGuiKey_Slash}
-- | ;
pattern Semicolon :: ImGuiKey
pattern Semicolon = #{const ImGuiKey_Semicolon}
-- | =
pattern Equal :: ImGuiKey
pattern Equal = #{const ImGuiKey_Equal}
-- | [
pattern LeftBracket :: ImGuiKey
pattern LeftBracket = #{const ImGuiKey_LeftBracket}
-- | \ (this text inhibit multiline comment caused by backslash)
pattern Backslash :: ImGuiKey
pattern Backslash = #{const ImGuiKey_Backslash}
-- | ]
pattern RightBracket :: ImGuiKey
pattern RightBracket = #{const ImGuiKey_RightBracket}
-- | `
pattern GraveAccent :: ImGuiKey
pattern GraveAccent = #{const ImGuiKey_GraveAccent}
pattern CapsLock :: ImGuiKey
pattern CapsLock = #{const ImGuiKey_CapsLock}
pattern ScrollLock :: ImGuiKey
pattern ScrollLock = #{const ImGuiKey_ScrollLock}
pattern NumLock :: ImGuiKey
pattern NumLock = #{const ImGuiKey_NumLock}
pattern PrintScreen :: ImGuiKey
pattern PrintScreen = #{const ImGuiKey_PrintScreen}
pattern Pause :: ImGuiKey
pattern Pause = #{const ImGuiKey_Pause}
pattern Keypad0 :: ImGuiKey
pattern Keypad0 = #{const ImGuiKey_Keypad0}
pattern Keypad1 :: ImGuiKey
pattern Keypad1 = #{const ImGuiKey_Keypad1}
pattern Keypad2 :: ImGuiKey
pattern Keypad2 = #{const ImGuiKey_Keypad2}
pattern Keypad3 :: ImGuiKey
pattern Keypad3 = #{const ImGuiKey_Keypad3}
pattern Keypad4 :: ImGuiKey
pattern Keypad4 = #{const ImGuiKey_Keypad4}
pattern Keypad5 :: ImGuiKey
pattern Keypad5 = #{const ImGuiKey_Keypad5}
pattern Keypad6 :: ImGuiKey
pattern Keypad6 = #{const ImGuiKey_Keypad6}
pattern Keypad7 :: ImGuiKey
pattern Keypad7 = #{const ImGuiKey_Keypad7}
pattern Keypad8 :: ImGuiKey
pattern Keypad8 = #{const ImGuiKey_Keypad8}
pattern Keypad9 :: ImGuiKey
pattern Keypad9 = #{const ImGuiKey_Keypad9}
pattern KeypadDecimal :: ImGuiKey
pattern KeypadDecimal = #{const ImGuiKey_KeypadDecimal}
pattern KeypadDivide :: ImGuiKey
pattern KeypadDivide = #{const ImGuiKey_KeypadDivide}
pattern KeypadMultiply :: ImGuiKey
pattern KeypadMultiply = #{const ImGuiKey_KeypadMultiply}
pattern KeypadSubtract :: ImGuiKey
pattern KeypadSubtract = #{const ImGuiKey_KeypadSubtract}
pattern KeypadAdd :: ImGuiKey
pattern KeypadAdd = #{const ImGuiKey_KeypadAdd}
pattern KeypadEnter :: ImGuiKey
pattern KeypadEnter = #{const ImGuiKey_KeypadEnter}
pattern KeypadEqual :: ImGuiKey
pattern KeypadEqual = #{const ImGuiKey_KeypadEqual}
-- | Available on some keyboard/mouses. Often referred as "Browser Back"
pattern AppBack :: ImGuiKey
pattern AppBack = #{const ImGuiKey_AppBack}
pattern AppForward :: ImGuiKey
pattern AppForward = #{const ImGuiKey_AppForward}
-- | Non-US backslash.
pattern Oem102 :: ImGuiKey
pattern Oem102 = #{const ImGuiKey_Oem102}
-- | Gamepad
-- (analog values are 0.0f to 1.0f)
-- (download controller mapping PNG/PSD at http://dearimgui.com/controls_sheets)
-- // XBOX | SWITCH | PLAYSTA. | -> ACTION
-- Menu | + | Options |
pattern GamepadStart :: ImGuiKey
pattern GamepadStart = #{const ImGuiKey_GamepadStart}
-- | View | - | Share |
pattern GamepadBack :: ImGuiKey
pattern GamepadBack = #{const ImGuiKey_GamepadBack}
-- | X | Y | Square | Toggle Menu. Hold for Windowing mode (Focus/Move/Resize windows)
pattern GamepadFaceLeft :: ImGuiKey
pattern GamepadFaceLeft = #{const ImGuiKey_GamepadFaceLeft}
-- | B | A | Circle | Cancel / Close / Exit
pattern GamepadFaceRight :: ImGuiKey
pattern GamepadFaceRight = #{const ImGuiKey_GamepadFaceRight}
-- | Y | X | Triangle | Open Context Menu
pattern GamepadFaceUp :: ImGuiKey
pattern GamepadFaceUp = #{const ImGuiKey_GamepadFaceUp}
-- | A | B | Cross | Activate / Open / Toggle. Hold for 0.60f to Activate in Text Input mode (e.g. wired to an on-screen keyboard).
pattern GamepadFaceDown :: ImGuiKey
pattern GamepadFaceDown = #{const ImGuiKey_GamepadFaceDown}
-- | D-pad Left | " | " | Move / Tweak / Resize Window (in Windowing mode)
pattern GamepadDpadLeft :: ImGuiKey
pattern GamepadDpadLeft = #{const ImGuiKey_GamepadDpadLeft}
-- | D-pad Right | " | " | Move / Tweak / Resize Window (in Windowing mode)
pattern GamepadDpadRight :: ImGuiKey
pattern GamepadDpadRight = #{const ImGuiKey_GamepadDpadRight}
-- | D-pad Up | " | " | Move / Tweak / Resize Window (in Windowing mode)
pattern GamepadDpadUp :: ImGuiKey
pattern GamepadDpadUp = #{const ImGuiKey_GamepadDpadUp}
-- | D-pad Down | " | " | Move / Tweak / Resize Window (in Windowing mode)
pattern GamepadDpadDown :: ImGuiKey
pattern GamepadDpadDown = #{const ImGuiKey_GamepadDpadDown}
-- | L Bumper | L | L1 | Tweak Slower / Focus Previous (in Windowing mode)
pattern GamepadL1 :: ImGuiKey
pattern GamepadL1 = #{const ImGuiKey_GamepadL1}
-- | R Bumper | R | R1 | Tweak Faster / Focus Next (in Windowing mode)
pattern GamepadR1 :: ImGuiKey
pattern GamepadR1 = #{const ImGuiKey_GamepadR1}
-- | L Trigger | ZL | L2 | [Analog]
pattern GamepadL2 :: ImGuiKey
pattern GamepadL2 = #{const ImGuiKey_GamepadL2}
-- | R Trigger | ZR | R2 | [Analog]
pattern GamepadR2 :: ImGuiKey
pattern GamepadR2 = #{const ImGuiKey_GamepadR2}
-- | L Stick | L3 | L3 |
pattern GamepadL3 :: ImGuiKey
pattern GamepadL3 = #{const ImGuiKey_GamepadL3}
-- | R Stick | R3 | R3 |
pattern GamepadR3 :: ImGuiKey
pattern GamepadR3 = #{const ImGuiKey_GamepadR3}
-- | | | | [Analog] Move Window (in Windowing mode)
pattern GamepadLStickLeft :: ImGuiKey
pattern GamepadLStickLeft = #{const ImGuiKey_GamepadLStickLeft}
-- | | | | [Analog] Move Window (in Windowing mode)
pattern GamepadLStickRight :: ImGuiKey
pattern GamepadLStickRight = #{const ImGuiKey_GamepadLStickRight}
-- | | | | [Analog] Move Window (in Windowing mode)
pattern GamepadLStickUp :: ImGuiKey
pattern GamepadLStickUp = #{const ImGuiKey_GamepadLStickUp}
-- | | | | [Analog] Move Window (in Windowing mode)
pattern GamepadLStickDown :: ImGuiKey
pattern GamepadLStickDown = #{const ImGuiKey_GamepadLStickDown}
-- | | | | [Analog]
pattern GamepadRStickLeft :: ImGuiKey
pattern GamepadRStickLeft = #{const ImGuiKey_GamepadRStickLeft}
-- | | | | [Analog]
pattern GamepadRStickRight :: ImGuiKey
pattern GamepadRStickRight = #{const ImGuiKey_GamepadRStickRight}
-- | | | | [Analog]
pattern GamepadRStickUp :: ImGuiKey
pattern GamepadRStickUp = #{const ImGuiKey_GamepadRStickUp}
-- | | | | [Analog]
pattern GamepadRStickDown :: ImGuiKey
pattern GamepadRStickDown = #{const ImGuiKey_GamepadRStickDown}
-- | Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls)
-- - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
pattern MouseLeft :: ImGuiKey
pattern MouseLeft = #{const ImGuiKey_MouseLeft}
pattern MouseRight :: ImGuiKey
pattern MouseRight = #{const ImGuiKey_MouseRight}
pattern MouseMiddle :: ImGuiKey
pattern MouseMiddle = #{const ImGuiKey_MouseMiddle}
pattern MouseX1 :: ImGuiKey
pattern MouseX1 = #{const ImGuiKey_MouseX1}
pattern MouseX2 :: ImGuiKey
pattern MouseX2 = #{const ImGuiKey_MouseX2}
pattern MouseWheelX :: ImGuiKey
pattern MouseWheelX = #{const ImGuiKey_MouseWheelX}
pattern MouseWheelY :: ImGuiKey
pattern MouseWheelY = #{const ImGuiKey_MouseWheelY}
-- | [Internal] Reserved for mod storage
pattern ReservedForModCtrl :: ImGuiKey
pattern ReservedForModCtrl = #{const ImGuiKey_ReservedForModCtrl}
pattern ReservedForModShift :: ImGuiKey
pattern ReservedForModShift = #{const ImGuiKey_ReservedForModShift}
pattern ReservedForModAlt :: ImGuiKey
pattern ReservedForModAlt = #{const ImGuiKey_ReservedForModAlt}
pattern ReservedForModSuper :: ImGuiKey
pattern ReservedForModSuper = #{const ImGuiKey_ReservedForModSuper}
-- | [Internal] If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
pattern NamedKey_END :: ImGuiKey
pattern NamedKey_END = #{const ImGuiKey_NamedKey_END}
pattern NamedKey_COUNT :: ImGuiKey
pattern NamedKey_COUNT = #{const ImGuiKey_NamedKey_COUNT}
-- | Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls)
-- - Any functions taking a ImGuiKeyChord parameter can binary-or those with regular keys, e.g. Shortcut(ImGuiMod_Ctrl | ImGuiKey_S).
-- - Those are written back into io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper for convenience,
-- but may be accessed via standard key API such as IsKeyPressed(), IsKeyReleased(), querying duration etc.
-- - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those
-- and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl).
-- - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys.
-- In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and
-- backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user...
-- - On macOS, we swap Cmd(Super) and Ctrl keys at the time of the io.AddKeyEvent() call.
pattern ImGuiMod_None :: ImGuiKey
pattern ImGuiMod_None = #{const ImGuiMod_None}
-- | Ctrl (non-macOS), Cmd (macOS)
pattern ImGuiMod_Ctrl :: ImGuiKey
pattern ImGuiMod_Ctrl = #{const ImGuiMod_Ctrl}
-- | Shift
pattern ImGuiMod_Shift :: ImGuiKey
pattern ImGuiMod_Shift = #{const ImGuiMod_Shift}
-- | Option/Menu
pattern ImGuiMod_Alt :: ImGuiKey
pattern ImGuiMod_Alt = #{const ImGuiMod_Alt}
-- | Windows/Super (non-macOS), Ctrl (macOS)
pattern ImGuiMod_Super :: ImGuiKey
pattern ImGuiMod_Super = #{const ImGuiMod_Super}
-- | 4-bits
pattern ImGuiMod_Mask_ :: ImGuiKey
pattern ImGuiMod_Mask_ = #{const ImGuiMod_Mask_}