packages feed

dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiContext.hsc

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}

-- This file was generated by dear-bindings-ffi. Do not edit by hand.

module DearImGui.Raw.Internal.ImGuiContext
  ( ImGuiContext
  , contextNameLength
  , dragDropPayloadBufLocalLength
  , framerateSecPerFrameLength
  , keysOwnerDataLength
  , localizationTableLength
  , tempKeychordNameLength
  ) where

import DearImGui.Raw (ImGuiID, ImGuiKeyChord, ImGuiSelectionUserData, ImS8, ImU32, ImU8)
import DearImGui.Raw.Enums.ImFontFlags (ImFontFlags)
import DearImGui.Raw.Enums.ImGuiCol (ImGuiCol)
import DearImGui.Raw.Enums.ImGuiConfigFlags (ImGuiConfigFlags)
import DearImGui.Raw.Enums.ImGuiDir (ImGuiDir)
import DearImGui.Raw.Enums.ImGuiDragDropFlags (ImGuiDragDropFlags)
import DearImGui.Raw.Enums.ImGuiItemFlags (ImGuiItemFlags)
import DearImGui.Raw.Enums.ImGuiKey (ImGuiKey)
import DearImGui.Raw.Enums.ImGuiMouseCursor (ImGuiMouseCursor)
import DearImGui.Raw.Enums.ImGuiMouseSource (ImGuiMouseSource)
import DearImGui.Raw.ImDrawChannel (ImDrawChannel)
import DearImGui.Raw.ImFont (ImFont)
import DearImGui.Raw.ImFontAtlas (ImFontAtlas)
import DearImGui.Raw.ImFontBaked (ImFontBaked)
import DearImGui.Raw.ImGuiIO (ImGuiIO)
import DearImGui.Raw.ImGuiPayload (ImGuiPayload)
import DearImGui.Raw.ImGuiPlatformIO (ImGuiPlatformIO)
import DearImGui.Raw.ImGuiPlatformImeData (ImGuiPlatformImeData)
import DearImGui.Raw.ImGuiPlatformMonitor (ImGuiPlatformMonitor)
import DearImGui.Raw.ImGuiStorage (ImGuiStorage)
import DearImGui.Raw.ImGuiStyle (ImGuiStyle)
import DearImGui.Raw.ImGuiTextBuffer (ImGuiTextBuffer)
import DearImGui.Raw.ImTextureData (ImTextureData)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVec4 (ImVec4)
import DearImGui.Raw.ImVector (ImVector)
import DearImGui.Raw.Internal (ImFileHandle, ImGuiDemoMarkerCallback, ImGuiErrorCallback, ImGuiTable)
import DearImGui.Raw.Internal.Enums.ImGuiActivateFlags (ImGuiActivateFlags)
import DearImGui.Raw.Internal.Enums.ImGuiDebugLogFlags (ImGuiDebugLogFlags)
import DearImGui.Raw.Internal.Enums.ImGuiInputSource (ImGuiInputSource)
import DearImGui.Raw.Internal.Enums.ImGuiLogFlags (ImGuiLogFlags)
import DearImGui.Raw.Internal.Enums.ImGuiNavLayer (ImGuiNavLayer)
import DearImGui.Raw.Internal.Enums.ImGuiNavMoveFlags (ImGuiNavMoveFlags)
import DearImGui.Raw.Internal.Enums.ImGuiScrollFlags (ImGuiScrollFlags)
import DearImGui.Raw.Internal.ImBitArrayForNamedKeys (ImBitArrayForNamedKeys)
import DearImGui.Raw.Internal.ImChunkStream (ImChunkStream)
import DearImGui.Raw.Internal.ImDrawListSharedData (ImDrawListSharedData)
import DearImGui.Raw.Internal.ImFontStackData (ImFontStackData)
import DearImGui.Raw.Internal.ImGuiBoxSelectState (ImGuiBoxSelectState)
import DearImGui.Raw.Internal.ImGuiColorMod (ImGuiColorMod)
import DearImGui.Raw.Internal.ImGuiComboPreviewData (ImGuiComboPreviewData)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiContextHook (ImGuiContextHook)
import DearImGui.Raw.Internal.ImGuiDataTypeStorage (ImGuiDataTypeStorage)
import DearImGui.Raw.Internal.ImGuiDeactivatedItemData (ImGuiDeactivatedItemData)
import DearImGui.Raw.Internal.ImGuiDebugAllocInfo (ImGuiDebugAllocInfo)
import DearImGui.Raw.Internal.ImGuiDebugItemPathQuery (ImGuiDebugItemPathQuery)
import DearImGui.Raw.Internal.ImGuiDockContext (ImGuiDockContext)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiDockNode (ImGuiDockNode)
import DearImGui.Raw.Internal.ImGuiErrorRecoveryState (ImGuiErrorRecoveryState)
import DearImGui.Raw.Internal.ImGuiFocusScopeData (ImGuiFocusScopeData)
import DearImGui.Raw.Internal.ImGuiGroupData (ImGuiGroupData)
import DearImGui.Raw.Internal.ImGuiIDStackTool (ImGuiIDStackTool)
import DearImGui.Raw.Internal.ImGuiInputEvent (ImGuiInputEvent)
import DearImGui.Raw.Internal.ImGuiInputTextDeactivatedState (ImGuiInputTextDeactivatedState)
import DearImGui.Raw.Internal.ImGuiInputTextState (ImGuiInputTextState)
import DearImGui.Raw.Internal.ImGuiKeyOwnerData (ImGuiKeyOwnerData)
import DearImGui.Raw.Internal.ImGuiKeyRoutingTable (ImGuiKeyRoutingTable)
import DearImGui.Raw.Internal.ImGuiLastItemData (ImGuiLastItemData)
import DearImGui.Raw.Internal.ImGuiListClipperData (ImGuiListClipperData)
import DearImGui.Raw.Internal.ImGuiMetricsConfig (ImGuiMetricsConfig)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiMultiSelectState (ImGuiMultiSelectState)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiMultiSelectTempData (ImGuiMultiSelectTempData)
import DearImGui.Raw.Internal.ImGuiNavItemData (ImGuiNavItemData)
import DearImGui.Raw.Internal.ImGuiNextItemData (ImGuiNextItemData)
import DearImGui.Raw.Internal.ImGuiNextWindowData (ImGuiNextWindowData)
import DearImGui.Raw.Internal.ImGuiPackedDate (ImGuiPackedDate)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiPopupData (ImGuiPopupData)
import DearImGui.Raw.Internal.ImGuiPtrOrIndex (ImGuiPtrOrIndex)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiSettingsHandler (ImGuiSettingsHandler)
import DearImGui.Raw.Internal.ImGuiShrinkWidthItem (ImGuiShrinkWidthItem)
import DearImGui.Raw.Internal.ImGuiStyleMod (ImGuiStyleMod)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiTabBar (ImGuiTabBar)
import DearImGui.Raw.Internal.ImGuiTableSettings (ImGuiTableSettings)
import DearImGui.Raw.Internal.ImGuiTableTempData (ImGuiTableTempData)
import DearImGui.Raw.Internal.ImGuiTextIndex (ImGuiTextIndex)
import DearImGui.Raw.Internal.ImGuiTreeNodeStackData (ImGuiTreeNodeStackData)
import DearImGui.Raw.Internal.ImGuiTypingSelectState (ImGuiTypingSelectState)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiViewportP (ImGuiViewportP)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiWindow (ImGuiWindow)
import DearImGui.Raw.Internal.ImGuiWindowSettings (ImGuiWindowSettings)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiWindowStackData (ImGuiWindowStackData)
import DearImGui.Raw.Internal.ImPool (ImPool)
import DearImGui.Raw.Internal.ImRect (ImRect)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.Ptr (FunPtr, Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))

