{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
module DearImGui.Raw
(
Context(..)
, createContext
, destroyContext
, newFrame
, endFrame
, render
, DrawData(..)
, getDrawData
, checkVersion
, showDemoWindow
, showMetricsWindow
, showAboutWindow
, showUserGuide
, getVersion
, styleColorsDark
, styleColorsLight
, styleColorsClassic
, begin
, end
, setNextWindowPos
, setNextWindowSize
, setNextWindowFullscreen
, setNextWindowContentSize
, setNextWindowSizeConstraints
, setNextWindowCollapsed
, setNextWindowBgAlpha
, beginChild
, endChild
, pushStyleColor
, popStyleColor
, pushStyleVar
, popStyleVar
, separator
, sameLine
, newLine
, spacing
, dummy
, indent
, unindent
, setNextItemWidth
, pushItemWidth
, popItemWidth
, beginGroup
, endGroup
, setCursorPos
, alignTextToFramePadding
, textUnformatted
, textColored
, textDisabled
, textWrapped
, labelText
, bulletText
, button
, smallButton
, arrowButton
, checkbox
, progressBar
, bullet
, beginCombo
, endCombo
, combo
, dragFloat
, dragFloat2
, dragFloat3
, dragFloat4
, dragFloatRange2
, dragInt
, dragInt2
, dragInt3
, dragInt4
, dragIntRange2
, dragScalar
, dragScalarN
, sliderFloat
, sliderFloat2
, sliderFloat3
, sliderFloat4
, sliderAngle
, sliderInt
, sliderInt2
, sliderInt3
, sliderInt4
, sliderScalar
, sliderScalarN
, vSliderFloat
, vSliderInt
, vSliderScalar
, inputText
, colorPicker3
, colorButton
, treeNode
, treePush
, treePop
, selectable
, listBox
, plotHistogram
, beginMenuBar
, endMenuBar
, beginMainMenuBar
, endMainMenuBar
, beginMenu
, endMenu
, menuItem
, beginTabBar
, endTabBar
, beginTabItem
, endTabItem
, tabItemButton
, setTabItemClosed
, beginTooltip
, endTooltip
, beginPopup
, beginPopupModal
, endPopup
, openPopup
, closeCurrentPopup
, isItemHovered
, wantCaptureMouse
, wantCaptureKeyboard
, module DearImGui.Enums
, module DearImGui.Structs
)
where
import Control.Monad.IO.Class
( MonadIO, liftIO )
import Foreign
import Foreign.C
import DearImGui.Context
( imguiContext )
import DearImGui.Enums
import DearImGui.Structs
import qualified Language.C.Inline as C
import qualified Language.C.Inline.Cpp as Cpp
C.context (Cpp.cppCtx <> C.bsCtx <> imguiContext)
C.include "imgui.h"
Cpp.using "namespace ImGui"
newtype Context = Context (Ptr ())
createContext :: (MonadIO m) => m Context
createContext :: m Context
createContext = IO Context -> m Context
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
Ptr () -> Context
Context (Ptr () -> Context) -> IO (Ptr ()) -> IO Context
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| void* { CreateContext() } |]
destroyContext :: (MonadIO m) => Context -> m ()
destroyContext :: Context -> m ()
destroyContext (Context Ptr ()
contextPtr) = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { DestroyContext((ImGuiContext*)$(void* contextPtr)); } |]
newFrame :: (MonadIO m) => m ()
newFrame :: m ()
newFrame = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { NewFrame(); } |]
endFrame :: (MonadIO m) => m ()
endFrame :: m ()
endFrame = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndFrame(); } |]
render :: (MonadIO m) => m ()
render :: m ()
render = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Render(); } |]
newtype DrawData = DrawData (Ptr ())
getDrawData :: (MonadIO m) => m DrawData
getDrawData :: m DrawData
getDrawData = IO DrawData -> m DrawData
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
Ptr () -> DrawData
DrawData (Ptr () -> DrawData) -> IO (Ptr ()) -> IO DrawData
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| void* { GetDrawData() } |]
checkVersion :: (MonadIO m) => m ()
checkVersion :: m ()
checkVersion = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { IMGUI_CHECKVERSION(); } |]
showDemoWindow :: (MonadIO m) => m ()
showDemoWindow :: m ()
showDemoWindow = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { ShowDemoWindow(); } |]
showMetricsWindow :: (MonadIO m) => m ()
showMetricsWindow :: m ()
showMetricsWindow = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { ShowMetricsWindow(); } |]
showAboutWindow :: (MonadIO m) => m ()
showAboutWindow :: m ()
showAboutWindow = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { ShowAboutWindow(); } |]
showUserGuide :: (MonadIO m) => m ()
showUserGuide :: m ()
showUserGuide = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { ShowUserGuide() } |]
getVersion :: (MonadIO m) => m CString
getVersion :: m CString
getVersion = IO CString -> m CString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| const char* { GetVersion() } |]
styleColorsDark :: (MonadIO m) => m ()
styleColorsDark :: m ()
styleColorsDark = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { StyleColorsDark(); } |]
styleColorsLight :: (MonadIO m) => m ()
styleColorsLight :: m ()
styleColorsLight = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { StyleColorsLight(); } |]
styleColorsClassic :: (MonadIO m) => m ()
styleColorsClassic :: m ()
styleColorsClassic = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { StyleColorsClassic(); } |]
begin :: (MonadIO m) => CString -> Ptr CBool -> ImGuiWindowFlags -> m Bool
begin :: CString -> Ptr CBool -> ImGuiWindowFlags -> m Bool
begin CString
namePtr Ptr CBool
openPtr ImGuiWindowFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { Begin($(char* namePtr), $(bool* openPtr), $(ImGuiWindowFlags flags)) } |]
end :: (MonadIO m) => m ()
end :: m ()
end = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { End(); } |]
beginChild :: (MonadIO m) => CString -> m Bool
beginChild :: CString -> m Bool
beginChild CString
namePtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginChild($(char* namePtr)) } |]
endChild :: (MonadIO m) => m ()
endChild :: m ()
endChild = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndChild(); } |]
separator :: (MonadIO m) => m ()
separator :: m ()
separator = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Separator(); } |]
sameLine :: (MonadIO m) => m ()
sameLine :: m ()
sameLine = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SameLine(); } |]
textUnformatted :: (MonadIO m) => CString -> CString -> m ()
textUnformatted :: CString -> CString -> m ()
textUnformatted CString
textPtr CString
textEndPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { TextUnformatted($(char* textPtr), $(char* textEndPtr)) } |]
textColored :: (MonadIO m) => Ptr ImVec4 -> CString -> m ()
textColored :: Ptr ImVec4 -> CString -> m ()
textColored Ptr ImVec4
colorPtr CString
textPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { TextColored(*$(ImVec4 *colorPtr), "%s", $(char* textPtr)) } |]
textDisabled :: (MonadIO m) => CString -> m ()
textDisabled :: CString -> m ()
textDisabled CString
textPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { TextDisabled("%s", $(char* textPtr)) } |]
textWrapped :: (MonadIO m) => CString -> m ()
textWrapped :: CString -> m ()
textWrapped CString
textPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { TextWrapped("%s", $(char* textPtr)) } |]
labelText :: (MonadIO m) => CString -> CString -> m ()
labelText :: CString -> CString -> m ()
labelText CString
labelPtr CString
textPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { LabelText($(char* labelPtr), "%s", $(char* textPtr)) } |]
bulletText :: (MonadIO m) => CString -> m ()
bulletText :: CString -> m ()
bulletText CString
textPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { BulletText("%s", $(char* textPtr)) } |]
button :: (MonadIO m) => CString -> m Bool
button :: CString -> m Bool
button CString
labelPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { Button($(char* labelPtr)) } |]
smallButton :: (MonadIO m) => CString -> m Bool
smallButton :: CString -> m Bool
smallButton CString
labelPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { SmallButton($(char* labelPtr)) } |]
arrowButton :: (MonadIO m) => CString -> ImGuiDir -> m Bool
arrowButton :: CString -> ImGuiDir -> m Bool
arrowButton CString
strIdPtr ImGuiDir
dir = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { ArrowButton($(char* strIdPtr), $(ImGuiDir dir)) } |]
checkbox :: (MonadIO m) => CString -> Ptr CBool -> m Bool
checkbox :: CString -> Ptr CBool -> m Bool
checkbox CString
labelPtr Ptr CBool
boolPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { Checkbox($(char* labelPtr), $(bool* boolPtr)) } |]
progressBar :: (MonadIO m) => CFloat -> CString -> m ()
progressBar :: CFloat -> CString -> m ()
progressBar CFloat
progress CString
overlayPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { ProgressBar($(float progress), ImVec2(-FLT_MIN, 0), $(char* overlayPtr)) } |]
bullet :: (MonadIO m) => m ()
bullet :: m ()
bullet = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Bullet() } |]
beginCombo :: (MonadIO m) => CString -> CString -> m Bool
beginCombo :: CString -> CString -> m Bool
beginCombo CString
labelPtr CString
previewValuePtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginCombo($(char* labelPtr), $(char* previewValuePtr)) } |]
endCombo :: (MonadIO m) => m ()
endCombo :: m ()
endCombo = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndCombo() } |]
combo :: (MonadIO m) => CString -> Ptr CInt -> Ptr CString -> CInt -> m Bool
combo :: CString -> Ptr CInt -> Ptr CString -> CInt -> m Bool
combo CString
labelPtr Ptr CInt
iPtr Ptr CString
itemsPtr CInt
itemsLen = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { Combo($(char* labelPtr), $(int* iPtr), $(char** itemsPtr), $(int itemsLen)) }|]
dragFloat :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat :: CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat CString
descPtr Ptr CFloat
floatPtr CFloat
speed CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { DragFloat( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]
dragFloat2 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat2 :: CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat2 CString
descPtr Ptr CFloat
floatPtr CFloat
speed CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { DragFloat2( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]
dragFloat3 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat3 :: CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat3 CString
descPtr Ptr CFloat
floatPtr CFloat
speed CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { DragFloat3( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]
dragFloat4 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat4 :: CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
dragFloat4 CString
descPtr Ptr CFloat
floatPtr CFloat
speed CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { DragFloat4( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]
dragFloatRange2 :: (MonadIO m) => CString -> Ptr CFloat -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> CString -> ImGuiSliderFlags -> m Bool
dragFloatRange2 :: CString
-> Ptr CFloat
-> Ptr CFloat
-> CFloat
-> CFloat
-> CFloat
-> CString
-> CString
-> ImGuiSliderFlags
-> m Bool
dragFloatRange2 CString
labelPtr Ptr CFloat
vCurrentMin Ptr CFloat
vCurrentMax CFloat
vSpeed CFloat
vMin CFloat
vMax CString
formatMin CString
formatMax ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragFloatRange2(
$(char* labelPtr),
$(float* vCurrentMin),
$(float* vCurrentMax),
$(float vSpeed),
$(float vMin),
$(float vMax),
$(char* formatMin),
$(char* formatMax),
$(ImGuiSliderFlags flags)
)
} |]
dragInt :: (MonadIO m) => CString -> Ptr CInt -> CFloat -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
dragInt :: CString
-> Ptr CInt
-> CFloat
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
dragInt CString
labelPtr Ptr CInt
vPtr CFloat
vSpeed CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragInt(
$(char* labelPtr),
$(int* vPtr),
$(float vSpeed),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
dragInt2 :: (MonadIO m) => CString -> Ptr CInt -> CFloat -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
dragInt2 :: CString
-> Ptr CInt
-> CFloat
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
dragInt2 CString
labelPtr Ptr CInt
vPtr CFloat
vSpeed CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragInt2(
$(char* labelPtr),
$(int vPtr[2]),
$(float vSpeed),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
dragInt3 :: (MonadIO m) => CString -> Ptr CInt -> CFloat -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
dragInt3 :: CString
-> Ptr CInt
-> CFloat
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
dragInt3 CString
labelPtr Ptr CInt
vPtr CFloat
vSpeed CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragInt3(
$(char* labelPtr),
$(int vPtr[3]),
$(float vSpeed),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
dragInt4 :: (MonadIO m) => CString -> Ptr CInt -> CFloat -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
dragInt4 :: CString
-> Ptr CInt
-> CFloat
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
dragInt4 CString
labelPtr Ptr CInt
vPtr CFloat
vSpeed CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragInt4(
$(char* labelPtr),
$(int vPtr[4]),
$(float vSpeed),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
dragIntRange2 :: (MonadIO m) => CString -> Ptr CInt -> Ptr CInt -> CFloat -> CInt -> CInt -> CString -> CString -> ImGuiSliderFlags -> m Bool
dragIntRange2 :: CString
-> Ptr CInt
-> Ptr CInt
-> CFloat
-> CInt
-> CInt
-> CString
-> CString
-> ImGuiSliderFlags
-> m Bool
dragIntRange2 CString
labelPtr Ptr CInt
vCurrentMin Ptr CInt
vCurrentMax CFloat
vSpeed CInt
vMin CInt
vMax CString
formatMin CString
formatMax ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragIntRange2(
$(char* labelPtr),
$(int* vCurrentMin),
$(int* vCurrentMax),
$(float vSpeed),
$(int vMin),
$(int vMax),
$(char* formatMin),
$(char* formatMax),
$(ImGuiSliderFlags flags)
)
} |]
dragScalar :: (MonadIO m) => CString -> ImGuiDataType -> Ptr a -> CFloat -> Ptr a -> Ptr a -> CString -> ImGuiSliderFlags -> m Bool
dragScalar :: CString
-> ImGuiDataType
-> Ptr a
-> CFloat
-> Ptr a
-> Ptr a
-> CString
-> ImGuiSliderFlags
-> m Bool
dragScalar CString
labelPtr ImGuiDataType
dataType Ptr a
dataPtr CFloat
vSpeed Ptr a
minPtr Ptr a
maxPtr CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragScalar(
$(char* labelPtr),
$(ImGuiDataType dataType),
$(void* dataPtr_),
$(float vSpeed),
$(void* minPtr_),
$(void* maxPtr_),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
where
dataPtr_ :: Ptr b
dataPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
dataPtr
minPtr_ :: Ptr b
minPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
minPtr
maxPtr_ :: Ptr b
maxPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
maxPtr
dragScalarN :: (MonadIO m) => CString -> ImGuiDataType -> Ptr a -> CInt -> CFloat -> Ptr a -> Ptr a -> CString -> ImGuiSliderFlags -> m Bool
dragScalarN :: CString
-> ImGuiDataType
-> Ptr a
-> CInt
-> CFloat
-> Ptr a
-> Ptr a
-> CString
-> ImGuiSliderFlags
-> m Bool
dragScalarN CString
labelPtr ImGuiDataType
dataType Ptr a
dataPtr CInt
components CFloat
vSpeed Ptr a
minPtr Ptr a
maxPtr CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
DragScalarN(
$(char* labelPtr),
$(ImGuiDataType dataType),
$(void* dataPtr_),
$(int components),
$(float vSpeed),
$(void* minPtr_),
$(void* maxPtr_),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
where
dataPtr_ :: Ptr b
dataPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
dataPtr
minPtr_ :: Ptr b
minPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
minPtr
maxPtr_ :: Ptr b
maxPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
maxPtr
sliderFloat :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat :: CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat CString
descPtr Ptr CFloat
floatPtr CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { SliderFloat( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]
sliderFloat2 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat2 :: CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat2 CString
descPtr Ptr CFloat
floatPtr CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { SliderFloat2( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]
sliderFloat3 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat3 :: CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat3 CString
descPtr Ptr CFloat
floatPtr CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { SliderFloat3( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]
sliderFloat4 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat4 :: CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
sliderFloat4 CString
descPtr Ptr CFloat
floatPtr CFloat
minValue CFloat
maxValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { SliderFloat4( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]
sliderAngle :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> ImGuiSliderFlags -> m Bool
sliderAngle :: CString
-> Ptr CFloat
-> CFloat
-> CFloat
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderAngle CString
descPtr Ptr CFloat
valueRadPtr CFloat
degreesMin CFloat
degreesMax CString
format ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderAngle(
$(char* descPtr),
$(float* valueRadPtr),
$(float degreesMin),
$(float degreesMax),
$(char* format),
$(ImGuiSliderFlags flags)
)
} |]
sliderInt :: (MonadIO m) => CString -> Ptr CInt -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
sliderInt :: CString
-> Ptr CInt
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderInt CString
labelPtr Ptr CInt
vPtr CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderInt(
$(char* labelPtr),
$(int* vPtr),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
sliderInt2 :: (MonadIO m) => CString -> Ptr CInt -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
sliderInt2 :: CString
-> Ptr CInt
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderInt2 CString
labelPtr Ptr CInt
vPtr CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderInt2(
$(char* labelPtr),
$(int vPtr[2]),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
sliderInt3 :: (MonadIO m) => CString -> Ptr CInt -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
sliderInt3 :: CString
-> Ptr CInt
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderInt3 CString
labelPtr Ptr CInt
vPtr CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderInt3(
$(char* labelPtr),
$(int vPtr[3]),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
sliderInt4 :: (MonadIO m) => CString -> Ptr CInt -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
sliderInt4 :: CString
-> Ptr CInt
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderInt4 CString
labelPtr Ptr CInt
vPtr CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderInt4(
$(char* labelPtr),
$(int vPtr[4]),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
sliderScalar :: (MonadIO m) => CString -> ImGuiDataType -> Ptr a -> Ptr a -> Ptr a -> CString -> ImGuiSliderFlags -> m Bool
sliderScalar :: CString
-> ImGuiDataType
-> Ptr a
-> Ptr a
-> Ptr a
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderScalar CString
labelPtr ImGuiDataType
dataType Ptr a
dataPtr Ptr a
minPtr Ptr a
maxPtr CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderScalar(
$(char* labelPtr),
$(ImGuiDataType dataType),
$(void* dataPtr_),
$(void* minPtr_),
$(void* maxPtr_),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
where
dataPtr_ :: Ptr b
dataPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
dataPtr
minPtr_ :: Ptr b
minPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
minPtr
maxPtr_ :: Ptr b
maxPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
maxPtr
sliderScalarN :: (MonadIO m) => CString -> ImGuiDataType -> Ptr a -> CInt -> Ptr a -> Ptr a -> CString -> ImGuiSliderFlags -> m Bool
sliderScalarN :: CString
-> ImGuiDataType
-> Ptr a
-> CInt
-> Ptr a
-> Ptr a
-> CString
-> ImGuiSliderFlags
-> m Bool
sliderScalarN CString
labelPtr ImGuiDataType
dataType Ptr a
dataPtr CInt
components Ptr a
minPtr Ptr a
maxPtr CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
SliderScalarN(
$(char* labelPtr),
$(ImGuiDataType dataType),
$(void* dataPtr_),
$(int components),
$(void* minPtr_),
$(void* maxPtr_),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
where
dataPtr_ :: Ptr b
dataPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
dataPtr
minPtr_ :: Ptr b
minPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
minPtr
maxPtr_ :: Ptr b
maxPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
maxPtr
vSliderFloat :: (MonadIO m) => CString -> Ptr ImVec2 -> Ptr CFloat -> CFloat -> CFloat -> CString -> ImGuiSliderFlags -> m Bool
vSliderFloat :: CString
-> Ptr ImVec2
-> Ptr CFloat
-> CFloat
-> CFloat
-> CString
-> ImGuiSliderFlags
-> m Bool
vSliderFloat CString
labelPtr Ptr ImVec2
sizePtr Ptr CFloat
vPtr CFloat
vMin CFloat
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
VSliderFloat(
$(char* labelPtr),
*$(ImVec2* sizePtr),
$(float* vPtr),
$(float vMin),
$(float vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
vSliderInt :: (MonadIO m) => CString -> Ptr ImVec2 -> Ptr CInt -> CInt -> CInt -> CString -> ImGuiSliderFlags -> m Bool
vSliderInt :: CString
-> Ptr ImVec2
-> Ptr CInt
-> CInt
-> CInt
-> CString
-> ImGuiSliderFlags
-> m Bool
vSliderInt CString
labelPtr Ptr ImVec2
sizePtr Ptr CInt
vPtr CInt
vMin CInt
vMax CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
VSliderInt(
$(char* labelPtr),
*$(ImVec2* sizePtr),
$(int* vPtr),
$(int vMin),
$(int vMax),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
vSliderScalar :: (MonadIO m) => CString -> Ptr ImVec2 -> ImGuiDataType -> Ptr a -> Ptr a -> Ptr a -> CString -> ImGuiSliderFlags -> m Bool
vSliderScalar :: CString
-> Ptr ImVec2
-> ImGuiDataType
-> Ptr a
-> Ptr a
-> Ptr a
-> CString
-> ImGuiSliderFlags
-> m Bool
vSliderScalar CString
labelPtr Ptr ImVec2
sizePtr ImGuiDataType
dataType Ptr a
dataPtr Ptr a
minPtr Ptr a
maxPtr CString
formatPtr ImGuiSliderFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool {
VSliderScalar(
$(char* labelPtr),
*$(ImVec2* sizePtr),
$(ImGuiDataType dataType),
$(void* dataPtr_),
$(void* minPtr_),
$(void* maxPtr_),
$(char* formatPtr),
$(ImGuiSliderFlags flags)
)
} |]
where
dataPtr_ :: Ptr b
dataPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
dataPtr
minPtr_ :: Ptr b
minPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
minPtr
maxPtr_ :: Ptr b
maxPtr_ = Ptr a -> Ptr b
forall a b. Ptr a -> Ptr b
castPtr Ptr a
maxPtr
inputText :: (MonadIO m) => CString -> CString -> CInt -> m Bool
inputText :: CString -> CString -> CInt -> m Bool
inputText CString
descPtr CString
refPtr CInt
refSize = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/= ) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { InputText( $(char* descPtr), $(char* refPtr), $(int refSize) ) } |]
colorPicker3 :: (MonadIO m) => CString -> Ptr CFloat -> m Bool
colorPicker3 :: CString -> Ptr CFloat -> m Bool
colorPicker3 CString
descPtr Ptr CFloat
refPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/= ) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { ColorPicker3( $(char* descPtr), $(float* refPtr) ) } |]
colorButton :: (MonadIO m) => CString -> Ptr ImVec4 -> m Bool
colorButton :: CString -> Ptr ImVec4 -> m Bool
colorButton CString
descPtr Ptr ImVec4
refPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { ColorButton( $(char* descPtr), *$(ImVec4* refPtr) ) } |]
treeNode :: (MonadIO m) => CString -> m Bool
treeNode :: CString -> m Bool
treeNode CString
labelPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { TreeNode($(char* labelPtr)) } |]
treePush :: (MonadIO m) => CString -> m ()
treePush :: CString -> m ()
treePush CString
labelPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { TreePush($(char* labelPtr)) } |]
treePop :: (MonadIO m) => m ()
treePop :: m ()
treePop = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { TreePop() } |]
selectable :: (MonadIO m) => CString -> m Bool
selectable :: CString -> m Bool
selectable CString
labelPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { Selectable($(char* labelPtr)) } |]
listBox :: (MonadIO m) => CString -> Ptr CInt -> Ptr CString -> CInt -> m Bool
listBox :: CString -> Ptr CInt -> Ptr CString -> CInt -> m Bool
listBox CString
labelPtr Ptr CInt
iPtr Ptr CString
itemsPtr CInt
itemsLen = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { ListBox($(char* labelPtr), $(int* iPtr), $(char** itemsPtr), $(int itemsLen)) }|]
plotHistogram :: (MonadIO m) => CString -> Ptr CFloat -> CInt -> m ()
plotHistogram :: CString -> Ptr CFloat -> CInt -> m ()
plotHistogram CString
labelPtr Ptr CFloat
valuesPtr CInt
valuesLen = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PlotHistogram($(char* labelPtr), $(float* valuesPtr), $(int valuesLen)) } |]
beginMenuBar :: (MonadIO m) => m Bool
= IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginMenuBar() } |]
endMenuBar :: (MonadIO m) => m ()
= IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndMenuBar(); } |]
beginMainMenuBar :: (MonadIO m) => m Bool
beginMainMenuBar :: m Bool
beginMainMenuBar = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginMainMenuBar() } |]
endMainMenuBar :: (MonadIO m) => m ()
endMainMenuBar :: m ()
endMainMenuBar = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndMainMenuBar(); } |]
beginMenu :: (MonadIO m) => CString -> m Bool
CString
labelPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginMenu($(char* labelPtr)) } |]
endMenu :: (MonadIO m) => m ()
= IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndMenu(); } |]
menuItem :: (MonadIO m) => CString -> m Bool
CString
labelPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { MenuItem($(char* labelPtr)) } |]
beginTabBar :: (MonadIO m) => CString -> ImGuiTabBarFlags -> m Bool
beginTabBar :: CString -> ImGuiTabBarFlags -> m Bool
beginTabBar CString
tabBarID ImGuiTabBarFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginTabBar($(char* tabBarID), $(ImGuiTabBarFlags flags) ) } |]
endTabBar :: (MonadIO m) => m ()
endTabBar :: m ()
endTabBar = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndTabBar(); } |]
beginTabItem :: (MonadIO m) => CString -> Ptr CBool -> ImGuiTabBarFlags -> m Bool
beginTabItem :: CString -> Ptr CBool -> ImGuiTabBarFlags -> m Bool
beginTabItem CString
namePtr Ptr CBool
refPtr ImGuiTabBarFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginTabItem($(char* namePtr), $(bool* refPtr), $(ImGuiTabBarFlags flags) ) } |]
endTabItem :: (MonadIO m) => m ()
endTabItem :: m ()
endTabItem = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndTabItem(); } |]
tabItemButton :: (MonadIO m) => CString -> ImGuiTabItemFlags -> m Bool
tabItemButton :: CString -> ImGuiTabItemFlags -> m Bool
tabItemButton CString
namePtr ImGuiTabItemFlags
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { TabItemButton($(char* namePtr), $(ImGuiTabItemFlags flags) ) } |]
setTabItemClosed :: (MonadIO m) => CString -> m ()
setTabItemClosed :: CString -> m ()
setTabItemClosed CString
namePtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetTabItemClosed($(char* namePtr)); } |]
beginTooltip :: (MonadIO m) => m ()
beginTooltip :: m ()
beginTooltip = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { BeginTooltip() } |]
endTooltip :: (MonadIO m) => m ()
endTooltip :: m ()
endTooltip = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndTooltip() } |]
beginPopup :: (MonadIO m) => CString -> m Bool
CString
popupIdPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginPopup($(char* popupIdPtr)) } |]
beginPopupModal :: (MonadIO m) => CString -> m Bool
CString
popupIdPtr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { BeginPopupModal($(char* popupIdPtr)) } |]
endPopup :: (MonadIO m) => m ()
= IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndPopup() } |]
openPopup :: (MonadIO m) => CString -> m ()
CString
popupIdPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { OpenPopup($(char* popupIdPtr)) } |]
closeCurrentPopup :: (MonadIO m) => m ()
= IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { CloseCurrentPopup() } |]
isItemHovered :: (MonadIO m) => m Bool
isItemHovered :: m Bool
isItemHovered = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { IsItemHovered() } |]
setNextWindowPos :: (MonadIO m) => Ptr ImVec2 -> ImGuiCond -> Ptr ImVec2 -> m ()
setNextWindowPos :: Ptr ImVec2 -> ImGuiCond -> Ptr ImVec2 -> m ()
setNextWindowPos Ptr ImVec2
posPtr ImGuiCond
cond Ptr ImVec2
pivotPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextWindowPos(*$(ImVec2* posPtr), $(ImGuiCond cond), *$(ImVec2* pivotPtr)) } |]
setNextWindowSize :: (MonadIO m) => Ptr ImVec2 -> ImGuiCond -> m ()
setNextWindowSize :: Ptr ImVec2 -> ImGuiCond -> m ()
setNextWindowSize Ptr ImVec2
sizePtr ImGuiCond
cond = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextWindowSize(*$(ImVec2* sizePtr), $(ImGuiCond cond)) } |]
setNextWindowFullscreen :: (MonadIO m) => m ()
setNextWindowFullscreen :: m ()
setNextWindowFullscreen = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO
[C.block|
void {
SetNextWindowPos(ImVec2(0, 0));
SetNextWindowSize(GetIO().DisplaySize);
}
|]
setNextWindowContentSize :: (MonadIO m) => Ptr ImVec2 -> m ()
setNextWindowContentSize :: Ptr ImVec2 -> m ()
setNextWindowContentSize Ptr ImVec2
sizePtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextWindowContentSize(*$(ImVec2* sizePtr)) } |]
setNextWindowSizeConstraints :: (MonadIO m) => Ptr ImVec2 -> Ptr ImVec2 -> m ()
setNextWindowSizeConstraints :: Ptr ImVec2 -> Ptr ImVec2 -> m ()
setNextWindowSizeConstraints Ptr ImVec2
sizeMinPtr Ptr ImVec2
sizeMaxPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextWindowSizeConstraints(*$(ImVec2* sizeMinPtr), *$(ImVec2* sizeMaxPtr)) } |]
setNextWindowCollapsed :: (MonadIO m) => CBool -> ImGuiCond -> m ()
setNextWindowCollapsed :: CBool -> ImGuiCond -> m ()
setNextWindowCollapsed CBool
b ImGuiCond
cond = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextWindowCollapsed($(bool b), $(ImGuiCond cond)) } |]
setNextWindowBgAlpha :: (MonadIO m) => CFloat -> m ()
setNextWindowBgAlpha :: CFloat -> m ()
setNextWindowBgAlpha CFloat
alpha = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextWindowBgAlpha($(float alpha)) } |]
newLine :: (MonadIO m) => m ()
newLine :: m ()
newLine = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { NewLine() } |]
spacing :: (MonadIO m) => m ()
spacing :: m ()
spacing = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Spacing() } |]
dummy :: (MonadIO m) => Ptr ImVec2 -> m ()
dummy :: Ptr ImVec2 -> m ()
dummy Ptr ImVec2
sizePtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Dummy(*$(ImVec2* sizePtr)) } |]
indent :: (MonadIO m) => CFloat -> m ()
indent :: CFloat -> m ()
indent CFloat
indent_w = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Indent($(float indent_w)) } |]
unindent :: (MonadIO m) => CFloat -> m ()
unindent :: CFloat -> m ()
unindent CFloat
indent_w = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { Unindent($(float indent_w)) } |]
setNextItemWidth :: (MonadIO m) => CFloat -> m ()
setNextItemWidth :: CFloat -> m ()
setNextItemWidth CFloat
itemWidth = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetNextItemWidth($(float itemWidth)) } |]
pushItemWidth :: (MonadIO m) => CFloat -> m ()
pushItemWidth :: CFloat -> m ()
pushItemWidth CFloat
itemWidth = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PushItemWidth($(float itemWidth)) } |]
popItemWidth :: (MonadIO m) => m ()
popItemWidth :: m ()
popItemWidth = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PopItemWidth() } |]
beginGroup :: (MonadIO m) => m ()
beginGroup :: m ()
beginGroup = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { BeginGroup() } |]
endGroup :: (MonadIO m) => m ()
endGroup :: m ()
endGroup = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { EndGroup() } |]
alignTextToFramePadding :: (MonadIO m) => m ()
alignTextToFramePadding :: m ()
alignTextToFramePadding = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { AlignTextToFramePadding() } |]
setCursorPos :: (MonadIO m) => Ptr ImVec2 -> m ()
setCursorPos :: Ptr ImVec2 -> m ()
setCursorPos Ptr ImVec2
posPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { SetCursorPos(*$(ImVec2* posPtr)) } |]
pushStyleColor :: (MonadIO m) => ImGuiCol -> Ptr ImVec4 -> m ()
pushStyleColor :: ImGuiCol -> Ptr ImVec4 -> m ()
pushStyleColor ImGuiCol
col Ptr ImVec4
colorPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PushStyleColor($(ImGuiCol col), *$(ImVec4 *colorPtr)) } |]
popStyleColor :: (MonadIO m) => CInt -> m ()
popStyleColor :: CInt -> m ()
popStyleColor CInt
n = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PopStyleColor($(int n)) } |]
pushStyleVar :: (MonadIO m) => ImGuiStyleVar -> Ptr ImVec2 -> m ()
pushStyleVar :: ImGuiStyleVar -> Ptr ImVec2 -> m ()
pushStyleVar ImGuiStyleVar
style Ptr ImVec2
valPtr = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PushStyleVar($(ImGuiStyleVar style), *$(ImVec2* valPtr)) } |]
popStyleVar :: (MonadIO m) => CInt -> m ()
popStyleVar :: CInt -> m ()
popStyleVar CInt
n = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
[C.exp| void { PopStyleVar($(int n)) } |]
wantCaptureMouse :: MonadIO m => m Bool
wantCaptureMouse :: m Bool
wantCaptureMouse = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { GetIO().WantCaptureMouse } |]
wantCaptureKeyboard :: MonadIO m => m Bool
wantCaptureKeyboard :: m Bool
wantCaptureKeyboard = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO do
(CBool
0 CBool -> CBool -> Bool
forall a. Eq a => a -> a -> Bool
/=) (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [C.exp| bool { GetIO().WantCaptureKeyboard } |]