packages feed

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

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

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

module DearImGui.Raw.Internal.ImGuiWindow
  ( ImGuiWindow
  , c_getIDFromPos
  , c_getIDFromRectangle
  , c_menuBarRect
  , c_rect
  , c_titleBarRect
  , getID
  , getIDFromPos
  , getIDFromRectangle
  , getIDInt
  , getIDStr
  , menuBarRect
  , navLastIdsLength
  , navPreferredScoringPosRelLength
  , navRectRelLength
  , rect
  , titleBarRect
  ) where

import DearImGui.Raw (ImGuiID, ImS8, ImU8)
import DearImGui.Raw.Enums.ImGuiChildFlags (ImGuiChildFlags)
import DearImGui.Raw.Enums.ImGuiDir (ImGuiDir)
import DearImGui.Raw.Enums.ImGuiWindowFlags (ImGuiWindowFlags)
import DearImGui.Raw.ImDrawList (ImDrawList)
import DearImGui.Raw.ImGuiStorage (ImGuiStorage)
import DearImGui.Raw.ImGuiWindowClass (ImGuiWindowClass)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVector (ImVector)
import DearImGui.Raw.Internal.ImGuiContext (ImGuiContext)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiDockNode (ImGuiDockNode)
import DearImGui.Raw.Internal.ImGuiOldColumns (ImGuiOldColumns)
import {-# SOURCE #-} DearImGui.Raw.Internal.ImGuiViewportP (ImGuiViewportP)
import DearImGui.Raw.Internal.ImGuiWindowDockStyle (ImGuiWindowDockStyle)
import DearImGui.Raw.Internal.ImGuiWindowTempData (ImGuiWindowTempData)
import DearImGui.Raw.Internal.ImRect (ImRect)
import DearImGui.Raw.Internal.ImVec2ih (ImVec2ih)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Utils (with)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))

#include "dcimgui_nodefaultargfunctions_internal.h"

-- structs (opaque)

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

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

instance HasField "name" (Ptr ImGuiWindow) (Ptr (Ptr CChar)) where
  getField = #{ptr ImGuiWindow, Name}

instance HasField "iD" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, ID}

instance HasField "flags" (Ptr ImGuiWindow) (Ptr ImGuiWindowFlags) where
  getField = #{ptr ImGuiWindow, Flags}

instance HasField "flagsPreviousFrame" (Ptr ImGuiWindow) (Ptr ImGuiWindowFlags) where
  getField = #{ptr ImGuiWindow, FlagsPreviousFrame}

instance HasField "childFlags" (Ptr ImGuiWindow) (Ptr ImGuiChildFlags) where
  getField = #{ptr ImGuiWindow, ChildFlags}

instance HasField "windowClass" (Ptr ImGuiWindow) (Ptr ImGuiWindowClass) where
  getField = #{ptr ImGuiWindow, WindowClass}

instance HasField "viewport" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiViewportP)) where
  getField = #{ptr ImGuiWindow, Viewport}

instance HasField "viewportId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, ViewportId}

instance HasField "viewportPos" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ViewportPos}

instance HasField "viewportAllowPlatformMonitorExtend" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, ViewportAllowPlatformMonitorExtend}

instance HasField "pos" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, Pos}

instance HasField "size" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, Size}

instance HasField "sizeFull" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, SizeFull}

instance HasField "contentSize" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ContentSize}

instance HasField "contentSizeIdeal" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ContentSizeIdeal}

instance HasField "contentSizeExplicit" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ContentSizeExplicit}

instance HasField "windowPadding" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, WindowPadding}

instance HasField "windowRounding" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, WindowRounding}

instance HasField "windowBorderSize" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, WindowBorderSize}

instance HasField "titleBarHeight" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, TitleBarHeight}

instance HasField "menuBarHeight" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, MenuBarHeight}

instance HasField "decoOuterSizeX1" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, DecoOuterSizeX1}

instance HasField "decoOuterSizeY1" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, DecoOuterSizeY1}

instance HasField "decoOuterSizeX2" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, DecoOuterSizeX2}

instance HasField "decoOuterSizeY2" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, DecoOuterSizeY2}

instance HasField "decoInnerSizeX1" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, DecoInnerSizeX1}

instance HasField "decoInnerSizeY1" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, DecoInnerSizeY1}

