dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiDockContext.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiDockContext
( ImGuiDockContext (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw.ImGuiStorage (ImGuiStorage)
import DearImGui.Raw.ImVector (ImVector)
import DearImGui.Raw.Internal.ImGuiDockNodeSettings (ImGuiDockNodeSettings)
import DearImGui.Raw.Internal.ImGuiDockRequest (ImGuiDockRequest)
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" "ImGuiDockContext" #-} ImGuiDockContext = ImGuiDockContext
{ nodes :: ImGuiStorage
, requests :: ImVector ImGuiDockRequest
, nodesSettings :: ImVector ImGuiDockNodeSettings
, wantFullRebuild :: CBool
}
deriving (Eq, Show)
instance Storable ImGuiDockContext where
sizeOf _ = #{size ImGuiDockContext}
alignment _ = #{alignment ImGuiDockContext}
peek p = ImGuiDockContext <$> #{peek ImGuiDockContext, Nodes} p <*> #{peek ImGuiDockContext, Requests} p <*> #{peek ImGuiDockContext, NodesSettings} p <*> #{peek ImGuiDockContext, WantFullRebuild} p
poke p v = do
#{poke ImGuiDockContext, Nodes} p v.nodes
#{poke ImGuiDockContext, Requests} p v.requests
#{poke ImGuiDockContext, NodesSettings} p v.nodesSettings
#{poke ImGuiDockContext, WantFullRebuild} p v.wantFullRebuild
instance HasField "nodes" (Ptr ImGuiDockContext) (Ptr ImGuiStorage) where
getField = #{ptr ImGuiDockContext, Nodes}
instance HasField "requests" (Ptr ImGuiDockContext) (Ptr (ImVector ImGuiDockRequest)) where
getField = #{ptr ImGuiDockContext, Requests}
instance HasField "nodesSettings" (Ptr ImGuiDockContext) (Ptr (ImVector ImGuiDockNodeSettings)) where
getField = #{ptr ImGuiDockContext, NodesSettings}
instance HasField "wantFullRebuild" (Ptr ImGuiDockContext) (Ptr CBool) where
getField = #{ptr ImGuiDockContext, WantFullRebuild}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiDockContext_Init_wrap"
init
:: Ptr ImGuiDockContext
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiDockContext_Destroy_wrap"
destroy
:: Ptr ImGuiDockContext
-> IO ()
withDefault :: (Ptr ImGuiDockContext -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)