#include "dcimgui_nodefaultargfunctions_internal.h"

-- structs (opaque)

data ImGuiContext
instance Storable ImGuiContext where
  sizeOf _    = #{size ImGuiContext}
  alignment _ = #{alignment ImGuiContext}
  peek _ = error "ImGuiContext: opaque struct, peek not supported in v0"
  poke _ _ = error "ImGuiContext: opaque struct, poke not supported in v0"

instance HasField "initialized" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, Initialized}

instance HasField "withinFrameScope" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, WithinFrameScope}

instance HasField "withinFrameScopeWithImplicitWindow" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, WithinFrameScopeWithImplicitWindow}

instance HasField "testEngineHookItems" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, TestEngineHookItems}

instance HasField "frameCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, FrameCount}

instance HasField "frameCountEnded" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, FrameCountEnded}

instance HasField "frameCountPlatformEnded" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, FrameCountPlatformEnded}

instance HasField "frameCountRendered" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, FrameCountRendered}

instance HasField "time" (Ptr ImGuiContext) (Ptr Double) where
  getField = #{ptr ImGuiContext, Time}

instance HasField "contextName" (Ptr ImGuiContext) (Ptr CChar) where
  getField = #{ptr ImGuiContext, ContextName}

contextNameLength :: Int
contextNameLength = #{const 16}

instance HasField "iO" (Ptr ImGuiContext) (Ptr ImGuiIO) where
  getField = #{ptr ImGuiContext, IO}

instance HasField "platformIO" (Ptr ImGuiContext) (Ptr ImGuiPlatformIO) where
  getField = #{ptr ImGuiContext, PlatformIO}

instance HasField "style" (Ptr ImGuiContext) (Ptr ImGuiStyle) where
  getField = #{ptr ImGuiContext, Style}

instance HasField "configFlagsCurrFrame" (Ptr ImGuiContext) (Ptr ImGuiConfigFlags) where
  getField = #{ptr ImGuiContext, ConfigFlagsCurrFrame}

instance HasField "configFlagsLastFrame" (Ptr ImGuiContext) (Ptr ImGuiConfigFlags) where
  getField = #{ptr ImGuiContext, ConfigFlagsLastFrame}

instance HasField "fontAtlases" (Ptr ImGuiContext) (Ptr (ImVector (Ptr ImFontAtlas))) where
  getField = #{ptr ImGuiContext, FontAtlases}

instance HasField "font" (Ptr ImGuiContext) (Ptr (Ptr ImFont)) where
  getField = #{ptr ImGuiContext, Font}

instance HasField "fontBaked" (Ptr ImGuiContext) (Ptr (Ptr ImFontBaked)) where
  getField = #{ptr ImGuiContext, FontBaked}

instance HasField "fontSize" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, FontSize}

instance HasField "fontSizeBase" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, FontSizeBase}

instance HasField "fontBakedScale" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, FontBakedScale}

instance HasField "currentPixelDensity" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, CurrentPixelDensity}

instance HasField "currentDpiScale" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, CurrentDpiScale}

instance HasField "drawListSharedData" (Ptr ImGuiContext) (Ptr ImDrawListSharedData) where
  getField = #{ptr ImGuiContext, DrawListSharedData}

instance HasField "withinEndChildID" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, WithinEndChildID}

instance HasField "withinEndPopupID" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, WithinEndPopupID}

instance HasField "testEngine" (Ptr ImGuiContext) (Ptr (Ptr ())) where
  getField = #{ptr ImGuiContext, TestEngine}

instance HasField "inputEventsQueue" (Ptr ImGuiContext) (Ptr (ImVector ImGuiInputEvent)) where
  getField = #{ptr ImGuiContext, InputEventsQueue}

instance HasField "inputEventsTrail" (Ptr ImGuiContext) (Ptr (ImVector ImGuiInputEvent)) where
  getField = #{ptr ImGuiContext, InputEventsTrail}

instance HasField "inputEventsNextMouseSource" (Ptr ImGuiContext) (Ptr ImGuiMouseSource) where
  getField = #{ptr ImGuiContext, InputEventsNextMouseSource}

instance HasField "inputEventsNextEventId" (Ptr ImGuiContext) (Ptr ImU32) where
  getField = #{ptr ImGuiContext, InputEventsNextEventId}

instance HasField "windows" (Ptr ImGuiContext) (Ptr (ImVector (Ptr ImGuiWindow))) where
  getField = #{ptr ImGuiContext, Windows}

instance HasField "windowsFocusOrder" (Ptr ImGuiContext) (Ptr (ImVector (Ptr ImGuiWindow))) where
  getField = #{ptr ImGuiContext, WindowsFocusOrder}

instance HasField "windowsTempSortBuffer" (Ptr ImGuiContext) (Ptr (ImVector (Ptr ImGuiWindow))) where
  getField = #{ptr ImGuiContext, WindowsTempSortBuffer}

instance HasField "currentWindowStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiWindowStackData)) where
  getField = #{ptr ImGuiContext, CurrentWindowStack}

instance HasField "windowsById" (Ptr ImGuiContext) (Ptr ImGuiStorage) where
  getField = #{ptr ImGuiContext, WindowsById}

