{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.ImPlot.Spec
( Spec (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImU32)
import DearImGui.Raw.ImPlot.Enums.ItemFlags (ItemFlags)
import DearImGui.Raw.ImPlot.Enums.Marker (Marker)
import DearImGui.Raw.ImVec4 (ImVec4)
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_implot.h"
-- structs (opaque)
-- by-value
data {-# CTYPE "dcimgui_implot.h" "ImPlotSpec" #-} Spec = Spec
{ lineColor :: ImVec4
, lineColors :: Ptr ImU32
, lineWeight :: Float
, fillColor :: ImVec4
, fillColors :: Ptr ImU32
, fillAlpha :: Float
, marker :: Marker
, markerSize :: Float
, markerSizes :: Ptr Float
, markerLineColor :: ImVec4
, markerLineColors :: Ptr ImU32
, markerFillColor :: ImVec4
, markerFillColors :: Ptr ImU32
, size :: Float
, offset :: CInt
, stride :: CInt
, flags :: ItemFlags
}
deriving (Eq, Show)
instance Storable Spec where
sizeOf _ = #{size ImPlotSpec}
alignment _ = #{alignment ImPlotSpec}
peek p = Spec <$> #{peek ImPlotSpec, LineColor} p <*> #{peek ImPlotSpec, LineColors} p <*> #{peek ImPlotSpec, LineWeight} p <*> #{peek ImPlotSpec, FillColor} p <*> #{peek ImPlotSpec, FillColors} p <*> #{peek ImPlotSpec, FillAlpha} p <*> #{peek ImPlotSpec, Marker} p <*> #{peek ImPlotSpec, MarkerSize} p <*> #{peek ImPlotSpec, MarkerSizes} p <*> #{peek ImPlotSpec, MarkerLineColor} p <*> #{peek ImPlotSpec, MarkerLineColors} p <*> #{peek ImPlotSpec, MarkerFillColor} p <*> #{peek ImPlotSpec, MarkerFillColors} p <*> #{peek ImPlotSpec, Size} p <*> #{peek ImPlotSpec, Offset} p <*> #{peek ImPlotSpec, Stride} p <*> #{peek ImPlotSpec, Flags} p
poke p v = do
#{poke ImPlotSpec, LineColor} p v.lineColor
#{poke ImPlotSpec, LineColors} p v.lineColors
#{poke ImPlotSpec, LineWeight} p v.lineWeight
#{poke ImPlotSpec, FillColor} p v.fillColor
#{poke ImPlotSpec, FillColors} p v.fillColors
#{poke ImPlotSpec, FillAlpha} p v.fillAlpha
#{poke ImPlotSpec, Marker} p v.marker
#{poke ImPlotSpec, MarkerSize} p v.markerSize
#{poke ImPlotSpec, MarkerSizes} p v.markerSizes
#{poke ImPlotSpec, MarkerLineColor} p v.markerLineColor
#{poke ImPlotSpec, MarkerLineColors} p v.markerLineColors
#{poke ImPlotSpec, MarkerFillColor} p v.markerFillColor
#{poke ImPlotSpec, MarkerFillColors} p v.markerFillColors
#{poke ImPlotSpec, Size} p v.size
#{poke ImPlotSpec, Offset} p v.offset
#{poke ImPlotSpec, Stride} p v.stride
#{poke ImPlotSpec, Flags} p v.flags
instance HasField "lineColor" (Ptr Spec) (Ptr ImVec4) where
getField = #{ptr ImPlotSpec, LineColor}
instance HasField "lineColors" (Ptr Spec) (Ptr (Ptr ImU32)) where
getField = #{ptr ImPlotSpec, LineColors}
instance HasField "lineWeight" (Ptr Spec) (Ptr Float) where
getField = #{ptr ImPlotSpec, LineWeight}
instance HasField "fillColor" (Ptr Spec) (Ptr ImVec4) where
getField = #{ptr ImPlotSpec, FillColor}
instance HasField "fillColors" (Ptr Spec) (Ptr (Ptr ImU32)) where
getField = #{ptr ImPlotSpec, FillColors}
instance HasField "fillAlpha" (Ptr Spec) (Ptr Float) where
getField = #{ptr ImPlotSpec, FillAlpha}
instance HasField "marker" (Ptr Spec) (Ptr Marker) where
getField = #{ptr ImPlotSpec, Marker}
instance HasField "markerSize" (Ptr Spec) (Ptr Float) where
getField = #{ptr ImPlotSpec, MarkerSize}
instance HasField "markerSizes" (Ptr Spec) (Ptr (Ptr Float)) where
getField = #{ptr ImPlotSpec, MarkerSizes}
instance HasField "markerLineColor" (Ptr Spec) (Ptr ImVec4) where
getField = #{ptr ImPlotSpec, MarkerLineColor}
instance HasField "markerLineColors" (Ptr Spec) (Ptr (Ptr ImU32)) where
getField = #{ptr ImPlotSpec, MarkerLineColors}
instance HasField "markerFillColor" (Ptr Spec) (Ptr ImVec4) where
getField = #{ptr ImPlotSpec, MarkerFillColor}
instance HasField "markerFillColors" (Ptr Spec) (Ptr (Ptr ImU32)) where
getField = #{ptr ImPlotSpec, MarkerFillColors}
instance HasField "size" (Ptr Spec) (Ptr Float) where
getField = #{ptr ImPlotSpec, Size}
instance HasField "offset" (Ptr Spec) (Ptr CInt) where
getField = #{ptr ImPlotSpec, Offset}
instance HasField "stride" (Ptr Spec) (Ptr CInt) where
getField = #{ptr ImPlotSpec, Stride}
instance HasField "flags" (Ptr Spec) (Ptr ItemFlags) where
getField = #{ptr ImPlotSpec, Flags}
foreign import capi unsafe "DearImGuiWrappers.h ImPlotSpec_Init_wrap"
init
:: Ptr Spec
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImPlotSpec_Destroy_wrap"
destroy
:: Ptr Spec
-> IO ()
withDefault :: (Ptr Spec -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)