packages feed

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

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

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

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

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

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

instance HasField "saveFlags" (Ptr ImGuiTableSettings) (Ptr ImGuiTableFlags) where
  getField = #{ptr ImGuiTableSettings, SaveFlags}

instance HasField "refScale" (Ptr ImGuiTableSettings) (Ptr Float) where
  getField = #{ptr ImGuiTableSettings, RefScale}

instance HasField "columnsCount" (Ptr ImGuiTableSettings) (Ptr ImGuiTableColumnIdx) where
  getField = #{ptr ImGuiTableSettings, ColumnsCount}

instance HasField "columnsCountMax" (Ptr ImGuiTableSettings) (Ptr ImGuiTableColumnIdx) where
  getField = #{ptr ImGuiTableSettings, ColumnsCountMax}

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

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

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

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

-- functions

-- C: ImGuiTableColumnSettings* GetColumnSettings(ImGuiTableSettings* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiTableSettings_GetColumnSettings"
  getColumnSettings
    :: (Ptr ImGuiTableSettings) -- ^ self
    -> IO (Ptr ImGuiTableColumnSettings)