packages feed

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

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

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

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

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
import DearImGui.Raw.ImDrawListSplitter (ImDrawListSplitter)
import DearImGui.Raw.ImVector (ImVector)
import DearImGui.Raw.Internal.Enums.ImGuiOldColumnFlags (ImGuiOldColumnFlags)
import DearImGui.Raw.Internal.ImGuiOldColumnData (ImGuiOldColumnData)
import DearImGui.Raw.Internal.ImRect (ImRect)
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 {-# CTYPE "dcimgui_nodefaultargfunctions_internal.h" "ImGuiOldColumns" #-} ImGuiOldColumns = ImGuiOldColumns
  { iD :: ImGuiID
  , flags :: ImGuiOldColumnFlags
  , isFirstFrame :: CBool
  , isBeingResized :: CBool
  , current :: CInt
  , count :: CInt
  , offMinX :: Float
  , offMaxX :: Float
  , lineMinY :: Float
  , lineMaxY :: Float
  , hostCursorPosY :: Float
  , hostCursorMaxPosX :: Float
  , hostInitialClipRect :: ImRect
  , hostBackupClipRect :: ImRect
  , hostBackupParentWorkRect :: ImRect
  , columns :: ImVector ImGuiOldColumnData
  , splitter :: ImDrawListSplitter
  }
  deriving (Eq, Show)
instance Storable ImGuiOldColumns where
  sizeOf _    = #{size ImGuiOldColumns}
  alignment _ = #{alignment ImGuiOldColumns}
  peek p = ImGuiOldColumns <$> #{peek ImGuiOldColumns, ID} p <*> #{peek ImGuiOldColumns, Flags} p <*> #{peek ImGuiOldColumns, IsFirstFrame} p <*> #{peek ImGuiOldColumns, IsBeingResized} p <*> #{peek ImGuiOldColumns, Current} p <*> #{peek ImGuiOldColumns, Count} p <*> #{peek ImGuiOldColumns, OffMinX} p <*> #{peek ImGuiOldColumns, OffMaxX} p <*> #{peek ImGuiOldColumns, LineMinY} p <*> #{peek ImGuiOldColumns, LineMaxY} p <*> #{peek ImGuiOldColumns, HostCursorPosY} p <*> #{peek ImGuiOldColumns, HostCursorMaxPosX} p <*> #{peek ImGuiOldColumns, HostInitialClipRect} p <*> #{peek ImGuiOldColumns, HostBackupClipRect} p <*> #{peek ImGuiOldColumns, HostBackupParentWorkRect} p <*> #{peek ImGuiOldColumns, Columns} p <*> #{peek ImGuiOldColumns, Splitter} p
  poke p v = do
    #{poke ImGuiOldColumns, ID} p v.iD
    #{poke ImGuiOldColumns, Flags} p v.flags
    #{poke ImGuiOldColumns, IsFirstFrame} p v.isFirstFrame
    #{poke ImGuiOldColumns, IsBeingResized} p v.isBeingResized
    #{poke ImGuiOldColumns, Current} p v.current
    #{poke ImGuiOldColumns, Count} p v.count
    #{poke ImGuiOldColumns, OffMinX} p v.offMinX
    #{poke ImGuiOldColumns, OffMaxX} p v.offMaxX
    #{poke ImGuiOldColumns, LineMinY} p v.lineMinY
    #{poke ImGuiOldColumns, LineMaxY} p v.lineMaxY
    #{poke ImGuiOldColumns, HostCursorPosY} p v.hostCursorPosY
    #{poke ImGuiOldColumns, HostCursorMaxPosX} p v.hostCursorMaxPosX
    #{poke ImGuiOldColumns, HostInitialClipRect} p v.hostInitialClipRect
    #{poke ImGuiOldColumns, HostBackupClipRect} p v.hostBackupClipRect
    #{poke ImGuiOldColumns, HostBackupParentWorkRect} p v.hostBackupParentWorkRect
    #{poke ImGuiOldColumns, Columns} p v.columns
    #{poke ImGuiOldColumns, Splitter} p v.splitter

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

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

instance HasField "isFirstFrame" (Ptr ImGuiOldColumns) (Ptr CBool) where
  getField = #{ptr ImGuiOldColumns, IsFirstFrame}

instance HasField "isBeingResized" (Ptr ImGuiOldColumns) (Ptr CBool) where
  getField = #{ptr ImGuiOldColumns, IsBeingResized}

instance HasField "current" (Ptr ImGuiOldColumns) (Ptr CInt) where
  getField = #{ptr ImGuiOldColumns, Current}

instance HasField "count" (Ptr ImGuiOldColumns) (Ptr CInt) where
  getField = #{ptr ImGuiOldColumns, Count}

instance HasField "offMinX" (Ptr ImGuiOldColumns) (Ptr Float) where
  getField = #{ptr ImGuiOldColumns, OffMinX}

instance HasField "offMaxX" (Ptr ImGuiOldColumns) (Ptr Float) where
  getField = #{ptr ImGuiOldColumns, OffMaxX}

instance HasField "lineMinY" (Ptr ImGuiOldColumns) (Ptr Float) where
  getField = #{ptr ImGuiOldColumns, LineMinY}

instance HasField "lineMaxY" (Ptr ImGuiOldColumns) (Ptr Float) where
  getField = #{ptr ImGuiOldColumns, LineMaxY}

instance HasField "hostCursorPosY" (Ptr ImGuiOldColumns) (Ptr Float) where
  getField = #{ptr ImGuiOldColumns, HostCursorPosY}

instance HasField "hostCursorMaxPosX" (Ptr ImGuiOldColumns) (Ptr Float) where
  getField = #{ptr ImGuiOldColumns, HostCursorMaxPosX}

instance HasField "hostInitialClipRect" (Ptr ImGuiOldColumns) (Ptr ImRect) where
  getField = #{ptr ImGuiOldColumns, HostInitialClipRect}

instance HasField "hostBackupClipRect" (Ptr ImGuiOldColumns) (Ptr ImRect) where
  getField = #{ptr ImGuiOldColumns, HostBackupClipRect}

instance HasField "hostBackupParentWorkRect" (Ptr ImGuiOldColumns) (Ptr ImRect) where
  getField = #{ptr ImGuiOldColumns, HostBackupParentWorkRect}

instance HasField "columns" (Ptr ImGuiOldColumns) (Ptr (ImVector ImGuiOldColumnData)) where
  getField = #{ptr ImGuiOldColumns, Columns}

instance HasField "splitter" (Ptr ImGuiOldColumns) (Ptr ImDrawListSplitter) where
  getField = #{ptr ImGuiOldColumns, Splitter}

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

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

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