dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiTabItem.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiTabItem
( ImGuiTabItem (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImS16, ImS32)
import DearImGui.Raw.Enums.ImGuiTabItemFlags (ImGuiTabItemFlags)
import DearImGui.Raw.Internal.ImGuiWindow (ImGuiWindow)
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" "ImGuiTabItem" #-} ImGuiTabItem = ImGuiTabItem
{ iD :: ImGuiID
, flags :: ImGuiTabItemFlags
, window :: Ptr ImGuiWindow
, lastFrameVisible :: CInt
, lastFrameSelected :: CInt
, offset :: Float
, width :: Float
, contentWidth :: Float
, requestedWidth :: Float
, nameOffset :: ImS32
, beginOrder :: ImS16
, indexDuringLayout :: ImS16
, wantClose :: CBool
}
deriving (Eq, Show)
instance Storable ImGuiTabItem where
sizeOf _ = #{size ImGuiTabItem}
alignment _ = #{alignment ImGuiTabItem}
peek p = ImGuiTabItem <$> #{peek ImGuiTabItem, ID} p <*> #{peek ImGuiTabItem, Flags} p <*> #{peek ImGuiTabItem, Window} p <*> #{peek ImGuiTabItem, LastFrameVisible} p <*> #{peek ImGuiTabItem, LastFrameSelected} p <*> #{peek ImGuiTabItem, Offset} p <*> #{peek ImGuiTabItem, Width} p <*> #{peek ImGuiTabItem, ContentWidth} p <*> #{peek ImGuiTabItem, RequestedWidth} p <*> #{peek ImGuiTabItem, NameOffset} p <*> #{peek ImGuiTabItem, BeginOrder} p <*> #{peek ImGuiTabItem, IndexDuringLayout} p <*> #{peek ImGuiTabItem, WantClose} p
poke p v = do
#{poke ImGuiTabItem, ID} p v.iD
#{poke ImGuiTabItem, Flags} p v.flags
#{poke ImGuiTabItem, Window} p v.window
#{poke ImGuiTabItem, LastFrameVisible} p v.lastFrameVisible
#{poke ImGuiTabItem, LastFrameSelected} p v.lastFrameSelected
#{poke ImGuiTabItem, Offset} p v.offset
#{poke ImGuiTabItem, Width} p v.width
#{poke ImGuiTabItem, ContentWidth} p v.contentWidth
#{poke ImGuiTabItem, RequestedWidth} p v.requestedWidth
#{poke ImGuiTabItem, NameOffset} p v.nameOffset
#{poke ImGuiTabItem, BeginOrder} p v.beginOrder
#{poke ImGuiTabItem, IndexDuringLayout} p v.indexDuringLayout
#{poke ImGuiTabItem, WantClose} p v.wantClose
instance HasField "iD" (Ptr ImGuiTabItem) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabItem, ID}
instance HasField "flags" (Ptr ImGuiTabItem) (Ptr ImGuiTabItemFlags) where
getField = #{ptr ImGuiTabItem, Flags}
instance HasField "window" (Ptr ImGuiTabItem) (Ptr (Ptr ImGuiWindow)) where
getField = #{ptr ImGuiTabItem, Window}
instance HasField "lastFrameVisible" (Ptr ImGuiTabItem) (Ptr CInt) where
getField = #{ptr ImGuiTabItem, LastFrameVisible}
instance HasField "lastFrameSelected" (Ptr ImGuiTabItem) (Ptr CInt) where
getField = #{ptr ImGuiTabItem, LastFrameSelected}
instance HasField "offset" (Ptr ImGuiTabItem) (Ptr Float) where
getField = #{ptr ImGuiTabItem, Offset}
instance HasField "width" (Ptr ImGuiTabItem) (Ptr Float) where
getField = #{ptr ImGuiTabItem, Width}
instance HasField "contentWidth" (Ptr ImGuiTabItem) (Ptr Float) where
getField = #{ptr ImGuiTabItem, ContentWidth}
instance HasField "requestedWidth" (Ptr ImGuiTabItem) (Ptr Float) where
getField = #{ptr ImGuiTabItem, RequestedWidth}
instance HasField "nameOffset" (Ptr ImGuiTabItem) (Ptr ImS32) where
getField = #{ptr ImGuiTabItem, NameOffset}
instance HasField "beginOrder" (Ptr ImGuiTabItem) (Ptr ImS16) where
getField = #{ptr ImGuiTabItem, BeginOrder}
instance HasField "indexDuringLayout" (Ptr ImGuiTabItem) (Ptr ImS16) where
getField = #{ptr ImGuiTabItem, IndexDuringLayout}
instance HasField "wantClose" (Ptr ImGuiTabItem) (Ptr CBool) where
getField = #{ptr ImGuiTabItem, WantClose}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTabItem_Init_wrap"
init
:: Ptr ImGuiTabItem
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTabItem_Destroy_wrap"
destroy
:: Ptr ImGuiTabItem
-> IO ()
withDefault :: (Ptr ImGuiTabItem -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)