packages feed

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

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

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

module DearImGui.Raw.Internal.ImGuiMultiSelectTempData
  ( ImGuiMultiSelectTempData (..)
  , clear
  , clearIO
  , destroy
  , init
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImGuiKeyChord, ImS8)
import DearImGui.Raw.Enums.ImGuiMultiSelectFlags (ImGuiMultiSelectFlags)
import DearImGui.Raw.ImGuiMultiSelectIO (ImGuiMultiSelectIO)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.Internal.ImGuiMultiSelectState (ImGuiMultiSelectState)
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" "ImGuiMultiSelectTempData" #-} ImGuiMultiSelectTempData = ImGuiMultiSelectTempData
  { iO :: ImGuiMultiSelectIO
  , storage :: Ptr ImGuiMultiSelectState
  , focusScopeId :: ImGuiID
  , flags :: ImGuiMultiSelectFlags
  , scopeRectMin :: ImVec2
  , backupCursorMaxPos :: ImVec2
  , boxSelectId :: ImGuiID
  , keyMods :: ImGuiKeyChord
  , loopRequestSetAll :: ImS8
  , isEndIO :: CBool
  , isFocused :: CBool
  , isKeyboardSetRange :: CBool
  , navIdPassedBy :: CBool
  , rangeSrcPassedBy :: CBool
  , rangeDstPassedBy :: CBool
  , isSoleOrUnknownSelectionSize :: CBool
  }
  deriving (Eq, Show)
instance Storable ImGuiMultiSelectTempData where
  sizeOf _    = #{size ImGuiMultiSelectTempData}
  alignment _ = #{alignment ImGuiMultiSelectTempData}
  peek p = ImGuiMultiSelectTempData <$> #{peek ImGuiMultiSelectTempData, IO} p <*> #{peek ImGuiMultiSelectTempData, Storage} p <*> #{peek ImGuiMultiSelectTempData, FocusScopeId} p <*> #{peek ImGuiMultiSelectTempData, Flags} p <*> #{peek ImGuiMultiSelectTempData, ScopeRectMin} p <*> #{peek ImGuiMultiSelectTempData, BackupCursorMaxPos} p <*> #{peek ImGuiMultiSelectTempData, BoxSelectId} p <*> #{peek ImGuiMultiSelectTempData, KeyMods} p <*> #{peek ImGuiMultiSelectTempData, LoopRequestSetAll} p <*> #{peek ImGuiMultiSelectTempData, IsEndIO} p <*> #{peek ImGuiMultiSelectTempData, IsFocused} p <*> #{peek ImGuiMultiSelectTempData, IsKeyboardSetRange} p <*> #{peek ImGuiMultiSelectTempData, NavIdPassedBy} p <*> #{peek ImGuiMultiSelectTempData, RangeSrcPassedBy} p <*> #{peek ImGuiMultiSelectTempData, RangeDstPassedBy} p <*> #{peek ImGuiMultiSelectTempData, IsSoleOrUnknownSelectionSize} p
  poke p v = do
    #{poke ImGuiMultiSelectTempData, IO} p v.iO
    #{poke ImGuiMultiSelectTempData, Storage} p v.storage
    #{poke ImGuiMultiSelectTempData, FocusScopeId} p v.focusScopeId
    #{poke ImGuiMultiSelectTempData, Flags} p v.flags
    #{poke ImGuiMultiSelectTempData, ScopeRectMin} p v.scopeRectMin
    #{poke ImGuiMultiSelectTempData, BackupCursorMaxPos} p v.backupCursorMaxPos
    #{poke ImGuiMultiSelectTempData, BoxSelectId} p v.boxSelectId
    #{poke ImGuiMultiSelectTempData, KeyMods} p v.keyMods
    #{poke ImGuiMultiSelectTempData, LoopRequestSetAll} p v.loopRequestSetAll
    #{poke ImGuiMultiSelectTempData, IsEndIO} p v.isEndIO
    #{poke ImGuiMultiSelectTempData, IsFocused} p v.isFocused
    #{poke ImGuiMultiSelectTempData, IsKeyboardSetRange} p v.isKeyboardSetRange
    #{poke ImGuiMultiSelectTempData, NavIdPassedBy} p v.navIdPassedBy
    #{poke ImGuiMultiSelectTempData, RangeSrcPassedBy} p v.rangeSrcPassedBy
    #{poke ImGuiMultiSelectTempData, RangeDstPassedBy} p v.rangeDstPassedBy
    #{poke ImGuiMultiSelectTempData, IsSoleOrUnknownSelectionSize} p v.isSoleOrUnknownSelectionSize

instance HasField "iO" (Ptr ImGuiMultiSelectTempData) (Ptr ImGuiMultiSelectIO) where
  getField = #{ptr ImGuiMultiSelectTempData, IO}

instance HasField "storage" (Ptr ImGuiMultiSelectTempData) (Ptr (Ptr ImGuiMultiSelectState)) where
  getField = #{ptr ImGuiMultiSelectTempData, Storage}

instance HasField "focusScopeId" (Ptr ImGuiMultiSelectTempData) (Ptr ImGuiID) where
  getField = #{ptr ImGuiMultiSelectTempData, FocusScopeId}

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

instance HasField "scopeRectMin" (Ptr ImGuiMultiSelectTempData) (Ptr ImVec2) where
  getField = #{ptr ImGuiMultiSelectTempData, ScopeRectMin}

instance HasField "backupCursorMaxPos" (Ptr ImGuiMultiSelectTempData) (Ptr ImVec2) where
  getField = #{ptr ImGuiMultiSelectTempData, BackupCursorMaxPos}

instance HasField "boxSelectId" (Ptr ImGuiMultiSelectTempData) (Ptr ImGuiID) where
  getField = #{ptr ImGuiMultiSelectTempData, BoxSelectId}

instance HasField "keyMods" (Ptr ImGuiMultiSelectTempData) (Ptr ImGuiKeyChord) where
  getField = #{ptr ImGuiMultiSelectTempData, KeyMods}

instance HasField "loopRequestSetAll" (Ptr ImGuiMultiSelectTempData) (Ptr ImS8) where
  getField = #{ptr ImGuiMultiSelectTempData, LoopRequestSetAll}

instance HasField "isEndIO" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, IsEndIO}

instance HasField "isFocused" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, IsFocused}

instance HasField "isKeyboardSetRange" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, IsKeyboardSetRange}

instance HasField "navIdPassedBy" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, NavIdPassedBy}

instance HasField "rangeSrcPassedBy" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, RangeSrcPassedBy}

instance HasField "rangeDstPassedBy" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, RangeDstPassedBy}

instance HasField "isSoleOrUnknownSelectionSize" (Ptr ImGuiMultiSelectTempData) (Ptr CBool) where
  getField = #{ptr ImGuiMultiSelectTempData, IsSoleOrUnknownSelectionSize}

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

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

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

-- functions

-- C: void Clear(ImGuiMultiSelectTempData* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiMultiSelectTempData_Clear"
  clear
    :: (Ptr ImGuiMultiSelectTempData) -- ^ self
    -> IO ()

-- C: void ClearIO(ImGuiMultiSelectTempData* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImGuiMultiSelectTempData_ClearIO"
  clearIO
    :: (Ptr ImGuiMultiSelectTempData) -- ^ self
    -> IO ()