dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiLastItemData.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiLastItemData
( ImGuiLastItemData (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImGuiKeyChord)
import DearImGui.Raw.Enums.ImGuiItemFlags (ImGuiItemFlags)
import DearImGui.Raw.Internal.Enums.ImGuiItemStatusFlags (ImGuiItemStatusFlags)
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" "ImGuiLastItemData" #-} ImGuiLastItemData = ImGuiLastItemData
{ iD :: ImGuiID
, itemFlags :: ImGuiItemFlags
, statusFlags :: ImGuiItemStatusFlags
, rect :: ImRect
, navRect :: ImRect
, displayRect :: ImRect
, clipRect :: ImRect
, shortcut :: ImGuiKeyChord
}
deriving (Eq, Show)
instance Storable ImGuiLastItemData where
sizeOf _ = #{size ImGuiLastItemData}
alignment _ = #{alignment ImGuiLastItemData}
peek p = ImGuiLastItemData <$> #{peek ImGuiLastItemData, ID} p <*> #{peek ImGuiLastItemData, ItemFlags} p <*> #{peek ImGuiLastItemData, StatusFlags} p <*> #{peek ImGuiLastItemData, Rect} p <*> #{peek ImGuiLastItemData, NavRect} p <*> #{peek ImGuiLastItemData, DisplayRect} p <*> #{peek ImGuiLastItemData, ClipRect} p <*> #{peek ImGuiLastItemData, Shortcut} p
poke p v = do
#{poke ImGuiLastItemData, ID} p v.iD
#{poke ImGuiLastItemData, ItemFlags} p v.itemFlags
#{poke ImGuiLastItemData, StatusFlags} p v.statusFlags
#{poke ImGuiLastItemData, Rect} p v.rect
#{poke ImGuiLastItemData, NavRect} p v.navRect
#{poke ImGuiLastItemData, DisplayRect} p v.displayRect
#{poke ImGuiLastItemData, ClipRect} p v.clipRect
#{poke ImGuiLastItemData, Shortcut} p v.shortcut
instance HasField "iD" (Ptr ImGuiLastItemData) (Ptr ImGuiID) where
getField = #{ptr ImGuiLastItemData, ID}
instance HasField "itemFlags" (Ptr ImGuiLastItemData) (Ptr ImGuiItemFlags) where
getField = #{ptr ImGuiLastItemData, ItemFlags}
instance HasField "statusFlags" (Ptr ImGuiLastItemData) (Ptr ImGuiItemStatusFlags) where
getField = #{ptr ImGuiLastItemData, StatusFlags}
instance HasField "rect" (Ptr ImGuiLastItemData) (Ptr ImRect) where
getField = #{ptr ImGuiLastItemData, Rect}
instance HasField "navRect" (Ptr ImGuiLastItemData) (Ptr ImRect) where
getField = #{ptr ImGuiLastItemData, NavRect}
instance HasField "displayRect" (Ptr ImGuiLastItemData) (Ptr ImRect) where
getField = #{ptr ImGuiLastItemData, DisplayRect}
instance HasField "clipRect" (Ptr ImGuiLastItemData) (Ptr ImRect) where
getField = #{ptr ImGuiLastItemData, ClipRect}
instance HasField "shortcut" (Ptr ImGuiLastItemData) (Ptr ImGuiKeyChord) where
getField = #{ptr ImGuiLastItemData, Shortcut}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiLastItemData_Init_wrap"
init
:: Ptr ImGuiLastItemData
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiLastItemData_Destroy_wrap"
destroy
:: Ptr ImGuiLastItemData
-> IO ()
withDefault :: (Ptr ImGuiLastItemData -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)