instance HasField "nameBufLen" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, NameBufLen}

instance HasField "moveId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, MoveId}

instance HasField "tabId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, TabId}

instance HasField "childId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, ChildId}

instance HasField "popupId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, PopupId}

instance HasField "scroll" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, Scroll}

instance HasField "scrollMax" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ScrollMax}

instance HasField "scrollTarget" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ScrollTarget}

instance HasField "scrollTargetCenterRatio" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ScrollTargetCenterRatio}

instance HasField "scrollTargetEdgeSnapDist" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ScrollTargetEdgeSnapDist}

instance HasField "scrollbarSizes" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, ScrollbarSizes}

instance HasField "scrollbarX" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, ScrollbarX}

instance HasField "scrollbarY" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, ScrollbarY}

instance HasField "scrollbarXStabilizeEnabled" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, ScrollbarXStabilizeEnabled}

instance HasField "scrollbarXStabilizeToggledHistory" (Ptr ImGuiWindow) (Ptr ImU8) where
  getField = #{ptr ImGuiWindow, ScrollbarXStabilizeToggledHistory}

instance HasField "viewportOwned" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, ViewportOwned}

instance HasField "active" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, Active}

instance HasField "wasActive" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, WasActive}

instance HasField "writeAccessed" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, WriteAccessed}

instance HasField "collapsed" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, Collapsed}

instance HasField "wantCollapseToggle" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, WantCollapseToggle}

instance HasField "skipItems" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, SkipItems}

instance HasField "skipRefresh" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, SkipRefresh}

instance HasField "appearing" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, Appearing}

instance HasField "hidden" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, Hidden}

instance HasField "isFallbackWindow" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, IsFallbackWindow}

instance HasField "isExplicitChild" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, IsExplicitChild}

instance HasField "hasCloseButton" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, HasCloseButton}

instance HasField "resizeBorderHovered" (Ptr ImGuiWindow) (Ptr CChar) where
  getField = #{ptr ImGuiWindow, ResizeBorderHovered}

instance HasField "resizeBorderHeld" (Ptr ImGuiWindow) (Ptr CChar) where
  getField = #{ptr ImGuiWindow, ResizeBorderHeld}

instance HasField "beginCount" (Ptr ImGuiWindow) (Ptr CShort) where
  getField = #{ptr ImGuiWindow, BeginCount}

instance HasField "beginCountPreviousFrame" (Ptr ImGuiWindow) (Ptr CShort) where
  getField = #{ptr ImGuiWindow, BeginCountPreviousFrame}

instance HasField "beginOrderWithinParent" (Ptr ImGuiWindow) (Ptr CShort) where
  getField = #{ptr ImGuiWindow, BeginOrderWithinParent}

instance HasField "beginOrderWithinContext" (Ptr ImGuiWindow) (Ptr CShort) where
  getField = #{ptr ImGuiWindow, BeginOrderWithinContext}

instance HasField "focusOrder" (Ptr ImGuiWindow) (Ptr CShort) where
  getField = #{ptr ImGuiWindow, FocusOrder}

instance HasField "autoPosLastDirection" (Ptr ImGuiWindow) (Ptr ImGuiDir) where
  getField = #{ptr ImGuiWindow, AutoPosLastDirection}

instance HasField "autoFitFramesX" (Ptr ImGuiWindow) (Ptr ImS8) where
  getField = #{ptr ImGuiWindow, AutoFitFramesX}

instance HasField "autoFitFramesY" (Ptr ImGuiWindow) (Ptr ImS8) where
  getField = #{ptr ImGuiWindow, AutoFitFramesY}

instance HasField "autoFitOnlyGrows" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, AutoFitOnlyGrows}

instance HasField "hiddenFramesCanSkipItems" (Ptr ImGuiWindow) (Ptr ImS8) where
  getField = #{ptr ImGuiWindow, HiddenFramesCanSkipItems}

instance HasField "hiddenFramesCannotSkipItems" (Ptr ImGuiWindow) (Ptr ImS8) where
  getField = #{ptr ImGuiWindow, HiddenFramesCannotSkipItems}

instance HasField "hiddenFramesForRenderOnly" (Ptr ImGuiWindow) (Ptr ImS8) where
  getField = #{ptr ImGuiWindow, HiddenFramesForRenderOnly}