instance HasField "windowsActiveCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, WindowsActiveCount}

instance HasField "windowsBorderHoverPadding" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, WindowsBorderHoverPadding}

instance HasField "debugBreakInWindow" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DebugBreakInWindow}

instance HasField "currentWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, CurrentWindow}

instance HasField "hoveredWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, HoveredWindow}

instance HasField "hoveredWindowUnderMovingWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, HoveredWindowUnderMovingWindow}

instance HasField "hoveredWindowBeforeClear" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, HoveredWindowBeforeClear}

instance HasField "movingWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, MovingWindow}

instance HasField "wheelingWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, WheelingWindow}

instance HasField "wheelingWindowRefMousePos" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, WheelingWindowRefMousePos}

instance HasField "wheelingWindowStartFrame" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, WheelingWindowStartFrame}

instance HasField "wheelingWindowScrolledFrame" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, WheelingWindowScrolledFrame}

instance HasField "wheelingWindowReleaseTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, WheelingWindowReleaseTimer}

instance HasField "wheelingWindowWheelRemainder" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, WheelingWindowWheelRemainder}

instance HasField "wheelingAxisAvg" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, WheelingAxisAvg}

instance HasField "mixedValueLabel" (Ptr ImGuiContext) (Ptr CString) where
  getField = #{ptr ImGuiContext, MixedValueLabel}

instance HasField "debugDrawIdConflictsId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DebugDrawIdConflictsId}

instance HasField "debugHookIdInfoId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DebugHookIdInfoId}

instance HasField "hoveredId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HoveredId}

instance HasField "hoveredIdPreviousFrame" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HoveredIdPreviousFrame}

instance HasField "hoveredIdPreviousFrameItemCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, HoveredIdPreviousFrameItemCount}

instance HasField "hoveredIdTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, HoveredIdTimer}

instance HasField "hoveredIdNotActiveTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, HoveredIdNotActiveTimer}

instance HasField "hoveredIdAllowOverlap" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, HoveredIdAllowOverlap}

instance HasField "hoveredIdIsDisabled" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, HoveredIdIsDisabled}

instance HasField "itemUnclipByLog" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ItemUnclipByLog}

instance HasField "anyIdHasBeenEditedThisFrame" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, AnyIdHasBeenEditedThisFrame}

instance HasField "activeId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, ActiveId}

instance HasField "activeIdIsAlive" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, ActiveIdIsAlive}

instance HasField "activeIdTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, ActiveIdTimer}

instance HasField "activeIdIsJustActivated" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdIsJustActivated}

instance HasField "activeIdWasSelected" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdWasSelected}

instance HasField "activeIdWasSoleSelected" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdWasSoleSelected}

instance HasField "activeIdAllowOverlap" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdAllowOverlap}

instance HasField "activeIdNoClearOnFocusLoss" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdNoClearOnFocusLoss}

instance HasField "activeIdHasBeenPressedBefore" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdHasBeenPressedBefore}

instance HasField "activeIdHasBeenEditedBefore" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdHasBeenEditedBefore}

instance HasField "activeIdHasBeenEditedThisFrame" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdHasBeenEditedThisFrame}

instance HasField "activeIdFromShortcut" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdFromShortcut}

instance HasField "activeIdMouseButton" (Ptr ImGuiContext) (Ptr ImS8) where
  getField = #{ptr ImGuiContext, ActiveIdMouseButton}

instance HasField "activeIdDisabledId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, ActiveIdDisabledId}

instance HasField "activeIdClickOffset" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, ActiveIdClickOffset}

instance HasField "activeIdSource" (Ptr ImGuiContext) (Ptr ImGuiInputSource) where
  getField = #{ptr ImGuiContext, ActiveIdSource}

instance HasField "activeIdWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, ActiveIdWindow}

instance HasField "activeIdPreviousFrame" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, ActiveIdPreviousFrame}

instance HasField "deactivatedItemData" (Ptr ImGuiContext) (Ptr ImGuiDeactivatedItemData) where
  getField = #{ptr ImGuiContext, DeactivatedItemData}

instance HasField "activeIdValueOnActivation" (Ptr ImGuiContext) (Ptr ImGuiDataTypeStorage) where
  getField = #{ptr ImGuiContext, ActiveIdValueOnActivation}

instance HasField "lastActiveId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, LastActiveId}

instance HasField "lastActiveIdTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, LastActiveIdTimer}

instance HasField "lastActiveIdWasSelected" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, LastActiveIdWasSelected}

instance HasField "lastActiveIdWasSoleSelected" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, LastActiveIdWasSoleSelected}

instance HasField "lastKeyModsChangeTime" (Ptr ImGuiContext) (Ptr Double) where
  getField = #{ptr ImGuiContext, LastKeyModsChangeTime}

instance HasField "lastKeyModsChangeFromNoneTime" (Ptr ImGuiContext) (Ptr Double) where
  getField = #{ptr ImGuiContext, LastKeyModsChangeFromNoneTime}

instance HasField "lastKeyboardKeyPressTime" (Ptr ImGuiContext) (Ptr Double) where
  getField = #{ptr ImGuiContext, LastKeyboardKeyPressTime}

instance HasField "keysMayBeCharInput" (Ptr ImGuiContext) (Ptr ImBitArrayForNamedKeys) where
  getField = #{ptr ImGuiContext, KeysMayBeCharInput}

instance HasField "keysOwnerData" (Ptr ImGuiContext) (Ptr ImGuiKeyOwnerData) where
  getField = #{ptr ImGuiContext, KeysOwnerData}

keysOwnerDataLength :: Int
keysOwnerDataLength = #{const ImGuiKey_NamedKey_COUNT}

instance HasField "keysRoutingTable" (Ptr ImGuiContext) (Ptr ImGuiKeyRoutingTable) where
  getField = #{ptr ImGuiContext, KeysRoutingTable}

instance HasField "activeIdUsingNavDirMask" (Ptr ImGuiContext) (Ptr ImU32) where
  getField = #{ptr ImGuiContext, ActiveIdUsingNavDirMask}

instance HasField "activeIdUsingAllKeyboardKeys" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ActiveIdUsingAllKeyboardKeys}

instance HasField "debugBreakInShortcutRouting" (Ptr ImGuiContext) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiContext, DebugBreakInShortcutRouting}

instance HasField "currentFocusScopeId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, CurrentFocusScopeId}

