dear-imgui-raw-1.0.0: src/DearImGui/Raw/ImDrawListSplitter.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.ImDrawListSplitter
( ImDrawListSplitter (..)
, clear
, clearFreeMemory
, destroy
, init
, merge
, setCurrentChannel
, split
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw.ImDrawChannel (ImDrawChannel)
import {-# SOURCE #-} DearImGui.Raw.ImDrawList (ImDrawList)
import DearImGui.Raw.ImVector (ImVector)
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.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_nodefaultargfunctions.h" "ImDrawListSplitter" #-} ImDrawListSplitter = ImDrawListSplitter
{ _Current :: CInt
, _Count :: CInt
, _Channels :: ImVector ImDrawChannel
}
deriving (Eq, Show)
instance Storable ImDrawListSplitter where
sizeOf _ = #{size ImDrawListSplitter}
alignment _ = #{alignment ImDrawListSplitter}
peek p = ImDrawListSplitter <$> #{peek ImDrawListSplitter, _Current} p <*> #{peek ImDrawListSplitter, _Count} p <*> #{peek ImDrawListSplitter, _Channels} p
poke p v = do
#{poke ImDrawListSplitter, _Current} p v._Current
#{poke ImDrawListSplitter, _Count} p v._Count
#{poke ImDrawListSplitter, _Channels} p v._Channels
instance HasField "_Current" (Ptr ImDrawListSplitter) (Ptr CInt) where
getField = #{ptr ImDrawListSplitter, _Current}
instance HasField "_Count" (Ptr ImDrawListSplitter) (Ptr CInt) where
getField = #{ptr ImDrawListSplitter, _Count}
instance HasField "_Channels" (Ptr ImDrawListSplitter) (Ptr (ImVector ImDrawChannel)) where
getField = #{ptr ImDrawListSplitter, _Channels}
foreign import capi unsafe "DearImGuiWrappers.h ImDrawListSplitter_Init_wrap"
init
:: Ptr ImDrawListSplitter
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImDrawListSplitter_Destroy_wrap"
destroy
:: Ptr ImDrawListSplitter
-> IO ()
withDefault :: (Ptr ImDrawListSplitter -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)
-- functions
-- C: void Clear(ImDrawListSplitter* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawListSplitter_Clear"
clear
:: (Ptr ImDrawListSplitter) -- ^ self
-> IO ()
-- C: void ClearFreeMemory(ImDrawListSplitter* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawListSplitter_ClearFreeMemory"
clearFreeMemory
:: (Ptr ImDrawListSplitter) -- ^ self
-> IO ()
-- C: void Merge(ImDrawListSplitter* self, ImDrawList* draw_list)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawListSplitter_Merge"
merge
:: (Ptr ImDrawListSplitter) -- ^ self
-> (Ptr ImDrawList) -- ^ draw_list
-> IO ()
-- C: void SetCurrentChannel(ImDrawListSplitter* self, ImDrawList* draw_list, int channel_idx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawListSplitter_SetCurrentChannel"
setCurrentChannel
:: (Ptr ImDrawListSplitter) -- ^ self
-> (Ptr ImDrawList) -- ^ draw_list
-> CInt -- ^ channel_idx
-> IO ()
-- C: void Split(ImDrawListSplitter* self, ImDrawList* draw_list, int count)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawListSplitter_Split"
split
:: (Ptr ImDrawListSplitter) -- ^ self
-> (Ptr ImDrawList) -- ^ draw_list
-> CInt -- ^ count
-> IO ()