instance HasField "disableInputsFrames" (Ptr ImGuiWindow) (Ptr ImS8) where
  getField = #{ptr ImGuiWindow, DisableInputsFrames}

instance HasField "setWindowPosVal" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, SetWindowPosVal}

instance HasField "setWindowPosPivot" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, SetWindowPosPivot}

instance HasField "iDStack" (Ptr ImGuiWindow) (Ptr (ImVector ImGuiID)) where
  getField = #{ptr ImGuiWindow, IDStack}

instance HasField "dC" (Ptr ImGuiWindow) (Ptr ImGuiWindowTempData) where
  getField = #{ptr ImGuiWindow, DC}

instance HasField "outerRectClipped" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, OuterRectClipped}

instance HasField "innerRect" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, InnerRect}

instance HasField "innerClipRect" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, InnerClipRect}

instance HasField "workRect" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, WorkRect}

instance HasField "parentWorkRect" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, ParentWorkRect}

instance HasField "clipRect" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, ClipRect}

instance HasField "contentRegionRect" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, ContentRegionRect}

instance HasField "hitTestHoleSize" (Ptr ImGuiWindow) (Ptr ImVec2ih) where
  getField = #{ptr ImGuiWindow, HitTestHoleSize}

instance HasField "hitTestHoleOffset" (Ptr ImGuiWindow) (Ptr ImVec2ih) where
  getField = #{ptr ImGuiWindow, HitTestHoleOffset}

instance HasField "lastFrameActive" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, LastFrameActive}

instance HasField "lastFrameJustFocused" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, LastFrameJustFocused}

instance HasField "lastTimeActive" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, LastTimeActive}

instance HasField "stateStorage" (Ptr ImGuiWindow) (Ptr ImGuiStorage) where
  getField = #{ptr ImGuiWindow, StateStorage}

instance HasField "columnsStorage" (Ptr ImGuiWindow) (Ptr (ImVector ImGuiOldColumns)) where
  getField = #{ptr ImGuiWindow, ColumnsStorage}

instance HasField "fontWindowScale" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, FontWindowScale}

instance HasField "fontWindowScaleParents" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, FontWindowScaleParents}

instance HasField "fontRefSize" (Ptr ImGuiWindow) (Ptr Float) where
  getField = #{ptr ImGuiWindow, FontRefSize}

instance HasField "settingsOffset" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, SettingsOffset}

instance HasField "drawList" (Ptr ImGuiWindow) (Ptr (Ptr ImDrawList)) where
  getField = #{ptr ImGuiWindow, DrawList}

instance HasField "drawListInst" (Ptr ImGuiWindow) (Ptr ImDrawList) where
  getField = #{ptr ImGuiWindow, DrawListInst}

instance HasField "parentWindow" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, ParentWindow}

instance HasField "parentWindowInBeginStack" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, ParentWindowInBeginStack}

instance HasField "rootWindow" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, RootWindow}

instance HasField "rootWindowPopupTree" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, RootWindowPopupTree}

instance HasField "rootWindowDockTree" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, RootWindowDockTree}

instance HasField "rootWindowForTitleBarHighlight" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, RootWindowForTitleBarHighlight}

instance HasField "rootWindowForNav" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, RootWindowForNav}

instance HasField "parentWindowForFocusRoute" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, ParentWindowForFocusRoute}

instance HasField "navLastChildNavWindow" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiWindow)) where
  getField = #{ptr ImGuiWindow, NavLastChildNavWindow}

instance HasField "navLastIds" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, NavLastIds}

navLastIdsLength :: Int
navLastIdsLength = #{const ImGuiNavLayer_COUNT}

instance HasField "navRectRel" (Ptr ImGuiWindow) (Ptr ImRect) where
  getField = #{ptr ImGuiWindow, NavRectRel}

navRectRelLength :: Int
navRectRelLength = #{const ImGuiNavLayer_COUNT}

instance HasField "navPreferredScoringPosRel" (Ptr ImGuiWindow) (Ptr ImVec2) where
  getField = #{ptr ImGuiWindow, NavPreferredScoringPosRel}

navPreferredScoringPosRelLength :: Int
navPreferredScoringPosRelLength = #{const ImGuiNavLayer_COUNT}