instance HasField "currentItemFlags" (Ptr ImGuiContext) (Ptr ImGuiItemFlags) where
  getField = #{ptr ImGuiContext, CurrentItemFlags}

instance HasField "debugLocateId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DebugLocateId}

instance HasField "nextItemData" (Ptr ImGuiContext) (Ptr ImGuiNextItemData) where
  getField = #{ptr ImGuiContext, NextItemData}

instance HasField "lastItemData" (Ptr ImGuiContext) (Ptr ImGuiLastItemData) where
  getField = #{ptr ImGuiContext, LastItemData}

instance HasField "nextWindowData" (Ptr ImGuiContext) (Ptr ImGuiNextWindowData) where
  getField = #{ptr ImGuiContext, NextWindowData}

instance HasField "debugShowGroupRects" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DebugShowGroupRects}

instance HasField "gcCompactAll" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, GcCompactAll}

instance HasField "debugFlashStyleColorIdx" (Ptr ImGuiContext) (Ptr ImGuiCol) where
  getField = #{ptr ImGuiContext, DebugFlashStyleColorIdx}

instance HasField "colorStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiColorMod)) where
  getField = #{ptr ImGuiContext, ColorStack}

instance HasField "styleVarStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiStyleMod)) where
  getField = #{ptr ImGuiContext, StyleVarStack}

instance HasField "fontStack" (Ptr ImGuiContext) (Ptr (ImVector ImFontStackData)) where
  getField = #{ptr ImGuiContext, FontStack}

instance HasField "focusScopeStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiFocusScopeData)) where
  getField = #{ptr ImGuiContext, FocusScopeStack}

instance HasField "itemFlagsStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiItemFlags)) where
  getField = #{ptr ImGuiContext, ItemFlagsStack}

instance HasField "groupStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiGroupData)) where
  getField = #{ptr ImGuiContext, GroupStack}

instance HasField "openPopupStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiPopupData)) where
  getField = #{ptr ImGuiContext, OpenPopupStack}

instance HasField "beginPopupStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiPopupData)) where
  getField = #{ptr ImGuiContext, BeginPopupStack}

instance HasField "treeNodeStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiTreeNodeStackData)) where
  getField = #{ptr ImGuiContext, TreeNodeStack}

instance HasField "viewports" (Ptr ImGuiContext) (Ptr (ImVector (Ptr ImGuiViewportP))) where
  getField = #{ptr ImGuiContext, Viewports}

instance HasField "currentViewport" (Ptr ImGuiContext) (Ptr (Ptr ImGuiViewportP)) where
  getField = #{ptr ImGuiContext, CurrentViewport}

instance HasField "mouseViewport" (Ptr ImGuiContext) (Ptr (Ptr ImGuiViewportP)) where
  getField = #{ptr ImGuiContext, MouseViewport}

instance HasField "mouseLastHoveredViewport" (Ptr ImGuiContext) (Ptr (Ptr ImGuiViewportP)) where
  getField = #{ptr ImGuiContext, MouseLastHoveredViewport}

instance HasField "platformLastFocusedViewportId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, PlatformLastFocusedViewportId}

instance HasField "fallbackMonitor" (Ptr ImGuiContext) (Ptr ImGuiPlatformMonitor) where
  getField = #{ptr ImGuiContext, FallbackMonitor}

instance HasField "platformMonitorsFullWorkRect" (Ptr ImGuiContext) (Ptr ImRect) where
  getField = #{ptr ImGuiContext, PlatformMonitorsFullWorkRect}

instance HasField "viewportCreatedCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, ViewportCreatedCount}

instance HasField "platformWindowsCreatedCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, PlatformWindowsCreatedCount}

instance HasField "viewportFocusedStampCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, ViewportFocusedStampCount}

instance HasField "navCursorVisible" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavCursorVisible}

instance HasField "navHighlightItemUnderNav" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavHighlightItemUnderNav}

instance HasField "navMousePosDirty" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavMousePosDirty}

instance HasField "navIdIsAlive" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavIdIsAlive}

instance HasField "navId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavId}

instance HasField "navWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, NavWindow}

instance HasField "navFocusScopeId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavFocusScopeId}

instance HasField "navLayer" (Ptr ImGuiContext) (Ptr ImGuiNavLayer) where
  getField = #{ptr ImGuiContext, NavLayer}

instance HasField "navIdItemFlags" (Ptr ImGuiContext) (Ptr ImGuiItemFlags) where
  getField = #{ptr ImGuiContext, NavIdItemFlags}

instance HasField "navActivateId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavActivateId}

instance HasField "navActivateDownId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavActivateDownId}

instance HasField "navActivatePressedId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavActivatePressedId}

instance HasField "navActivateFlags" (Ptr ImGuiContext) (Ptr ImGuiActivateFlags) where
  getField = #{ptr ImGuiContext, NavActivateFlags}

instance HasField "navFocusRoute" (Ptr ImGuiContext) (Ptr (ImVector ImGuiFocusScopeData)) where
  getField = #{ptr ImGuiContext, NavFocusRoute}

instance HasField "navHighlightActivatedId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavHighlightActivatedId}

instance HasField "navHighlightActivatedTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, NavHighlightActivatedTimer}

instance HasField "navOpenContextMenuItemId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavOpenContextMenuItemId}

instance HasField "navOpenContextMenuWindowId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavOpenContextMenuWindowId}

instance HasField "navNextActivateId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavNextActivateId}

instance HasField "navNextActivateFlags" (Ptr ImGuiContext) (Ptr ImGuiActivateFlags) where
  getField = #{ptr ImGuiContext, NavNextActivateFlags}

instance HasField "navInputSource" (Ptr ImGuiContext) (Ptr ImGuiInputSource) where
  getField = #{ptr ImGuiContext, NavInputSource}

instance HasField "navLastValidSelectionUserData" (Ptr ImGuiContext) (Ptr ImGuiSelectionUserData) where
  getField = #{ptr ImGuiContext, NavLastValidSelectionUserData}

instance HasField "navCursorHideFrames" (Ptr ImGuiContext) (Ptr ImS8) where
  getField = #{ptr ImGuiContext, NavCursorHideFrames}

instance HasField "navAnyRequest" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavAnyRequest}

instance HasField "navInitRequest" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavInitRequest}

instance HasField "navInitRequestFromMove" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavInitRequestFromMove}

instance HasField "navInitResult" (Ptr ImGuiContext) (Ptr ImGuiNavItemData) where
  getField = #{ptr ImGuiContext, NavInitResult}

