packages feed

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

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

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

module DearImGui.Raw.Internal.ImGuiMenuColumns
  ( ImGuiMenuColumns
  , calcNextTotalWidth
  , declColumns
  , destroy
  , init
  , update
  , widthsLength
  , withDefault
  ) where

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

instance HasField "totalWidth" (Ptr ImGuiMenuColumns) (Ptr ImU32) where
  getField = #{ptr ImGuiMenuColumns, TotalWidth}

instance HasField "nextTotalWidth" (Ptr ImGuiMenuColumns) (Ptr ImU32) where
  getField = #{ptr ImGuiMenuColumns, NextTotalWidth}

instance HasField "spacing" (Ptr ImGuiMenuColumns) (Ptr ImU16) where
  getField = #{ptr ImGuiMenuColumns, Spacing}

instance HasField "offsetIcon" (Ptr ImGuiMenuColumns) (Ptr ImU16) where
  getField = #{ptr ImGuiMenuColumns, OffsetIcon}

instance HasField "offsetLabel" (Ptr ImGuiMenuColumns) (Ptr ImU16) where
  getField = #{ptr ImGuiMenuColumns, OffsetLabel}

instance HasField "offsetShortcut" (Ptr ImGuiMenuColumns) (Ptr ImU16) where
  getField = #{ptr ImGuiMenuColumns, OffsetShortcut}

instance HasField "offsetMark" (Ptr ImGuiMenuColumns) (Ptr ImU16) where
  getField = #{ptr ImGuiMenuColumns, OffsetMark}

instance HasField "widths" (Ptr ImGuiMenuColumns) (Ptr ImU16) where
  getField = #{ptr ImGuiMenuColumns, Widths}

widthsLength :: Int
widthsLength = #{const 4}

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

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

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

-- functions

-- C: void CalcNextTotalWidth(ImGuiMenuColumns* self, bool update_offsets)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiMenuColumns_CalcNextTotalWidth"
  calcNextTotalWidth
    :: (Ptr ImGuiMenuColumns) -- ^ self
    -> CBool -- ^ update_offsets
    -> IO ()

-- C: float DeclColumns(ImGuiMenuColumns* self, float w_icon, float w_label, float w_shortcut, float w_mark)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiMenuColumns_DeclColumns"
  declColumns
    :: (Ptr ImGuiMenuColumns) -- ^ self
    -> Float -- ^ w_icon
    -> Float -- ^ w_label
    -> Float -- ^ w_shortcut
    -> Float -- ^ w_mark
    -> IO Float

-- C: void Update(ImGuiMenuColumns* self, float spacing, bool window_reappearing)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiMenuColumns_Update"
  update
    :: (Ptr ImGuiMenuColumns) -- ^ self
    -> Float -- ^ spacing
    -> CBool -- ^ window_reappearing
    -> IO ()