instance HasField "navRootFocusScopeId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, NavRootFocusScopeId}

instance HasField "memoryDrawListIdxCapacity" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, MemoryDrawListIdxCapacity}

instance HasField "memoryDrawListVtxCapacity" (Ptr ImGuiWindow) (Ptr CInt) where
  getField = #{ptr ImGuiWindow, MemoryDrawListVtxCapacity}

instance HasField "memoryCompacted" (Ptr ImGuiWindow) (Ptr CBool) where
  getField = #{ptr ImGuiWindow, MemoryCompacted}

instance HasField "dockOrder" (Ptr ImGuiWindow) (Ptr CShort) where
  getField = #{ptr ImGuiWindow, DockOrder}

instance HasField "dockStyle" (Ptr ImGuiWindow) (Ptr ImGuiWindowDockStyle) where
  getField = #{ptr ImGuiWindow, DockStyle}

instance HasField "dockNode" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiDockNode)) where
  getField = #{ptr ImGuiWindow, DockNode}

instance HasField "dockNodeAsHost" (Ptr ImGuiWindow) (Ptr (Ptr ImGuiDockNode)) where
  getField = #{ptr ImGuiWindow, DockNodeAsHost}

instance HasField "dockId" (Ptr ImGuiWindow) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindow, DockId}

-- functions

-- C: ImGuiID GetID(ImGuiWindow* self, const void* ptr)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiWindow_GetID"
  getID
    :: (Ptr ImGuiWindow) -- ^ self
    -> (Ptr ()) -- ^ ptr
    -> IO ImGuiID

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindow_GetIDFromPos_wrap"
  c_getIDFromPos
    :: (Ptr ImGuiWindow) -- ^ self
    -> (Ptr ImVec2) -- ^ p_abs
    -> IO ImGuiID

getIDFromPos
  :: (Ptr ImGuiWindow) -- ^ self
  -> ImVec2 -- ^ p_abs
  -> IO ImGuiID
getIDFromPos self p_abs =
  with p_abs $ \p_absPtr -> c_getIDFromPos self p_absPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindow_GetIDFromRectangle_wrap"
  c_getIDFromRectangle
    :: (Ptr ImGuiWindow) -- ^ self
    -> (Ptr ImRect) -- ^ r_abs
    -> IO ImGuiID

getIDFromRectangle
  :: (Ptr ImGuiWindow) -- ^ self
  -> ImRect -- ^ r_abs
  -> IO ImGuiID
getIDFromRectangle self r_abs =
  with r_abs $ \r_absPtr -> c_getIDFromRectangle self r_absPtr

-- C: ImGuiID GetID(ImGuiWindow* self, int n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiWindow_GetIDInt"
  getIDInt
    :: (Ptr ImGuiWindow) -- ^ self
    -> CInt -- ^ n
    -> IO ImGuiID

-- C: ImGuiID GetID(ImGuiWindow* self, const char* str, const char* str_end)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiWindow_GetIDStr"
  getIDStr
    :: (Ptr ImGuiWindow) -- ^ self
    -> CString -- ^ str
    -> CString -- ^ str_end
    -> IO ImGuiID

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindow_MenuBarRect_wrap"
  c_menuBarRect
    :: (Ptr ImGuiWindow) -- ^ self
    -> (Ptr ImRect) -- ^ out
    -> IO ()

menuBarRect
  :: (Ptr ImGuiWindow) -- ^ self
  -> IO ImRect
menuBarRect self =
  alloca $ \outPtr -> c_menuBarRect self outPtr >> peek outPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindow_Rect_wrap"
  c_rect
    :: (Ptr ImGuiWindow) -- ^ self
    -> (Ptr ImRect) -- ^ out
    -> IO ()

rect
  :: (Ptr ImGuiWindow) -- ^ self
  -> IO ImRect
rect self =
  alloca $ \outPtr -> c_rect self outPtr >> peek outPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindow_TitleBarRect_wrap"
  c_titleBarRect
    :: (Ptr ImGuiWindow) -- ^ self
    -> (Ptr ImRect) -- ^ out
    -> IO ()

titleBarRect
  :: (Ptr ImGuiWindow) -- ^ self
  -> IO ImRect
titleBarRect self =
  alloca $ \outPtr -> c_titleBarRect self outPtr >> peek outPtr