packages feed

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

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

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

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

import Control.Exception (bracket_)
import DearImGui.Raw.Internal.Enums.ImGuiOldColumnFlags (ImGuiOldColumnFlags)
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" "ImGuiOldColumnData" #-} ImGuiOldColumnData = ImGuiOldColumnData
  { offsetNorm :: Float
  , offsetNormBeforeResize :: Float
  , flags :: ImGuiOldColumnFlags
  , clipRect :: ImRect
  }
  deriving (Eq, Show)
instance Storable ImGuiOldColumnData where
  sizeOf _    = #{size ImGuiOldColumnData}
  alignment _ = #{alignment ImGuiOldColumnData}
  peek p = ImGuiOldColumnData <$> #{peek ImGuiOldColumnData, OffsetNorm} p <*> #{peek ImGuiOldColumnData, OffsetNormBeforeResize} p <*> #{peek ImGuiOldColumnData, Flags} p <*> #{peek ImGuiOldColumnData, ClipRect} p
  poke p v = do
    #{poke ImGuiOldColumnData, OffsetNorm} p v.offsetNorm
    #{poke ImGuiOldColumnData, OffsetNormBeforeResize} p v.offsetNormBeforeResize
    #{poke ImGuiOldColumnData, Flags} p v.flags
    #{poke ImGuiOldColumnData, ClipRect} p v.clipRect

instance HasField "offsetNorm" (Ptr ImGuiOldColumnData) (Ptr Float) where
  getField = #{ptr ImGuiOldColumnData, OffsetNorm}

instance HasField "offsetNormBeforeResize" (Ptr ImGuiOldColumnData) (Ptr Float) where
  getField = #{ptr ImGuiOldColumnData, OffsetNormBeforeResize}

instance HasField "flags" (Ptr ImGuiOldColumnData) (Ptr ImGuiOldColumnFlags) where
  getField = #{ptr ImGuiOldColumnData, Flags}

instance HasField "clipRect" (Ptr ImGuiOldColumnData) (Ptr ImRect) where
  getField = #{ptr ImGuiOldColumnData, ClipRect}

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

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

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