instance HasField "navMoveSubmitted" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavMoveSubmitted}

instance HasField "navMoveScoringItems" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavMoveScoringItems}

instance HasField "navMoveForwardToNextFrame" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavMoveForwardToNextFrame}

instance HasField "navMoveFlags" (Ptr ImGuiContext) (Ptr ImGuiNavMoveFlags) where
  getField = #{ptr ImGuiContext, NavMoveFlags}

instance HasField "navMoveScrollFlags" (Ptr ImGuiContext) (Ptr ImGuiScrollFlags) where
  getField = #{ptr ImGuiContext, NavMoveScrollFlags}

instance HasField "navMoveKeyMods" (Ptr ImGuiContext) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiContext, NavMoveKeyMods}

instance HasField "navMoveDir" (Ptr ImGuiContext) (Ptr ImGuiDir) where
  getField = #{ptr ImGuiContext, NavMoveDir}

instance HasField "navMoveDirForDebug" (Ptr ImGuiContext) (Ptr ImGuiDir) where
  getField = #{ptr ImGuiContext, NavMoveDirForDebug}

instance HasField "navMoveClipDir" (Ptr ImGuiContext) (Ptr ImGuiDir) where
  getField = #{ptr ImGuiContext, NavMoveClipDir}

instance HasField "navScoringRect" (Ptr ImGuiContext) (Ptr ImRect) where
  getField = #{ptr ImGuiContext, NavScoringRect}

instance HasField "navScoringNoClipRect" (Ptr ImGuiContext) (Ptr ImRect) where
  getField = #{ptr ImGuiContext, NavScoringNoClipRect}

instance HasField "navScoringDebugCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, NavScoringDebugCount}

instance HasField "navTabbingDir" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, NavTabbingDir}

instance HasField "navTabbingCounter" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, NavTabbingCounter}

instance HasField "navMoveResultLocal" (Ptr ImGuiContext) (Ptr ImGuiNavItemData) where
  getField = #{ptr ImGuiContext, NavMoveResultLocal}

instance HasField "navMoveResultLocalVisible" (Ptr ImGuiContext) (Ptr ImGuiNavItemData) where
  getField = #{ptr ImGuiContext, NavMoveResultLocalVisible}

instance HasField "navMoveResultOther" (Ptr ImGuiContext) (Ptr ImGuiNavItemData) where
  getField = #{ptr ImGuiContext, NavMoveResultOther}

instance HasField "navTabbingResultFirst" (Ptr ImGuiContext) (Ptr ImGuiNavItemData) where
  getField = #{ptr ImGuiContext, NavTabbingResultFirst}

instance HasField "navJustMovedFromFocusScopeId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavJustMovedFromFocusScopeId}

instance HasField "navJustMovedToId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavJustMovedToId}

instance HasField "navJustMovedToFocusScopeId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, NavJustMovedToFocusScopeId}

instance HasField "navJustMovedToKeyMods" (Ptr ImGuiContext) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiContext, NavJustMovedToKeyMods}

instance HasField "navJustMovedToIsTabbing" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavJustMovedToIsTabbing}

instance HasField "navJustMovedToIsInit" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavJustMovedToIsInit}

instance HasField "navJustMovedToHasSelectionData" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavJustMovedToHasSelectionData}

instance HasField "configNavEnableTabbing" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ConfigNavEnableTabbing}

instance HasField "configNavWindowingWithGamepad" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ConfigNavWindowingWithGamepad}

instance HasField "configNavWindowingKeyNext" (Ptr ImGuiContext) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiContext, ConfigNavWindowingKeyNext}

instance HasField "configNavWindowingKeyPrev" (Ptr ImGuiContext) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiContext, ConfigNavWindowingKeyPrev}

instance HasField "navWindowingTarget" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, NavWindowingTarget}

instance HasField "navWindowingTargetAnim" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, NavWindowingTargetAnim}

instance HasField "navWindowingListWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, NavWindowingListWindow}

instance HasField "navWindowingTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, NavWindowingTimer}

instance HasField "navWindowingHighlightAlpha" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, NavWindowingHighlightAlpha}

instance HasField "navWindowingInputSource" (Ptr ImGuiContext) (Ptr ImGuiInputSource) where
  getField = #{ptr ImGuiContext, NavWindowingInputSource}

instance HasField "navWindowingToggleLayer" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, NavWindowingToggleLayer}

instance HasField "navWindowingToggleKey" (Ptr ImGuiContext) (Ptr ImGuiKey) where
  getField = #{ptr ImGuiContext, NavWindowingToggleKey}

instance HasField "navWindowingAccumDeltaPos" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, NavWindowingAccumDeltaPos}

instance HasField "navWindowingAccumDeltaSize" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, NavWindowingAccumDeltaSize}

instance HasField "dimBgRatio" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, DimBgRatio}

instance HasField "dragDropActive" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DragDropActive}

instance HasField "dragDropWithinSource" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DragDropWithinSource}

instance HasField "dragDropWithinTarget" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DragDropWithinTarget}

instance HasField "dragDropSourceFlags" (Ptr ImGuiContext) (Ptr ImGuiDragDropFlags) where
  getField = #{ptr ImGuiContext, DragDropSourceFlags}

instance HasField "dragDropSourceFrameCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, DragDropSourceFrameCount}

instance HasField "dragDropMouseButton" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, DragDropMouseButton}

instance HasField "dragDropPayload" (Ptr ImGuiContext) (Ptr ImGuiPayload) where
  getField = #{ptr ImGuiContext, DragDropPayload}

instance HasField "dragDropTargetRect" (Ptr ImGuiContext) (Ptr ImRect) where
  getField = #{ptr ImGuiContext, DragDropTargetRect}

instance HasField "dragDropTargetClipRect" (Ptr ImGuiContext) (Ptr ImRect) where
  getField = #{ptr ImGuiContext, DragDropTargetClipRect}

instance HasField "dragDropTargetId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DragDropTargetId}

instance HasField "dragDropTargetFullViewport" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DragDropTargetFullViewport}

instance HasField "dragDropAcceptFlagsCurr" (Ptr ImGuiContext) (Ptr ImGuiDragDropFlags) where
  getField = #{ptr ImGuiContext, DragDropAcceptFlagsCurr}

instance HasField "dragDropAcceptFlagsPrev" (Ptr ImGuiContext) (Ptr ImGuiDragDropFlags) where
  getField = #{ptr ImGuiContext, DragDropAcceptFlagsPrev}

