dear-imgui-raw-1.0.0: src/DearImGui/Raw/ImGuiWindowClass.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.ImGuiWindowClass
( ImGuiWindowClass (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
import DearImGui.Raw.Enums.ImGuiDockNodeFlags (ImGuiDockNodeFlags)
import DearImGui.Raw.Enums.ImGuiTabItemFlags (ImGuiTabItemFlags)
import DearImGui.Raw.Enums.ImGuiViewportFlags (ImGuiViewportFlags)
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.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_nodefaultargfunctions.h" "ImGuiWindowClass" #-} ImGuiWindowClass = ImGuiWindowClass
{ classId :: ImGuiID
, parentViewportId :: ImGuiID
, focusRouteParentWindowId :: ImGuiID
, viewportFlagsOverrideSet :: ImGuiViewportFlags
, viewportFlagsOverrideClear :: ImGuiViewportFlags
, tabItemFlagsOverrideSet :: ImGuiTabItemFlags
, dockNodeFlagsOverrideSet :: ImGuiDockNodeFlags
, dockingAlwaysTabBar :: CBool
, dockingAllowUnclassed :: CBool
, platformIconData :: Ptr ()
}
deriving (Eq, Show)
instance Storable ImGuiWindowClass where
sizeOf _ = #{size ImGuiWindowClass}
alignment _ = #{alignment ImGuiWindowClass}
peek p = ImGuiWindowClass <$> #{peek ImGuiWindowClass, ClassId} p <*> #{peek ImGuiWindowClass, ParentViewportId} p <*> #{peek ImGuiWindowClass, FocusRouteParentWindowId} p <*> #{peek ImGuiWindowClass, ViewportFlagsOverrideSet} p <*> #{peek ImGuiWindowClass, ViewportFlagsOverrideClear} p <*> #{peek ImGuiWindowClass, TabItemFlagsOverrideSet} p <*> #{peek ImGuiWindowClass, DockNodeFlagsOverrideSet} p <*> #{peek ImGuiWindowClass, DockingAlwaysTabBar} p <*> #{peek ImGuiWindowClass, DockingAllowUnclassed} p <*> #{peek ImGuiWindowClass, PlatformIconData} p
poke p v = do
#{poke ImGuiWindowClass, ClassId} p v.classId
#{poke ImGuiWindowClass, ParentViewportId} p v.parentViewportId
#{poke ImGuiWindowClass, FocusRouteParentWindowId} p v.focusRouteParentWindowId
#{poke ImGuiWindowClass, ViewportFlagsOverrideSet} p v.viewportFlagsOverrideSet
#{poke ImGuiWindowClass, ViewportFlagsOverrideClear} p v.viewportFlagsOverrideClear
#{poke ImGuiWindowClass, TabItemFlagsOverrideSet} p v.tabItemFlagsOverrideSet
#{poke ImGuiWindowClass, DockNodeFlagsOverrideSet} p v.dockNodeFlagsOverrideSet
#{poke ImGuiWindowClass, DockingAlwaysTabBar} p v.dockingAlwaysTabBar
#{poke ImGuiWindowClass, DockingAllowUnclassed} p v.dockingAllowUnclassed
#{poke ImGuiWindowClass, PlatformIconData} p v.platformIconData
instance HasField "classId" (Ptr ImGuiWindowClass) (Ptr ImGuiID) where
getField = #{ptr ImGuiWindowClass, ClassId}
instance HasField "parentViewportId" (Ptr ImGuiWindowClass) (Ptr ImGuiID) where
getField = #{ptr ImGuiWindowClass, ParentViewportId}
instance HasField "focusRouteParentWindowId" (Ptr ImGuiWindowClass) (Ptr ImGuiID) where
getField = #{ptr ImGuiWindowClass, FocusRouteParentWindowId}
instance HasField "viewportFlagsOverrideSet" (Ptr ImGuiWindowClass) (Ptr ImGuiViewportFlags) where
getField = #{ptr ImGuiWindowClass, ViewportFlagsOverrideSet}
instance HasField "viewportFlagsOverrideClear" (Ptr ImGuiWindowClass) (Ptr ImGuiViewportFlags) where
getField = #{ptr ImGuiWindowClass, ViewportFlagsOverrideClear}
instance HasField "tabItemFlagsOverrideSet" (Ptr ImGuiWindowClass) (Ptr ImGuiTabItemFlags) where
getField = #{ptr ImGuiWindowClass, TabItemFlagsOverrideSet}
instance HasField "dockNodeFlagsOverrideSet" (Ptr ImGuiWindowClass) (Ptr ImGuiDockNodeFlags) where
getField = #{ptr ImGuiWindowClass, DockNodeFlagsOverrideSet}
instance HasField "dockingAlwaysTabBar" (Ptr ImGuiWindowClass) (Ptr CBool) where
getField = #{ptr ImGuiWindowClass, DockingAlwaysTabBar}
instance HasField "dockingAllowUnclassed" (Ptr ImGuiWindowClass) (Ptr CBool) where
getField = #{ptr ImGuiWindowClass, DockingAllowUnclassed}
instance HasField "platformIconData" (Ptr ImGuiWindowClass) (Ptr (Ptr ())) where
getField = #{ptr ImGuiWindowClass, PlatformIconData}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindowClass_Init_wrap"
init
:: Ptr ImGuiWindowClass
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindowClass_Destroy_wrap"
destroy
:: Ptr ImGuiWindowClass
-> IO ()
withDefault :: (Ptr ImGuiWindowClass -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)