dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiTextIndex.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiTextIndex
( ImGuiTextIndex (..)
, append
, clear
, destroy
, get_line_begin
, get_line_end
, init
, size
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw.ImVector (ImVector)
import Foreign.C.String (CString)
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" "ImGuiTextIndex" #-} ImGuiTextIndex = ImGuiTextIndex
{ offsets :: ImVector CInt
, endOffset :: CInt
}
deriving (Eq, Show)
instance Storable ImGuiTextIndex where
sizeOf _ = #{size ImGuiTextIndex}
alignment _ = #{alignment ImGuiTextIndex}
peek p = ImGuiTextIndex <$> #{peek ImGuiTextIndex, Offsets} p <*> #{peek ImGuiTextIndex, EndOffset} p
poke p v = do
#{poke ImGuiTextIndex, Offsets} p v.offsets
#{poke ImGuiTextIndex, EndOffset} p v.endOffset
instance HasField "offsets" (Ptr ImGuiTextIndex) (Ptr (ImVector CInt)) where
getField = #{ptr ImGuiTextIndex, Offsets}
instance HasField "endOffset" (Ptr ImGuiTextIndex) (Ptr CInt) where
getField = #{ptr ImGuiTextIndex, EndOffset}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTextIndex_Init_wrap"
init
:: Ptr ImGuiTextIndex
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTextIndex_Destroy_wrap"
destroy
:: Ptr ImGuiTextIndex
-> IO ()
withDefault :: (Ptr ImGuiTextIndex -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)
-- functions
-- C: void append(ImGuiTextIndex* self, const char* base, int old_size, int new_size)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiTextIndex_append"
append
:: (Ptr ImGuiTextIndex) -- ^ self
-> CString -- ^ base
-> CInt -- ^ old_size
-> CInt -- ^ new_size
-> IO ()
-- C: void clear(ImGuiTextIndex* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiTextIndex_clear"
clear
:: (Ptr ImGuiTextIndex) -- ^ self
-> IO ()
-- C: const char* get_line_begin(ImGuiTextIndex* self, const char* base, int n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiTextIndex_get_line_begin"
get_line_begin
:: (Ptr ImGuiTextIndex) -- ^ self
-> CString -- ^ base
-> CInt -- ^ n
-> IO CString
-- C: const char* get_line_end(ImGuiTextIndex* self, const char* base, int n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiTextIndex_get_line_end"
get_line_end
:: (Ptr ImGuiTextIndex) -- ^ self
-> CString -- ^ base
-> CInt -- ^ n
-> IO CString
-- C: int size(ImGuiTextIndex* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiTextIndex_size"
size
:: (Ptr ImGuiTextIndex) -- ^ self
-> IO CInt