File tree Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -279,6 +279,11 @@ module DearImGui
279
279
, Raw. beginTooltip
280
280
, Raw. endTooltip
281
281
282
+ -- ** Disabled blocks
283
+ , withDisabled
284
+ , Raw. beginDisabled
285
+ , Raw. endDisabled
286
+
282
287
-- * Popups/Modals
283
288
284
289
-- ** Generic
@@ -1763,6 +1768,17 @@ setTabItemClosed tabName = liftIO do
1763
1768
withTooltip :: MonadUnliftIO m => m a -> m a
1764
1769
withTooltip = bracket_ Raw. beginTooltip Raw. endTooltip
1765
1770
1771
+
1772
+ -- | Action wrapper for disabled blocks.
1773
+ --
1774
+ -- See 'Raw.beginDisabled' and 'Raw.endDisabled' for more info.
1775
+ withDisabled :: (MonadUnliftIO m , HasGetter ref Bool ) => ref -> m a -> m a
1776
+ withDisabled disabledRef action = do
1777
+ disabled <- get disabledRef
1778
+ if disabled then bracket_ (Raw. beginDisabled 1 ) Raw. endDisabled action else action
1779
+
1780
+
1781
+
1766
1782
-- | Returns 'True' if the popup is open, and you can start outputting to it.
1767
1783
--
1768
1784
-- Wraps @ImGui::BeginPopup()@
Original file line number Diff line number Diff line change @@ -65,6 +65,8 @@ module DearImGui.Raw
65
65
, setNextWindowSizeConstraints
66
66
, setNextWindowCollapsed
67
67
, setNextWindowBgAlpha
68
+ , beginDisabled
69
+ , endDisabled
68
70
69
71
-- ** Child Windows
70
72
, beginChild
@@ -1582,6 +1584,29 @@ setNextWindowBgAlpha alpha = liftIO do
1582
1584
[C. exp | void { SetNextWindowBgAlpha($(float alpha)) } |]
1583
1585
1584
1586
1587
+ -- | Begin a block that may be disabled. This disables all user interactions
1588
+ -- and dims item visuals.
1589
+ --
1590
+ -- Always call a matching 'endDisabled' for each 'beginDisabled' call.
1591
+ --
1592
+ -- The boolean argument is only intended to facilitate use of boolean
1593
+ -- expressions. If you can avoid calling @beginDisabled 0@ altogether,
1594
+ -- that should be preferred.
1595
+ --
1596
+ -- Wraps @ImGui::BeginDisabled()@
1597
+ beginDisabled :: (MonadIO m ) => CBool -> m ()
1598
+ beginDisabled disabled = liftIO do
1599
+ [C. exp | void { BeginDisabled($(bool disabled)) } |]
1600
+
1601
+
1602
+ -- | Ends a block that may be disabled.
1603
+ --
1604
+ -- Wraps @ImGui::EndDisabled()@
1605
+ endDisabled :: (MonadIO m ) => m ()
1606
+ endDisabled = liftIO do
1607
+ [C. exp | void { EndDisabled() } |]
1608
+
1609
+
1585
1610
-- | undo a sameLine or force a new line when in an horizontal-layout context.
1586
1611
--
1587
1612
-- Wraps @ImGui::NewLine()@
You can’t perform that action at this time.
0 commit comments