packages feed

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

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

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

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

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
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" "ImGuiMetricsConfig" #-} ImGuiMetricsConfig = ImGuiMetricsConfig
  { showDebugLog :: CBool
  , showIDStackTool :: CBool
  , showWindowsRects :: CBool
  , showWindowsBeginOrder :: CBool
  , showTablesRects :: CBool
  , showDrawCmdMesh :: CBool
  , showDrawCmdBoundingBoxes :: CBool
  , showTextEncodingViewer :: CBool
  , showTextureUsedRect :: CBool
  , showDockingNodes :: CBool
  , showWindowsRectsType :: CInt
  , showTablesRectsType :: CInt
  , highlightMonitorIdx :: CInt
  , highlightViewportID :: ImGuiID
  , settingsDiscardMonths :: CInt
  , settingsHighlightOldEntries :: CBool
  , showFontPreview :: CBool
  }
  deriving (Eq, Show)
instance Storable ImGuiMetricsConfig where
  sizeOf _    = #{size ImGuiMetricsConfig}
  alignment _ = #{alignment ImGuiMetricsConfig}
  peek p = ImGuiMetricsConfig <$> #{peek ImGuiMetricsConfig, ShowDebugLog} p <*> #{peek ImGuiMetricsConfig, ShowIDStackTool} p <*> #{peek ImGuiMetricsConfig, ShowWindowsRects} p <*> #{peek ImGuiMetricsConfig, ShowWindowsBeginOrder} p <*> #{peek ImGuiMetricsConfig, ShowTablesRects} p <*> #{peek ImGuiMetricsConfig, ShowDrawCmdMesh} p <*> #{peek ImGuiMetricsConfig, ShowDrawCmdBoundingBoxes} p <*> #{peek ImGuiMetricsConfig, ShowTextEncodingViewer} p <*> #{peek ImGuiMetricsConfig, ShowTextureUsedRect} p <*> #{peek ImGuiMetricsConfig, ShowDockingNodes} p <*> #{peek ImGuiMetricsConfig, ShowWindowsRectsType} p <*> #{peek ImGuiMetricsConfig, ShowTablesRectsType} p <*> #{peek ImGuiMetricsConfig, HighlightMonitorIdx} p <*> #{peek ImGuiMetricsConfig, HighlightViewportID} p <*> #{peek ImGuiMetricsConfig, SettingsDiscardMonths} p <*> #{peek ImGuiMetricsConfig, SettingsHighlightOldEntries} p <*> #{peek ImGuiMetricsConfig, ShowFontPreview} p
  poke p v = do
    #{poke ImGuiMetricsConfig, ShowDebugLog} p v.showDebugLog
    #{poke ImGuiMetricsConfig, ShowIDStackTool} p v.showIDStackTool
    #{poke ImGuiMetricsConfig, ShowWindowsRects} p v.showWindowsRects
    #{poke ImGuiMetricsConfig, ShowWindowsBeginOrder} p v.showWindowsBeginOrder
    #{poke ImGuiMetricsConfig, ShowTablesRects} p v.showTablesRects
    #{poke ImGuiMetricsConfig, ShowDrawCmdMesh} p v.showDrawCmdMesh
    #{poke ImGuiMetricsConfig, ShowDrawCmdBoundingBoxes} p v.showDrawCmdBoundingBoxes
    #{poke ImGuiMetricsConfig, ShowTextEncodingViewer} p v.showTextEncodingViewer
    #{poke ImGuiMetricsConfig, ShowTextureUsedRect} p v.showTextureUsedRect
    #{poke ImGuiMetricsConfig, ShowDockingNodes} p v.showDockingNodes
    #{poke ImGuiMetricsConfig, ShowWindowsRectsType} p v.showWindowsRectsType
    #{poke ImGuiMetricsConfig, ShowTablesRectsType} p v.showTablesRectsType
    #{poke ImGuiMetricsConfig, HighlightMonitorIdx} p v.highlightMonitorIdx
    #{poke ImGuiMetricsConfig, HighlightViewportID} p v.highlightViewportID
    #{poke ImGuiMetricsConfig, SettingsDiscardMonths} p v.settingsDiscardMonths
    #{poke ImGuiMetricsConfig, SettingsHighlightOldEntries} p v.settingsHighlightOldEntries
    #{poke ImGuiMetricsConfig, ShowFontPreview} p v.showFontPreview

instance HasField "showDebugLog" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowDebugLog}

instance HasField "showIDStackTool" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowIDStackTool}

instance HasField "showWindowsRects" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowWindowsRects}

instance HasField "showWindowsBeginOrder" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowWindowsBeginOrder}

instance HasField "showTablesRects" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowTablesRects}

instance HasField "showDrawCmdMesh" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowDrawCmdMesh}

instance HasField "showDrawCmdBoundingBoxes" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowDrawCmdBoundingBoxes}

instance HasField "showTextEncodingViewer" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowTextEncodingViewer}

instance HasField "showTextureUsedRect" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowTextureUsedRect}

instance HasField "showDockingNodes" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowDockingNodes}

instance HasField "showWindowsRectsType" (Ptr ImGuiMetricsConfig) (Ptr CInt) where
  getField = #{ptr ImGuiMetricsConfig, ShowWindowsRectsType}

instance HasField "showTablesRectsType" (Ptr ImGuiMetricsConfig) (Ptr CInt) where
  getField = #{ptr ImGuiMetricsConfig, ShowTablesRectsType}

instance HasField "highlightMonitorIdx" (Ptr ImGuiMetricsConfig) (Ptr CInt) where
  getField = #{ptr ImGuiMetricsConfig, HighlightMonitorIdx}

instance HasField "highlightViewportID" (Ptr ImGuiMetricsConfig) (Ptr ImGuiID) where
  getField = #{ptr ImGuiMetricsConfig, HighlightViewportID}

instance HasField "settingsDiscardMonths" (Ptr ImGuiMetricsConfig) (Ptr CInt) where
  getField = #{ptr ImGuiMetricsConfig, SettingsDiscardMonths}

instance HasField "settingsHighlightOldEntries" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, SettingsHighlightOldEntries}

instance HasField "showFontPreview" (Ptr ImGuiMetricsConfig) (Ptr CBool) where
  getField = #{ptr ImGuiMetricsConfig, ShowFontPreview}

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

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

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