instance HasField "dragDropAcceptIdCurrRectSurface" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, DragDropAcceptIdCurrRectSurface}

instance HasField "dragDropAcceptIdCurr" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DragDropAcceptIdCurr}

instance HasField "dragDropAcceptIdPrev" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DragDropAcceptIdPrev}

instance HasField "dragDropAcceptFrameCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, DragDropAcceptFrameCount}

instance HasField "dragDropHoldJustPressedId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DragDropHoldJustPressedId}

instance HasField "dragDropPayloadBufHeap" (Ptr ImGuiContext) (Ptr (ImVector CUChar)) where
  getField = #{ptr ImGuiContext, DragDropPayloadBufHeap}

instance HasField "dragDropPayloadBufLocal" (Ptr ImGuiContext) (Ptr CUChar) where
  getField = #{ptr ImGuiContext, DragDropPayloadBufLocal}

dragDropPayloadBufLocalLength :: Int
dragDropPayloadBufLocalLength = #{const 16}

instance HasField "clipperTempDataStacked" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, ClipperTempDataStacked}

instance HasField "clipperTempData" (Ptr ImGuiContext) (Ptr (ImVector ImGuiListClipperData)) where
  getField = #{ptr ImGuiContext, ClipperTempData}

instance HasField "currentTable" (Ptr ImGuiContext) (Ptr (Ptr ImGuiTable)) where
  getField = #{ptr ImGuiContext, CurrentTable}

instance HasField "debugBreakInTable" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DebugBreakInTable}

instance HasField "tablesTempDataStacked" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, TablesTempDataStacked}

instance HasField "tablesTempData" (Ptr ImGuiContext) (Ptr (ImVector ImGuiTableTempData)) where
  getField = #{ptr ImGuiContext, TablesTempData}

instance HasField "tables" (Ptr ImGuiContext) (Ptr (ImPool ImGuiTable)) where
  getField = #{ptr ImGuiContext, Tables}

instance HasField "tablesLastTimeActive" (Ptr ImGuiContext) (Ptr (ImVector Float)) where
  getField = #{ptr ImGuiContext, TablesLastTimeActive}

instance HasField "drawChannelsTempMergeBuffer" (Ptr ImGuiContext) (Ptr (ImVector ImDrawChannel)) where
  getField = #{ptr ImGuiContext, DrawChannelsTempMergeBuffer}

instance HasField "currentTabBar" (Ptr ImGuiContext) (Ptr (Ptr ImGuiTabBar)) where
  getField = #{ptr ImGuiContext, CurrentTabBar}

instance HasField "tabBars" (Ptr ImGuiContext) (Ptr (ImPool ImGuiTabBar)) where
  getField = #{ptr ImGuiContext, TabBars}

instance HasField "currentTabBarStack" (Ptr ImGuiContext) (Ptr (ImVector ImGuiPtrOrIndex)) where
  getField = #{ptr ImGuiContext, CurrentTabBarStack}

instance HasField "shrinkWidthBuffer" (Ptr ImGuiContext) (Ptr (ImVector ImGuiShrinkWidthItem)) where
  getField = #{ptr ImGuiContext, ShrinkWidthBuffer}

instance HasField "boxSelectState" (Ptr ImGuiContext) (Ptr ImGuiBoxSelectState) where
  getField = #{ptr ImGuiContext, BoxSelectState}

instance HasField "currentMultiSelect" (Ptr ImGuiContext) (Ptr (Ptr ImGuiMultiSelectTempData)) where
  getField = #{ptr ImGuiContext, CurrentMultiSelect}

instance HasField "multiSelectTempDataStacked" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, MultiSelectTempDataStacked}

instance HasField "multiSelectTempData" (Ptr ImGuiContext) (Ptr (ImVector ImGuiMultiSelectTempData)) where
  getField = #{ptr ImGuiContext, MultiSelectTempData}

instance HasField "multiSelectStorage" (Ptr ImGuiContext) (Ptr (ImPool ImGuiMultiSelectState)) where
  getField = #{ptr ImGuiContext, MultiSelectStorage}

instance HasField "hoverItemDelayId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HoverItemDelayId}

instance HasField "hoverItemDelayIdPreviousFrame" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HoverItemDelayIdPreviousFrame}

instance HasField "hoverItemDelayTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, HoverItemDelayTimer}

instance HasField "hoverItemDelayClearTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, HoverItemDelayClearTimer}

instance HasField "hoverItemUnlockedStationaryId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HoverItemUnlockedStationaryId}

instance HasField "hoverWindowUnlockedStationaryId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HoverWindowUnlockedStationaryId}

instance HasField "mouseCursor" (Ptr ImGuiContext) (Ptr ImGuiMouseCursor) where
  getField = #{ptr ImGuiContext, MouseCursor}

instance HasField "mouseStationaryTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, MouseStationaryTimer}

instance HasField "mouseLastValidPos" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, MouseLastValidPos}

instance HasField "inputTextState" (Ptr ImGuiContext) (Ptr ImGuiInputTextState) where
  getField = #{ptr ImGuiContext, InputTextState}

instance HasField "inputTextLineIndex" (Ptr ImGuiContext) (Ptr ImGuiTextIndex) where
  getField = #{ptr ImGuiContext, InputTextLineIndex}

instance HasField "inputTextDeactivatedState" (Ptr ImGuiContext) (Ptr ImGuiInputTextDeactivatedState) where
  getField = #{ptr ImGuiContext, InputTextDeactivatedState}

instance HasField "inputTextPasswordFontBackupBaked" (Ptr ImGuiContext) (Ptr ImFontBaked) where
  getField = #{ptr ImGuiContext, InputTextPasswordFontBackupBaked}

instance HasField "inputTextPasswordFontBackupFlags" (Ptr ImGuiContext) (Ptr ImFontFlags) where
  getField = #{ptr ImGuiContext, InputTextPasswordFontBackupFlags}

instance HasField "inputTextReactivateId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, InputTextReactivateId}

instance HasField "tempInputId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, TempInputId}

instance HasField "dataTypeZeroValue" (Ptr ImGuiContext) (Ptr ImGuiDataTypeStorage) where
  getField = #{ptr ImGuiContext, DataTypeZeroValue}

instance HasField "beginMenuDepth" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, BeginMenuDepth}

instance HasField "beginComboDepth" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, BeginComboDepth}

instance HasField "colorEditCurrentID" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, ColorEditCurrentID}

