dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiTabBar.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiTabBar
( ImGuiTabBar (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImS16, ImS8)
import DearImGui.Raw.Enums.ImGuiTabBarFlags (ImGuiTabBarFlags)
import DearImGui.Raw.ImGuiTextBuffer (ImGuiTextBuffer)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVector (ImVector)
import DearImGui.Raw.Internal.ImGuiTabItem (ImGuiTabItem)
import DearImGui.Raw.Internal.ImGuiWindow (ImGuiWindow)
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" "ImGuiTabBar" #-} ImGuiTabBar = ImGuiTabBar
{ window :: Ptr ImGuiWindow
, tabs :: ImVector ImGuiTabItem
, flags :: ImGuiTabBarFlags
, iD :: ImGuiID
, selectedTabId :: ImGuiID
, nextSelectedTabId :: ImGuiID
, nextScrollToTabId :: ImGuiID
, visibleTabId :: ImGuiID
, currFrameVisible :: CInt
, prevFrameVisible :: CInt
, barRect :: ImRect
, barRectPrevWidth :: Float
, currTabsContentsHeight :: Float
, prevTabsContentsHeight :: Float
, widthAllTabs :: Float
, widthAllTabsIdeal :: Float
, scrollingAnim :: Float
, scrollingTarget :: Float
, scrollingTargetDistToVisibility :: Float
, scrollingSpeed :: Float
, scrollingRectMinX :: Float
, scrollingRectMaxX :: Float
, separatorMinX :: Float
, separatorMaxX :: Float
, reorderRequestTabId :: ImGuiID
, reorderRequestOffset :: ImS16
, beginCount :: ImS8
, wantLayout :: CBool
, visibleTabWasSubmitted :: CBool
, tabsAddedNew :: CBool
, scrollButtonEnabled :: CBool
, tabsActiveCount :: ImS16
, lastTabItemIdx :: ImS16
, itemSpacingY :: Float
, framePadding :: ImVec2
, backupCursorPos :: ImVec2
, tabsNames :: ImGuiTextBuffer
}
deriving (Eq, Show)
instance Storable ImGuiTabBar where
sizeOf _ = #{size ImGuiTabBar}
alignment _ = #{alignment ImGuiTabBar}
peek p = ImGuiTabBar <$> #{peek ImGuiTabBar, Window} p <*> #{peek ImGuiTabBar, Tabs} p <*> #{peek ImGuiTabBar, Flags} p <*> #{peek ImGuiTabBar, ID} p <*> #{peek ImGuiTabBar, SelectedTabId} p <*> #{peek ImGuiTabBar, NextSelectedTabId} p <*> #{peek ImGuiTabBar, NextScrollToTabId} p <*> #{peek ImGuiTabBar, VisibleTabId} p <*> #{peek ImGuiTabBar, CurrFrameVisible} p <*> #{peek ImGuiTabBar, PrevFrameVisible} p <*> #{peek ImGuiTabBar, BarRect} p <*> #{peek ImGuiTabBar, BarRectPrevWidth} p <*> #{peek ImGuiTabBar, CurrTabsContentsHeight} p <*> #{peek ImGuiTabBar, PrevTabsContentsHeight} p <*> #{peek ImGuiTabBar, WidthAllTabs} p <*> #{peek ImGuiTabBar, WidthAllTabsIdeal} p <*> #{peek ImGuiTabBar, ScrollingAnim} p <*> #{peek ImGuiTabBar, ScrollingTarget} p <*> #{peek ImGuiTabBar, ScrollingTargetDistToVisibility} p <*> #{peek ImGuiTabBar, ScrollingSpeed} p <*> #{peek ImGuiTabBar, ScrollingRectMinX} p <*> #{peek ImGuiTabBar, ScrollingRectMaxX} p <*> #{peek ImGuiTabBar, SeparatorMinX} p <*> #{peek ImGuiTabBar, SeparatorMaxX} p <*> #{peek ImGuiTabBar, ReorderRequestTabId} p <*> #{peek ImGuiTabBar, ReorderRequestOffset} p <*> #{peek ImGuiTabBar, BeginCount} p <*> #{peek ImGuiTabBar, WantLayout} p <*> #{peek ImGuiTabBar, VisibleTabWasSubmitted} p <*> #{peek ImGuiTabBar, TabsAddedNew} p <*> #{peek ImGuiTabBar, ScrollButtonEnabled} p <*> #{peek ImGuiTabBar, TabsActiveCount} p <*> #{peek ImGuiTabBar, LastTabItemIdx} p <*> #{peek ImGuiTabBar, ItemSpacingY} p <*> #{peek ImGuiTabBar, FramePadding} p <*> #{peek ImGuiTabBar, BackupCursorPos} p <*> #{peek ImGuiTabBar, TabsNames} p
poke p v = do
#{poke ImGuiTabBar, Window} p v.window
#{poke ImGuiTabBar, Tabs} p v.tabs
#{poke ImGuiTabBar, Flags} p v.flags
#{poke ImGuiTabBar, ID} p v.iD
#{poke ImGuiTabBar, SelectedTabId} p v.selectedTabId
#{poke ImGuiTabBar, NextSelectedTabId} p v.nextSelectedTabId
#{poke ImGuiTabBar, NextScrollToTabId} p v.nextScrollToTabId
#{poke ImGuiTabBar, VisibleTabId} p v.visibleTabId
#{poke ImGuiTabBar, CurrFrameVisible} p v.currFrameVisible
#{poke ImGuiTabBar, PrevFrameVisible} p v.prevFrameVisible
#{poke ImGuiTabBar, BarRect} p v.barRect
#{poke ImGuiTabBar, BarRectPrevWidth} p v.barRectPrevWidth
#{poke ImGuiTabBar, CurrTabsContentsHeight} p v.currTabsContentsHeight
#{poke ImGuiTabBar, PrevTabsContentsHeight} p v.prevTabsContentsHeight
#{poke ImGuiTabBar, WidthAllTabs} p v.widthAllTabs
#{poke ImGuiTabBar, WidthAllTabsIdeal} p v.widthAllTabsIdeal
#{poke ImGuiTabBar, ScrollingAnim} p v.scrollingAnim
#{poke ImGuiTabBar, ScrollingTarget} p v.scrollingTarget
#{poke ImGuiTabBar, ScrollingTargetDistToVisibility} p v.scrollingTargetDistToVisibility
#{poke ImGuiTabBar, ScrollingSpeed} p v.scrollingSpeed
#{poke ImGuiTabBar, ScrollingRectMinX} p v.scrollingRectMinX
#{poke ImGuiTabBar, ScrollingRectMaxX} p v.scrollingRectMaxX
#{poke ImGuiTabBar, SeparatorMinX} p v.separatorMinX
#{poke ImGuiTabBar, SeparatorMaxX} p v.separatorMaxX
#{poke ImGuiTabBar, ReorderRequestTabId} p v.reorderRequestTabId
#{poke ImGuiTabBar, ReorderRequestOffset} p v.reorderRequestOffset
#{poke ImGuiTabBar, BeginCount} p v.beginCount
#{poke ImGuiTabBar, WantLayout} p v.wantLayout
#{poke ImGuiTabBar, VisibleTabWasSubmitted} p v.visibleTabWasSubmitted
#{poke ImGuiTabBar, TabsAddedNew} p v.tabsAddedNew
#{poke ImGuiTabBar, ScrollButtonEnabled} p v.scrollButtonEnabled
#{poke ImGuiTabBar, TabsActiveCount} p v.tabsActiveCount
#{poke ImGuiTabBar, LastTabItemIdx} p v.lastTabItemIdx
#{poke ImGuiTabBar, ItemSpacingY} p v.itemSpacingY
#{poke ImGuiTabBar, FramePadding} p v.framePadding
#{poke ImGuiTabBar, BackupCursorPos} p v.backupCursorPos
#{poke ImGuiTabBar, TabsNames} p v.tabsNames
instance HasField "window" (Ptr ImGuiTabBar) (Ptr (Ptr ImGuiWindow)) where
getField = #{ptr ImGuiTabBar, Window}
instance HasField "tabs" (Ptr ImGuiTabBar) (Ptr (ImVector ImGuiTabItem)) where
getField = #{ptr ImGuiTabBar, Tabs}
instance HasField "flags" (Ptr ImGuiTabBar) (Ptr ImGuiTabBarFlags) where
getField = #{ptr ImGuiTabBar, Flags}
instance HasField "iD" (Ptr ImGuiTabBar) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabBar, ID}
instance HasField "selectedTabId" (Ptr ImGuiTabBar) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabBar, SelectedTabId}
instance HasField "nextSelectedTabId" (Ptr ImGuiTabBar) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabBar, NextSelectedTabId}
instance HasField "nextScrollToTabId" (Ptr ImGuiTabBar) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabBar, NextScrollToTabId}
instance HasField "visibleTabId" (Ptr ImGuiTabBar) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabBar, VisibleTabId}
instance HasField "currFrameVisible" (Ptr ImGuiTabBar) (Ptr CInt) where
getField = #{ptr ImGuiTabBar, CurrFrameVisible}
instance HasField "prevFrameVisible" (Ptr ImGuiTabBar) (Ptr CInt) where
getField = #{ptr ImGuiTabBar, PrevFrameVisible}
instance HasField "barRect" (Ptr ImGuiTabBar) (Ptr ImRect) where
getField = #{ptr ImGuiTabBar, BarRect}
instance HasField "barRectPrevWidth" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, BarRectPrevWidth}
instance HasField "currTabsContentsHeight" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, CurrTabsContentsHeight}
instance HasField "prevTabsContentsHeight" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, PrevTabsContentsHeight}
instance HasField "widthAllTabs" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, WidthAllTabs}
instance HasField "widthAllTabsIdeal" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, WidthAllTabsIdeal}
instance HasField "scrollingAnim" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ScrollingAnim}
instance HasField "scrollingTarget" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ScrollingTarget}
instance HasField "scrollingTargetDistToVisibility" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ScrollingTargetDistToVisibility}
instance HasField "scrollingSpeed" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ScrollingSpeed}
instance HasField "scrollingRectMinX" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ScrollingRectMinX}
instance HasField "scrollingRectMaxX" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ScrollingRectMaxX}
instance HasField "separatorMinX" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, SeparatorMinX}
instance HasField "separatorMaxX" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, SeparatorMaxX}
instance HasField "reorderRequestTabId" (Ptr ImGuiTabBar) (Ptr ImGuiID) where
getField = #{ptr ImGuiTabBar, ReorderRequestTabId}
instance HasField "reorderRequestOffset" (Ptr ImGuiTabBar) (Ptr ImS16) where
getField = #{ptr ImGuiTabBar, ReorderRequestOffset}
instance HasField "beginCount" (Ptr ImGuiTabBar) (Ptr ImS8) where
getField = #{ptr ImGuiTabBar, BeginCount}
instance HasField "wantLayout" (Ptr ImGuiTabBar) (Ptr CBool) where
getField = #{ptr ImGuiTabBar, WantLayout}
instance HasField "visibleTabWasSubmitted" (Ptr ImGuiTabBar) (Ptr CBool) where
getField = #{ptr ImGuiTabBar, VisibleTabWasSubmitted}
instance HasField "tabsAddedNew" (Ptr ImGuiTabBar) (Ptr CBool) where
getField = #{ptr ImGuiTabBar, TabsAddedNew}
instance HasField "scrollButtonEnabled" (Ptr ImGuiTabBar) (Ptr CBool) where
getField = #{ptr ImGuiTabBar, ScrollButtonEnabled}
instance HasField "tabsActiveCount" (Ptr ImGuiTabBar) (Ptr ImS16) where
getField = #{ptr ImGuiTabBar, TabsActiveCount}
instance HasField "lastTabItemIdx" (Ptr ImGuiTabBar) (Ptr ImS16) where
getField = #{ptr ImGuiTabBar, LastTabItemIdx}
instance HasField "itemSpacingY" (Ptr ImGuiTabBar) (Ptr Float) where
getField = #{ptr ImGuiTabBar, ItemSpacingY}
instance HasField "framePadding" (Ptr ImGuiTabBar) (Ptr ImVec2) where
getField = #{ptr ImGuiTabBar, FramePadding}
instance HasField "backupCursorPos" (Ptr ImGuiTabBar) (Ptr ImVec2) where
getField = #{ptr ImGuiTabBar, BackupCursorPos}
instance HasField "tabsNames" (Ptr ImGuiTabBar) (Ptr ImGuiTextBuffer) where
getField = #{ptr ImGuiTabBar, TabsNames}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTabBar_Init_wrap"
init
:: Ptr ImGuiTabBar
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiTabBar_Destroy_wrap"
destroy
:: Ptr ImGuiTabBar
-> IO ()
withDefault :: (Ptr ImGuiTabBar -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)