packages feed

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

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

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

module DearImGui.Raw.Internal.ImGuiNextWindowData
  ( ImGuiNextWindowData (..)
  , clearFlags
  , destroy
  , init
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImGuiSizeCallback)
import DearImGui.Raw.Enums.ImGuiChildFlags (ImGuiChildFlags)
import DearImGui.Raw.Enums.ImGuiCond (ImGuiCond)
import DearImGui.Raw.Enums.ImGuiWindowFlags (ImGuiWindowFlags)
import DearImGui.Raw.ImGuiWindowClass (ImGuiWindowClass)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.Internal.Enums.ImGuiNextWindowDataFlags (ImGuiNextWindowDataFlags)
import DearImGui.Raw.Internal.Enums.ImGuiWindowRefreshFlags (ImGuiWindowRefreshFlags)
import DearImGui.Raw.Internal.ImRect (ImRect)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)

#include "dcimgui_nodefaultargfunctions_internal.h"

-- structs (opaque)

data {-# CTYPE "dcimgui_nodefaultargfunctions_internal.h" "ImGuiNextWindowData" #-} ImGuiNextWindowData = ImGuiNextWindowData
  { hasFlags :: ImGuiNextWindowDataFlags
  , posCond :: ImGuiCond
  , sizeCond :: ImGuiCond
  , collapsedCond :: ImGuiCond
  , dockCond :: ImGuiCond
  , posVal :: ImVec2
  , posPivotVal :: ImVec2
  , sizeVal :: ImVec2
  , contentSizeVal :: ImVec2
  , scrollVal :: ImVec2
  , windowFlagsSet :: ImGuiWindowFlags
  , windowFlagsClear :: ImGuiWindowFlags
  , childFlagsSet :: ImGuiChildFlags
  , childFlagsClear :: ImGuiChildFlags
  , posUndock :: CBool
  , collapsedVal :: CBool
  , sizeConstraintRect :: ImRect
  , sizeCallback :: ImGuiSizeCallback
  , sizeCallbackUserData :: Ptr ()
  , bgAlphaVal :: Float
  , viewportId :: ImGuiID
  , dockId :: ImGuiID
  , windowClass :: ImGuiWindowClass
  , menuBarOffsetMinVal :: ImVec2
  , refreshFlagsVal :: ImGuiWindowRefreshFlags
  }
  deriving (Eq, Show)
instance Storable ImGuiNextWindowData where
  sizeOf _    = #{size ImGuiNextWindowData}
  alignment _ = #{alignment ImGuiNextWindowData}
  peek p = ImGuiNextWindowData <$> #{peek ImGuiNextWindowData, HasFlags} p <*> #{peek ImGuiNextWindowData, PosCond} p <*> #{peek ImGuiNextWindowData, SizeCond} p <*> #{peek ImGuiNextWindowData, CollapsedCond} p <*> #{peek ImGuiNextWindowData, DockCond} p <*> #{peek ImGuiNextWindowData, PosVal} p <*> #{peek ImGuiNextWindowData, PosPivotVal} p <*> #{peek ImGuiNextWindowData, SizeVal} p <*> #{peek ImGuiNextWindowData, ContentSizeVal} p <*> #{peek ImGuiNextWindowData, ScrollVal} p <*> #{peek ImGuiNextWindowData, WindowFlagsSet} p <*> #{peek ImGuiNextWindowData, WindowFlagsClear} p <*> #{peek ImGuiNextWindowData, ChildFlagsSet} p <*> #{peek ImGuiNextWindowData, ChildFlagsClear} p <*> #{peek ImGuiNextWindowData, PosUndock} p <*> #{peek ImGuiNextWindowData, CollapsedVal} p <*> #{peek ImGuiNextWindowData, SizeConstraintRect} p <*> #{peek ImGuiNextWindowData, SizeCallback} p <*> #{peek ImGuiNextWindowData, SizeCallbackUserData} p <*> #{peek ImGuiNextWindowData, BgAlphaVal} p <*> #{peek ImGuiNextWindowData, ViewportId} p <*> #{peek ImGuiNextWindowData, DockId} p <*> #{peek ImGuiNextWindowData, WindowClass} p <*> #{peek ImGuiNextWindowData, MenuBarOffsetMinVal} p <*> #{peek ImGuiNextWindowData, RefreshFlagsVal} p
  poke p v = do
    #{poke ImGuiNextWindowData, HasFlags} p v.hasFlags
    #{poke ImGuiNextWindowData, PosCond} p v.posCond
    #{poke ImGuiNextWindowData, SizeCond} p v.sizeCond
    #{poke ImGuiNextWindowData, CollapsedCond} p v.collapsedCond
    #{poke ImGuiNextWindowData, DockCond} p v.dockCond
    #{poke ImGuiNextWindowData, PosVal} p v.posVal
    #{poke ImGuiNextWindowData, PosPivotVal} p v.posPivotVal
    #{poke ImGuiNextWindowData, SizeVal} p v.sizeVal
    #{poke ImGuiNextWindowData, ContentSizeVal} p v.contentSizeVal
    #{poke ImGuiNextWindowData, ScrollVal} p v.scrollVal
    #{poke ImGuiNextWindowData, WindowFlagsSet} p v.windowFlagsSet
    #{poke ImGuiNextWindowData, WindowFlagsClear} p v.windowFlagsClear
    #{poke ImGuiNextWindowData, ChildFlagsSet} p v.childFlagsSet
    #{poke ImGuiNextWindowData, ChildFlagsClear} p v.childFlagsClear
    #{poke ImGuiNextWindowData, PosUndock} p v.posUndock
    #{poke ImGuiNextWindowData, CollapsedVal} p v.collapsedVal
    #{poke ImGuiNextWindowData, SizeConstraintRect} p v.sizeConstraintRect
    #{poke ImGuiNextWindowData, SizeCallback} p v.sizeCallback
    #{poke ImGuiNextWindowData, SizeCallbackUserData} p v.sizeCallbackUserData
    #{poke ImGuiNextWindowData, BgAlphaVal} p v.bgAlphaVal
    #{poke ImGuiNextWindowData, ViewportId} p v.viewportId
    #{poke ImGuiNextWindowData, DockId} p v.dockId
    #{poke ImGuiNextWindowData, WindowClass} p v.windowClass
    #{poke ImGuiNextWindowData, MenuBarOffsetMinVal} p v.menuBarOffsetMinVal
    #{poke ImGuiNextWindowData, RefreshFlagsVal} p v.refreshFlagsVal

instance HasField "hasFlags" (Ptr ImGuiNextWindowData) (Ptr ImGuiNextWindowDataFlags) where
  getField = #{ptr ImGuiNextWindowData, HasFlags}

instance HasField "posCond" (Ptr ImGuiNextWindowData) (Ptr ImGuiCond) where
  getField = #{ptr ImGuiNextWindowData, PosCond}

instance HasField "sizeCond" (Ptr ImGuiNextWindowData) (Ptr ImGuiCond) where
  getField = #{ptr ImGuiNextWindowData, SizeCond}

instance HasField "collapsedCond" (Ptr ImGuiNextWindowData) (Ptr ImGuiCond) where
  getField = #{ptr ImGuiNextWindowData, CollapsedCond}

instance HasField "dockCond" (Ptr ImGuiNextWindowData) (Ptr ImGuiCond) where
  getField = #{ptr ImGuiNextWindowData, DockCond}

instance HasField "posVal" (Ptr ImGuiNextWindowData) (Ptr ImVec2) where
  getField = #{ptr ImGuiNextWindowData, PosVal}

instance HasField "posPivotVal" (Ptr ImGuiNextWindowData) (Ptr ImVec2) where
  getField = #{ptr ImGuiNextWindowData, PosPivotVal}

instance HasField "sizeVal" (Ptr ImGuiNextWindowData) (Ptr ImVec2) where
  getField = #{ptr ImGuiNextWindowData, SizeVal}

instance HasField "contentSizeVal" (Ptr ImGuiNextWindowData) (Ptr ImVec2) where
  getField = #{ptr ImGuiNextWindowData, ContentSizeVal}

instance HasField "scrollVal" (Ptr ImGuiNextWindowData) (Ptr ImVec2) where
  getField = #{ptr ImGuiNextWindowData, ScrollVal}

instance HasField "windowFlagsSet" (Ptr ImGuiNextWindowData) (Ptr ImGuiWindowFlags) where
  getField = #{ptr ImGuiNextWindowData, WindowFlagsSet}

instance HasField "windowFlagsClear" (Ptr ImGuiNextWindowData) (Ptr ImGuiWindowFlags) where
  getField = #{ptr ImGuiNextWindowData, WindowFlagsClear}

instance HasField "childFlagsSet" (Ptr ImGuiNextWindowData) (Ptr ImGuiChildFlags) where
  getField = #{ptr ImGuiNextWindowData, ChildFlagsSet}

instance HasField "childFlagsClear" (Ptr ImGuiNextWindowData) (Ptr ImGuiChildFlags) where
  getField = #{ptr ImGuiNextWindowData, ChildFlagsClear}

instance HasField "posUndock" (Ptr ImGuiNextWindowData) (Ptr CBool) where
  getField = #{ptr ImGuiNextWindowData, PosUndock}

instance HasField "collapsedVal" (Ptr ImGuiNextWindowData) (Ptr CBool) where
  getField = #{ptr ImGuiNextWindowData, CollapsedVal}

instance HasField "sizeConstraintRect" (Ptr ImGuiNextWindowData) (Ptr ImRect) where
  getField = #{ptr ImGuiNextWindowData, SizeConstraintRect}

instance HasField "sizeCallback" (Ptr ImGuiNextWindowData) (Ptr ImGuiSizeCallback) where
  getField = #{ptr ImGuiNextWindowData, SizeCallback}

instance HasField "sizeCallbackUserData" (Ptr ImGuiNextWindowData) (Ptr (Ptr ())) where
  getField = #{ptr ImGuiNextWindowData, SizeCallbackUserData}

instance HasField "bgAlphaVal" (Ptr ImGuiNextWindowData) (Ptr Float) where
  getField = #{ptr ImGuiNextWindowData, BgAlphaVal}

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

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

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

instance HasField "menuBarOffsetMinVal" (Ptr ImGuiNextWindowData) (Ptr ImVec2) where
  getField = #{ptr ImGuiNextWindowData, MenuBarOffsetMinVal}

instance HasField "refreshFlagsVal" (Ptr ImGuiNextWindowData) (Ptr ImGuiWindowRefreshFlags) where
  getField = #{ptr ImGuiNextWindowData, RefreshFlagsVal}

foreign import capi unsafe "DearImGuiWrappers.h ImGuiNextWindowData_Init_wrap"
  init
    :: Ptr ImGuiNextWindowData
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGuiNextWindowData_Destroy_wrap"
  destroy
    :: Ptr ImGuiNextWindowData
    -> IO ()

withDefault :: (Ptr ImGuiNextWindowData -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)

-- functions

-- C: void ClearFlags(ImGuiNextWindowData* self)
foreign import capi safe "dcimgui_nodefaultargfunctions_internal.h ImGuiNextWindowData_ClearFlags"
  clearFlags
    :: (Ptr ImGuiNextWindowData) -- ^ self
    -> IO ()