dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiSettingsHandler.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiSettingsHandler
( ImGuiSettingsHandler (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
import DearImGui.Raw.ImGuiTextBuffer (ImGuiTextBuffer)
import DearImGui.Raw.Internal.ImGuiContext (ImGuiContext)
import DearImGui.Raw.Internal.ImGuiSettingsCleanupArgs (ImGuiSettingsCleanupArgs)
import Foreign.C.String (CString)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr (FunPtr, 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" "ImGuiSettingsHandler" #-} ImGuiSettingsHandler = ImGuiSettingsHandler
{ typeName :: CString
, typeHash :: ImGuiID
, clearAllFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> IO ())
, readInitFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> IO ())
, readOpenFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> CString -> IO (Ptr ()))
, readLineFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> (Ptr ()) -> CString -> IO ())
, applyAllFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> IO ())
, writeAllFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> (Ptr ImGuiTextBuffer) -> IO ())
, cleanupFn :: FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> (Ptr ImGuiSettingsCleanupArgs) -> IO ())
, userData :: Ptr ()
}
deriving (Eq, Show)
instance Storable ImGuiSettingsHandler where
sizeOf _ = #{size ImGuiSettingsHandler}
alignment _ = #{alignment ImGuiSettingsHandler}
peek p = ImGuiSettingsHandler <$> #{peek ImGuiSettingsHandler, TypeName} p <*> #{peek ImGuiSettingsHandler, TypeHash} p <*> #{peek ImGuiSettingsHandler, ClearAllFn} p <*> #{peek ImGuiSettingsHandler, ReadInitFn} p <*> #{peek ImGuiSettingsHandler, ReadOpenFn} p <*> #{peek ImGuiSettingsHandler, ReadLineFn} p <*> #{peek ImGuiSettingsHandler, ApplyAllFn} p <*> #{peek ImGuiSettingsHandler, WriteAllFn} p <*> #{peek ImGuiSettingsHandler, CleanupFn} p <*> #{peek ImGuiSettingsHandler, UserData} p
poke p v = do
#{poke ImGuiSettingsHandler, TypeName} p v.typeName
#{poke ImGuiSettingsHandler, TypeHash} p v.typeHash
#{poke ImGuiSettingsHandler, ClearAllFn} p v.clearAllFn
#{poke ImGuiSettingsHandler, ReadInitFn} p v.readInitFn
#{poke ImGuiSettingsHandler, ReadOpenFn} p v.readOpenFn
#{poke ImGuiSettingsHandler, ReadLineFn} p v.readLineFn
#{poke ImGuiSettingsHandler, ApplyAllFn} p v.applyAllFn
#{poke ImGuiSettingsHandler, WriteAllFn} p v.writeAllFn
#{poke ImGuiSettingsHandler, CleanupFn} p v.cleanupFn
#{poke ImGuiSettingsHandler, UserData} p v.userData
instance HasField "typeName" (Ptr ImGuiSettingsHandler) (Ptr CString) where
getField = #{ptr ImGuiSettingsHandler, TypeName}
instance HasField "typeHash" (Ptr ImGuiSettingsHandler) (Ptr ImGuiID) where
getField = #{ptr ImGuiSettingsHandler, TypeHash}
instance HasField "clearAllFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> IO ()))) where
getField = #{ptr ImGuiSettingsHandler, ClearAllFn}
instance HasField "readInitFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> IO ()))) where
getField = #{ptr ImGuiSettingsHandler, ReadInitFn}
instance HasField "readOpenFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> CString -> IO (Ptr ())))) where
getField = #{ptr ImGuiSettingsHandler, ReadOpenFn}
instance HasField "readLineFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> (Ptr ()) -> CString -> IO ()))) where
getField = #{ptr ImGuiSettingsHandler, ReadLineFn}
instance HasField "applyAllFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> IO ()))) where
getField = #{ptr ImGuiSettingsHandler, ApplyAllFn}
instance HasField "writeAllFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> (Ptr ImGuiTextBuffer) -> IO ()))) where
getField = #{ptr ImGuiSettingsHandler, WriteAllFn}
instance HasField "cleanupFn" (Ptr ImGuiSettingsHandler) (Ptr (FunPtr ((Ptr ImGuiContext) -> (Ptr ImGuiSettingsHandler) -> (Ptr ImGuiSettingsCleanupArgs) -> IO ()))) where
getField = #{ptr ImGuiSettingsHandler, CleanupFn}
instance HasField "userData" (Ptr ImGuiSettingsHandler) (Ptr (Ptr ())) where
getField = #{ptr ImGuiSettingsHandler, UserData}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiSettingsHandler_Init_wrap"
init
:: Ptr ImGuiSettingsHandler
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiSettingsHandler_Destroy_wrap"
destroy
:: Ptr ImGuiSettingsHandler
-> IO ()
withDefault :: (Ptr ImGuiSettingsHandler -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)