packages feed

dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiWindowSettings.hsc

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}

-- This file was generated by dear-bindings-ffi. Do not edit by hand.

module DearImGui.Raw.Internal.ImGuiWindowSettings
  ( ImGuiWindowSettings
  , destroy
  , getName
  , init
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
import DearImGui.Raw.Internal.ImGuiPackedDate (ImGuiPackedDate)
import DearImGui.Raw.Internal.ImVec2ih (ImVec2ih)
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 ImGuiWindowSettings
instance Storable ImGuiWindowSettings where
  sizeOf _    = #{size ImGuiWindowSettings}
  alignment _ = #{alignment ImGuiWindowSettings}
  peek _ = error "ImGuiWindowSettings: opaque struct, peek not supported in v0"
  poke _ _ = error "ImGuiWindowSettings: opaque struct, poke not supported in v0"

instance HasField "iD" (Ptr ImGuiWindowSettings) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindowSettings, ID}

instance HasField "pos" (Ptr ImGuiWindowSettings) (Ptr ImVec2ih) where
  getField = #{ptr ImGuiWindowSettings, Pos}

instance HasField "size" (Ptr ImGuiWindowSettings) (Ptr ImVec2ih) where
  getField = #{ptr ImGuiWindowSettings, Size}

instance HasField "viewportPos" (Ptr ImGuiWindowSettings) (Ptr ImVec2ih) where
  getField = #{ptr ImGuiWindowSettings, ViewportPos}

instance HasField "viewportId" (Ptr ImGuiWindowSettings) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindowSettings, ViewportId}

instance HasField "dockId" (Ptr ImGuiWindowSettings) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindowSettings, DockId}

instance HasField "classId" (Ptr ImGuiWindowSettings) (Ptr ImGuiID) where
  getField = #{ptr ImGuiWindowSettings, ClassId}

instance HasField "dockOrder" (Ptr ImGuiWindowSettings) (Ptr CShort) where
  getField = #{ptr ImGuiWindowSettings, DockOrder}

instance HasField "lastUsedDate" (Ptr ImGuiWindowSettings) (Ptr ImGuiPackedDate) where
  getField = #{ptr ImGuiWindowSettings, LastUsedDate}

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindowSettings_Init_wrap"
  init
    :: Ptr ImGuiWindowSettings
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGuiWindowSettings_Destroy_wrap"
  destroy
    :: Ptr ImGuiWindowSettings
    -> IO ()

withDefault :: (Ptr ImGuiWindowSettings -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)

-- functions

-- C: char* GetName(ImGuiWindowSettings* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiWindowSettings_GetName"
  getName
    :: (Ptr ImGuiWindowSettings) -- ^ self
    -> IO (Ptr CChar)