From 63bb63a32e3d455b16a8b02006d54a59a6c5a61c Mon Sep 17 00:00:00 2001 From: Ollie Charles Date: Thu, 28 Jan 2021 22:38:25 +0000 Subject: [PATCH] Wrap ImGui::BeginChild and EndChild (#21) --- Main.hs | 4 ++++ src/DearImGui.hs | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/Main.hs b/Main.hs index 5485202..f8651af 100644 --- a/Main.hs +++ b/Main.hs @@ -78,11 +78,15 @@ loop w checked color slider = do progressBar 0.314 (Just "Pi") + beginChild "Child" + beginCombo "Label" "Preview" >>= whenTrue do selectable "Testing 1" selectable "Testing 2" endCombo + endChild + plotHistogram "A histogram" [ 10, 10, 20, 30, 90 ] colorPicker3 "Test" color diff --git a/src/DearImGui.hs b/src/DearImGui.hs index a796b22..b3fe43a 100644 --- a/src/DearImGui.hs +++ b/src/DearImGui.hs @@ -43,6 +43,10 @@ module DearImGui , begin , end + -- * Child Windows + , beginChild + , endChild + -- * Cursor/Layout , separator , sameLine @@ -276,6 +280,19 @@ end = liftIO do [C.exp| void { ImGui::End(); } |] +-- | Wraps @ImGui::BeginChild()@. +beginChild :: MonadIO m => String -> m Bool +beginChild name = liftIO do + withCString name \namePtr -> + (0 /=) <$> [C.exp| bool { ImGui::BeginChild($(char* namePtr)) } |] + + +-- | Wraps @ImGui::EndChild()@. +endChild :: MonadIO m => m () +endChild = liftIO do + [C.exp| void { ImGui::EndChild(); } |] + + -- | Separator, generally horizontal. inside a menu bar or in horizontal layout -- mode, this becomes a vertical separator. --