instance HasField "colorEditSavedID" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, ColorEditSavedID}

instance HasField "colorEditSavedHue" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, ColorEditSavedHue}

instance HasField "colorEditSavedSat" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, ColorEditSavedSat}

instance HasField "colorEditSavedColor" (Ptr ImGuiContext) (Ptr ImU32) where
  getField = #{ptr ImGuiContext, ColorEditSavedColor}

instance HasField "colorPickerRef" (Ptr ImGuiContext) (Ptr ImVec4) where
  getField = #{ptr ImGuiContext, ColorPickerRef}

instance HasField "comboPreviewData" (Ptr ImGuiContext) (Ptr ImGuiComboPreviewData) where
  getField = #{ptr ImGuiContext, ComboPreviewData}

instance HasField "windowResizeBorderExpectedRect" (Ptr ImGuiContext) (Ptr ImRect) where
  getField = #{ptr ImGuiContext, WindowResizeBorderExpectedRect}

instance HasField "windowResizeRelativeMode" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, WindowResizeRelativeMode}

instance HasField "scrollbarSeekMode" (Ptr ImGuiContext) (Ptr CShort) where
  getField = #{ptr ImGuiContext, ScrollbarSeekMode}

instance HasField "scrollbarClickDeltaToGrabCenter" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, ScrollbarClickDeltaToGrabCenter}

instance HasField "sliderGrabClickOffset" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, SliderGrabClickOffset}

instance HasField "sliderCurrentAccum" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, SliderCurrentAccum}

instance HasField "sliderCurrentAccumDirty" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, SliderCurrentAccumDirty}

instance HasField "dragCurrentAccumDirty" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DragCurrentAccumDirty}

instance HasField "dragCurrentAccum" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, DragCurrentAccum}

instance HasField "dragSpeedDefaultRatio" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, DragSpeedDefaultRatio}

instance HasField "disabledAlphaBackup" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, DisabledAlphaBackup}

instance HasField "disabledStackSize" (Ptr ImGuiContext) (Ptr CShort) where
  getField = #{ptr ImGuiContext, DisabledStackSize}

instance HasField "tooltipOverrideCount" (Ptr ImGuiContext) (Ptr CShort) where
  getField = #{ptr ImGuiContext, TooltipOverrideCount}

instance HasField "tooltipPreviousWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, TooltipPreviousWindow}

instance HasField "clipboardHandlerData" (Ptr ImGuiContext) (Ptr (ImVector CChar)) where
  getField = #{ptr ImGuiContext, ClipboardHandlerData}

instance HasField "menusIdSubmittedThisFrame" (Ptr ImGuiContext) (Ptr (ImVector ImGuiID)) where
  getField = #{ptr ImGuiContext, MenusIdSubmittedThisFrame}

instance HasField "typingSelectState" (Ptr ImGuiContext) (Ptr ImGuiTypingSelectState) where
  getField = #{ptr ImGuiContext, TypingSelectState}

instance HasField "platformImeData" (Ptr ImGuiContext) (Ptr ImGuiPlatformImeData) where
  getField = #{ptr ImGuiContext, PlatformImeData}

instance HasField "platformImeDataPrev" (Ptr ImGuiContext) (Ptr ImGuiPlatformImeData) where
  getField = #{ptr ImGuiContext, PlatformImeDataPrev}

instance HasField "userTextures" (Ptr ImGuiContext) (Ptr (ImVector (Ptr ImTextureData))) where
  getField = #{ptr ImGuiContext, UserTextures}

instance HasField "dockContext" (Ptr ImGuiContext) (Ptr ImGuiDockContext) where
  getField = #{ptr ImGuiContext, DockContext}

instance HasField "dockNodeWindowMenuHandler" (Ptr ImGuiContext) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiDockNode) -> (Ptr ImGuiTabBar) -> IO ()))) where
  getField = #{ptr ImGuiContext, DockNodeWindowMenuHandler}

instance HasField "sessionDate" (Ptr ImGuiContext) (Ptr ImGuiPackedDate) where
  getField = #{ptr ImGuiContext, SessionDate}

instance HasField "settingsLoaded" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, SettingsLoaded}

instance HasField "settingsDirtyTimer" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, SettingsDirtyTimer}

instance HasField "settingsIniData" (Ptr ImGuiContext) (Ptr ImGuiTextBuffer) where
  getField = #{ptr ImGuiContext, SettingsIniData}

instance HasField "settingsHandlers" (Ptr ImGuiContext) (Ptr (ImVector ImGuiSettingsHandler)) where
  getField = #{ptr ImGuiContext, SettingsHandlers}

instance HasField "settingsWindows" (Ptr ImGuiContext) (Ptr (ImChunkStream ImGuiWindowSettings)) where
  getField = #{ptr ImGuiContext, SettingsWindows}

instance HasField "settingsTables" (Ptr ImGuiContext) (Ptr (ImChunkStream ImGuiTableSettings)) where
  getField = #{ptr ImGuiContext, SettingsTables}

instance HasField "hooks" (Ptr ImGuiContext) (Ptr (ImVector ImGuiContextHook)) where
  getField = #{ptr ImGuiContext, Hooks}

instance HasField "hookIdNext" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, HookIdNext}

instance HasField "demoMarkerCallback" (Ptr ImGuiContext) (Ptr ImGuiDemoMarkerCallback) where
  getField = #{ptr ImGuiContext, DemoMarkerCallback}

instance HasField "localizationTable" (Ptr ImGuiContext) (Ptr CString) where
  getField = #{ptr ImGuiContext, LocalizationTable}

localizationTableLength :: Int
localizationTableLength = #{const ImGuiLocKey_COUNT}

instance HasField "logEnabled" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, LogEnabled}

instance HasField "logLineFirstItem" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, LogLineFirstItem}

instance HasField "logFlags" (Ptr ImGuiContext) (Ptr ImGuiLogFlags) where
  getField = #{ptr ImGuiContext, LogFlags}

instance HasField "logWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiContext, LogWindow}

instance HasField "logFile" (Ptr ImGuiContext) (Ptr ImFileHandle) where
  getField = #{ptr ImGuiContext, LogFile}

instance HasField "logBuffer" (Ptr ImGuiContext) (Ptr ImGuiTextBuffer) where
  getField = #{ptr ImGuiContext, LogBuffer}

instance HasField "logNextPrefix" (Ptr ImGuiContext) (Ptr CString) where
  getField = #{ptr ImGuiContext, LogNextPrefix}

