dear-imgui-raw-1.0.0: src/DearImGui/Raw.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw
( ImDrawCallback
, ImDrawIdx
, ImDrawTextFlags
, ImGuiID
, ImGuiInputTextCallback
, ImGuiKeyChord
, ImGuiMemAllocFunc
, ImGuiMemFreeFunc
, ImGuiSelectionUserData
, ImGuiSizeCallback
, ImS16
, ImS32
, ImS64
, ImS8
, ImSmallStack__ImDrawFlags_3_ImU16
, ImTextureID
, ImU16
, ImU32
, ImU64
, ImU8
, ImWchar
, ImWchar16
, ImWchar32
, destroyImSmallStack__ImDrawFlags_3_ImU16
, initImSmallStack__ImDrawFlags_3_ImU16
, localDataLength
, pattern IMGUI_VERSION_NUM
, pattern IM_COL32_A_MASK
, pattern IM_COL32_A_SHIFT
, pattern IM_COL32_B_SHIFT
, pattern IM_COL32_G_SHIFT
, pattern IM_COL32_R_SHIFT
, pattern IM_UNICODE_CODEPOINT_INVALID
, pattern IM_UNICODE_CODEPOINT_MAX
, pattern ImFontAtlasRectId_Invalid
, withDefaultImSmallStack__ImDrawFlags_3_ImU16
) where
import Control.Exception (bracket_)
import DearImGui.Raw.Enums.ImDrawFlags (ImDrawFlags)
import {-# SOURCE #-} DearImGui.Raw.ImDrawCmd (ImDrawCmd)
import {-# SOURCE #-} DearImGui.Raw.ImDrawList (ImDrawList)
import {-# SOURCE #-} DearImGui.Raw.ImGuiInputTextCallbackData (ImGuiInputTextCallbackData)
import DearImGui.Raw.ImGuiSizeCallbackData (ImGuiSizeCallbackData)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr (FunPtr, Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
#include "dcimgui_nodefaultargfunctions.h"
-- typedefs
type ImDrawCallback = FunPtr ((Ptr ImDrawList) -> (Ptr ImDrawCmd) -> IO ())
-- | Default: 16-bit (for maximum compatibility with renderer backends)
type ImDrawIdx = CUInt
-- | -> enum ImDrawTextFlags_ // Internal, do not use!
type ImDrawTextFlags = CInt
-- | Scalar data types
-- A unique ID used by widgets (typically the result of hashing a stack of string)
type ImGuiID = CUInt
-- | Callback and functions types
-- Callback function for ImGui::InputText()
type ImGuiInputTextCallback = FunPtr ((Ptr ImGuiInputTextCallbackData) -> IO CInt)
-- | -> ImGuiKey | ImGuiMod_XXX // Flags: for IsKeyChordPressed(), Shortcut() etc. an ImGuiKey optionally OR-ed with one or more ImGuiMod_XXX values.
type ImGuiKeyChord = CInt
-- | Function signature for ImGui::SetAllocatorFunctions()
type ImGuiMemAllocFunc = FunPtr (CSize -> (Ptr ()) -> IO (Ptr ()))
-- | Function signature for ImGui::SetAllocatorFunctions()
type ImGuiMemFreeFunc = FunPtr ((Ptr ()) -> (Ptr ()) -> IO ())
-- | Multi-Selection item index or identifier when using BeginMultiSelect()
-- - Used by SetNextItemSelectionUserData() + and inside ImGuiMultiSelectIO structure.
-- - Most users are likely to use this store an item INDEX but this may be used to store a POINTER/ID as well. Read comments near ImGuiMultiSelectIO for details.
type ImGuiSelectionUserData = ImS64
-- | Callback function for ImGui::SetNextWindowSizeConstraints()
type ImGuiSizeCallback = FunPtr ((Ptr ImGuiSizeCallbackData) -> IO ())
-- | 16-bit signed integer
type ImS16 = CShort
-- | 32-bit signed integer == int
type ImS32 = CInt
-- | 64-bit signed integer
type ImS64 = CLLong
-- | 8-bit signed integer
type ImS8 = CChar
-- | Default: store up to 64-bits (any pointer or integer). A majority of backends are ok with that.
type ImTextureID = ImU64
-- | 16-bit unsigned integer
type ImU16 = CUShort
-- | 32-bit unsigned integer (often used to store packed colors)
type ImU32 = CUInt
-- | 64-bit unsigned integer
type ImU64 = CULLong
-- | 8-bit unsigned integer
type ImU8 = CUChar
type ImWchar = ImWchar32
-- | A single decoded U16 character/code point. We encode them as multi bytes UTF-8 when used in strings.
type ImWchar16 = CUShort
-- | Character types
-- (we generally use UTF-8 encoded string in the API. This is storage specifically for a decoded character used for keyboard input and display)
-- A single decoded U32 character/code point. We encode them as multi bytes UTF-8 when used in strings.
type ImWchar32 = CUInt
-- structs (opaque)
data ImSmallStack__ImDrawFlags_3_ImU16
instance Storable ImSmallStack__ImDrawFlags_3_ImU16 where
sizeOf _ = #{size ImSmallStack__ImDrawFlags_3_ImU16}
alignment _ = #{alignment ImSmallStack__ImDrawFlags_3_ImU16}
peek _ = error "ImSmallStack__ImDrawFlags_3_ImU16: opaque struct, peek not supported in v0"
poke _ _ = error "ImSmallStack__ImDrawFlags_3_ImU16: opaque struct, poke not supported in v0"
instance HasField "localData" (Ptr ImSmallStack__ImDrawFlags_3_ImU16) (Ptr ImDrawFlags) where
getField = #{ptr ImSmallStack__ImDrawFlags_3_ImU16, LocalData}
localDataLength :: Int
localDataLength = #{const 3}
instance HasField "size" (Ptr ImSmallStack__ImDrawFlags_3_ImU16) (Ptr ImU16) where
getField = #{ptr ImSmallStack__ImDrawFlags_3_ImU16, Size}
foreign import capi unsafe "DearImGuiWrappers.h ImSmallStack__ImDrawFlags_3_ImU16_Init_wrap"
initImSmallStack__ImDrawFlags_3_ImU16
:: Ptr ImSmallStack__ImDrawFlags_3_ImU16
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImSmallStack__ImDrawFlags_3_ImU16_Destroy_wrap"
destroyImSmallStack__ImDrawFlags_3_ImU16
:: Ptr ImSmallStack__ImDrawFlags_3_ImU16
-> IO ()
withDefaultImSmallStack__ImDrawFlags_3_ImU16 :: (Ptr ImSmallStack__ImDrawFlags_3_ImU16 -> IO a) -> IO a
withDefaultImSmallStack__ImDrawFlags_3_ImU16 k = alloca $ \p -> bracket_ (initImSmallStack__ImDrawFlags_3_ImU16 p) (destroyImSmallStack__ImDrawFlags_3_ImU16 p) (k p)
-- defines
pattern IMGUI_VERSION_NUM :: (Eq a, Num a) => a
pattern IMGUI_VERSION_NUM = #{const IMGUI_VERSION_NUM}
pattern IM_COL32_A_MASK :: (Eq a, Num a) => a
pattern IM_COL32_A_MASK = #{const IM_COL32_A_MASK}
pattern IM_COL32_A_SHIFT :: (Eq a, Num a) => a
pattern IM_COL32_A_SHIFT = #{const IM_COL32_A_SHIFT}
pattern IM_COL32_B_SHIFT :: (Eq a, Num a) => a
pattern IM_COL32_B_SHIFT = #{const IM_COL32_B_SHIFT}
pattern IM_COL32_G_SHIFT :: (Eq a, Num a) => a
pattern IM_COL32_G_SHIFT = #{const IM_COL32_G_SHIFT}
pattern IM_COL32_R_SHIFT :: (Eq a, Num a) => a
pattern IM_COL32_R_SHIFT = #{const IM_COL32_R_SHIFT}
pattern IM_UNICODE_CODEPOINT_INVALID :: (Eq a, Num a) => a
pattern IM_UNICODE_CODEPOINT_INVALID = #{const IM_UNICODE_CODEPOINT_INVALID}
pattern IM_UNICODE_CODEPOINT_MAX :: (Eq a, Num a) => a
pattern IM_UNICODE_CODEPOINT_MAX = #{const IM_UNICODE_CODEPOINT_MAX}
pattern ImFontAtlasRectId_Invalid :: (Eq a, Num a) => a
pattern ImFontAtlasRectId_Invalid = #{const ImFontAtlasRectId_Invalid}