dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiTreeNodeStackData.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiTreeNodeStackData
( ImGuiTreeNodeStackData (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
import DearImGui.Raw.Enums.ImGuiItemFlags (ImGuiItemFlags)
import DearImGui.Raw.Enums.ImGuiTreeNodeFlags (ImGuiTreeNodeFlags)
import DearImGui.Raw.Internal (ImGuiTableColumnIdx)
import DearImGui.Raw.Internal.ImRect (ImRect)
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" "ImGuiTreeNodeStackData" #-} ImGuiTreeNodeStackData = ImGuiTreeNodeStackData
{ iD :: ImGuiID
, treeFlags :: ImGuiTreeNodeFlags
, itemFlags :: ImGuiItemFlags
, navRect :: ImRect
, drawLinesX1 :: Float
, drawLinesToNodesY2 :: Float
, drawLinesTableColumn :: ImGuiTableColumnIdx
}
deriving (Eq, Show)
instance Storable ImGuiTreeNodeStackData where
sizeOf _ = #{size ImGuiTreeNodeStackData}
alignment _ = #{alignment ImGuiTreeNodeStackData}
peek p = ImGuiTreeNodeStackData <$> #{peek ImGuiTreeNodeStackData, ID} p <*> #{peek ImGuiTreeNodeStackData, TreeFlags} p <*> #{peek ImGuiTreeNodeStackData, ItemFlags} p <*> #{peek ImGuiTreeNodeStackData, NavRect} p <*> #{peek ImGuiTreeNodeStackData, DrawLinesX1} p <*> #{peek ImGuiTreeNodeStackData, DrawLinesToNodesY2} p <*> #{peek ImGuiTreeNodeStackData, DrawLinesTableColumn} p
poke p v = do
#{poke ImGuiTreeNodeStackData, ID} p v.iD
#{poke ImGuiTreeNodeStackData, TreeFlags} p v.treeFlags
#{poke ImGuiTreeNodeStackData, ItemFlags} p v.itemFlags
#{poke ImGuiTreeNodeStackData, NavRect} p v.navRect
#{poke ImGuiTreeNodeStackData, DrawLinesX1} p v.drawLinesX1
#{poke ImGuiTreeNodeStackData, DrawLinesToNodesY2} p v.drawLinesToNodesY2
#{poke ImGuiTreeNodeStackData, DrawLinesTableColumn} p v.drawLinesTableColumn
instance HasField "iD" (Ptr ImGuiTreeNodeStackData) (Ptr ImGuiID) where
getField = #{ptr ImGuiTreeNodeStackData, ID}
instance HasField "treeFlags" (Ptr ImGuiTreeNodeStackData) (Ptr ImGuiTreeNodeFlags) where
getField = #{ptr ImGuiTreeNodeStackData, TreeFlags}
instance HasField "itemFlags" (Ptr ImGuiTreeNodeStackData) (Ptr ImGuiItemFlags) where
getField = #{ptr ImGuiTreeNodeStackData, ItemFlags}
instance HasField "navRect" (Ptr ImGuiTreeNodeStackData) (Ptr ImRect) where
getField = #{ptr ImGuiTreeNodeStackData, NavRect}
instance HasField "drawLinesX1" (Ptr ImGuiTreeNodeStackData) (Ptr Float) where
getField = #{ptr ImGuiTreeNodeStackData, DrawLinesX1}
instance HasField "drawLinesToNodesY2" (Ptr ImGuiTreeNodeStackData) (Ptr Float) where
getField = #{ptr ImGuiTreeNodeStackData, DrawLinesToNodesY2}
instance HasField "drawLinesTableColumn" (Ptr ImGuiTreeNodeStackData) (Ptr ImGuiTableColumnIdx) where
getField = #{ptr ImGuiTreeNodeStackData, DrawLinesTableColumn}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTreeNodeStackData_Init_wrap"
init
:: Ptr ImGuiTreeNodeStackData
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTreeNodeStackData_Destroy_wrap"
destroy
:: Ptr ImGuiTreeNodeStackData
-> IO ()
withDefault :: (Ptr ImGuiTreeNodeStackData -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)