instance HasField "logNextSuffix" (Ptr ImGuiContext) (Ptr CString) where
  getField = #{ptr ImGuiContext, LogNextSuffix}

instance HasField "logLinePosY" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, LogLinePosY}

instance HasField "logDepthRef" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, LogDepthRef}

instance HasField "logDepthToExpand" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, LogDepthToExpand}

instance HasField "logDepthToExpandDefault" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, LogDepthToExpandDefault}

instance HasField "errorCallback" (Ptr ImGuiContext) (Ptr ImGuiErrorCallback) where
  getField = #{ptr ImGuiContext, ErrorCallback}

instance HasField "errorCallbackUserData" (Ptr ImGuiContext) (Ptr (Ptr ())) where
  getField = #{ptr ImGuiContext, ErrorCallbackUserData}

instance HasField "errorTooltipLockedPos" (Ptr ImGuiContext) (Ptr ImVec2) where
  getField = #{ptr ImGuiContext, ErrorTooltipLockedPos}

instance HasField "errorFirst" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, ErrorFirst}

instance HasField "errorCountCurrentFrame" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, ErrorCountCurrentFrame}

instance HasField "stackSizesInNewFrame" (Ptr ImGuiContext) (Ptr ImGuiErrorRecoveryState) where
  getField = #{ptr ImGuiContext, StackSizesInNewFrame}

instance HasField "stackSizesInBeginForCurrentWindow" (Ptr ImGuiContext) (Ptr (Ptr ImGuiErrorRecoveryState)) where
  getField = #{ptr ImGuiContext, StackSizesInBeginForCurrentWindow}

instance HasField "debugDrawIdConflictsCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, DebugDrawIdConflictsCount}

instance HasField "debugLogFlags" (Ptr ImGuiContext) (Ptr ImGuiDebugLogFlags) where
  getField = #{ptr ImGuiContext, DebugLogFlags}

instance HasField "debugLogBuf" (Ptr ImGuiContext) (Ptr ImGuiTextBuffer) where
  getField = #{ptr ImGuiContext, DebugLogBuf}

instance HasField "debugLogIndex" (Ptr ImGuiContext) (Ptr ImGuiTextIndex) where
  getField = #{ptr ImGuiContext, DebugLogIndex}

instance HasField "debugLogSkippedErrors" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, DebugLogSkippedErrors}

instance HasField "debugLogAutoDisableFlags" (Ptr ImGuiContext) (Ptr ImGuiDebugLogFlags) where
  getField = #{ptr ImGuiContext, DebugLogAutoDisableFlags}

instance HasField "debugLogAutoDisableFrames" (Ptr ImGuiContext) (Ptr ImU8) where
  getField = #{ptr ImGuiContext, DebugLogAutoDisableFrames}

instance HasField "debugLocateFrames" (Ptr ImGuiContext) (Ptr ImU8) where
  getField = #{ptr ImGuiContext, DebugLocateFrames}

instance HasField "debugBreakInLocateId" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DebugBreakInLocateId}

instance HasField "debugBreakKeyChord" (Ptr ImGuiContext) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiContext, DebugBreakKeyChord}

instance HasField "debugBeginReturnValueCullDepth" (Ptr ImGuiContext) (Ptr ImS8) where
  getField = #{ptr ImGuiContext, DebugBeginReturnValueCullDepth}

instance HasField "debugItemPickerActive" (Ptr ImGuiContext) (Ptr CBool) where
  getField = #{ptr ImGuiContext, DebugItemPickerActive}

instance HasField "debugItemPickerMouseButton" (Ptr ImGuiContext) (Ptr ImU8) where
  getField = #{ptr ImGuiContext, DebugItemPickerMouseButton}

instance HasField "debugItemPickerBreakId" (Ptr ImGuiContext) (Ptr ImGuiID) where
  getField = #{ptr ImGuiContext, DebugItemPickerBreakId}

instance HasField "debugFlashStyleColorTime" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, DebugFlashStyleColorTime}

instance HasField "debugFlashStyleColorBackup" (Ptr ImGuiContext) (Ptr ImVec4) where
  getField = #{ptr ImGuiContext, DebugFlashStyleColorBackup}

instance HasField "debugMetricsConfig" (Ptr ImGuiContext) (Ptr ImGuiMetricsConfig) where
  getField = #{ptr ImGuiContext, DebugMetricsConfig}

instance HasField "debugItemPathQuery" (Ptr ImGuiContext) (Ptr ImGuiDebugItemPathQuery) where
  getField = #{ptr ImGuiContext, DebugItemPathQuery}

instance HasField "debugIDStackTool" (Ptr ImGuiContext) (Ptr ImGuiIDStackTool) where
  getField = #{ptr ImGuiContext, DebugIDStackTool}

instance HasField "debugAllocInfo" (Ptr ImGuiContext) (Ptr ImGuiDebugAllocInfo) where
  getField = #{ptr ImGuiContext, DebugAllocInfo}

instance HasField "debugHoveredDockNode" (Ptr ImGuiContext) (Ptr (Ptr ImGuiDockNode)) where
  getField = #{ptr ImGuiContext, DebugHoveredDockNode}

instance HasField "framerateSecPerFrame" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, FramerateSecPerFrame}

framerateSecPerFrameLength :: Int
framerateSecPerFrameLength = #{const 60}

instance HasField "framerateSecPerFrameIdx" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, FramerateSecPerFrameIdx}

instance HasField "framerateSecPerFrameCount" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, FramerateSecPerFrameCount}

instance HasField "framerateSecPerFrameAccum" (Ptr ImGuiContext) (Ptr Float) where
  getField = #{ptr ImGuiContext, FramerateSecPerFrameAccum}

instance HasField "wantCaptureMouseNextFrame" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, WantCaptureMouseNextFrame}

instance HasField "wantCaptureKeyboardNextFrame" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, WantCaptureKeyboardNextFrame}

instance HasField "wantTextInputNextFrame" (Ptr ImGuiContext) (Ptr CInt) where
  getField = #{ptr ImGuiContext, WantTextInputNextFrame}

instance HasField "tempBuffer" (Ptr ImGuiContext) (Ptr (ImVector CChar)) where
  getField = #{ptr ImGuiContext, TempBuffer}

instance HasField "tempKeychordName" (Ptr ImGuiContext) (Ptr CChar) where
  getField = #{ptr ImGuiContext, TempKeychordName}

tempKeychordNameLength :: Int
tempKeychordNameLength = #{const 64}