mirror of
https://github.com/Drezil/dear-imgui.hs.git
synced 2024-11-24 09:37:02 +00:00
Add support for disabled blocks (#196)
This commit is contained in:
parent
49f7bb245e
commit
f6cad45dab
@ -279,6 +279,11 @@ module DearImGui
|
||||
, Raw.beginTooltip
|
||||
, Raw.endTooltip
|
||||
|
||||
-- ** Disabled blocks
|
||||
, withDisabled
|
||||
, Raw.beginDisabled
|
||||
, Raw.endDisabled
|
||||
|
||||
-- * Popups/Modals
|
||||
|
||||
-- ** Generic
|
||||
@ -1763,6 +1768,17 @@ setTabItemClosed tabName = liftIO do
|
||||
withTooltip :: MonadUnliftIO m => m a -> m a
|
||||
withTooltip = bracket_ Raw.beginTooltip Raw.endTooltip
|
||||
|
||||
|
||||
-- | Action wrapper for disabled blocks.
|
||||
--
|
||||
-- See 'Raw.beginDisabled' and 'Raw.endDisabled' for more info.
|
||||
withDisabled :: (MonadUnliftIO m, HasGetter ref Bool) => ref -> m a -> m a
|
||||
withDisabled disabledRef action = do
|
||||
disabled <- get disabledRef
|
||||
if disabled then bracket_ (Raw.beginDisabled 1) Raw.endDisabled action else action
|
||||
|
||||
|
||||
|
||||
-- | Returns 'True' if the popup is open, and you can start outputting to it.
|
||||
--
|
||||
-- Wraps @ImGui::BeginPopup()@
|
||||
|
@ -65,6 +65,8 @@ module DearImGui.Raw
|
||||
, setNextWindowSizeConstraints
|
||||
, setNextWindowCollapsed
|
||||
, setNextWindowBgAlpha
|
||||
, beginDisabled
|
||||
, endDisabled
|
||||
|
||||
-- ** Child Windows
|
||||
, beginChild
|
||||
@ -1582,6 +1584,29 @@ setNextWindowBgAlpha alpha = liftIO do
|
||||
[C.exp| void { SetNextWindowBgAlpha($(float alpha)) } |]
|
||||
|
||||
|
||||
-- | Begin a block that may be disabled. This disables all user interactions
|
||||
-- and dims item visuals.
|
||||
--
|
||||
-- Always call a matching 'endDisabled' for each 'beginDisabled' call.
|
||||
--
|
||||
-- The boolean argument is only intended to facilitate use of boolean
|
||||
-- expressions. If you can avoid calling @beginDisabled 0@ altogether,
|
||||
-- that should be preferred.
|
||||
--
|
||||
-- Wraps @ImGui::BeginDisabled()@
|
||||
beginDisabled :: (MonadIO m) => CBool -> m ()
|
||||
beginDisabled disabled = liftIO do
|
||||
[C.exp| void { BeginDisabled($(bool disabled)) } |]
|
||||
|
||||
|
||||
-- | Ends a block that may be disabled.
|
||||
--
|
||||
-- Wraps @ImGui::EndDisabled()@
|
||||
endDisabled :: (MonadIO m) => m ()
|
||||
endDisabled = liftIO do
|
||||
[C.exp| void { EndDisabled() } |]
|
||||
|
||||
|
||||
-- | undo a sameLine or force a new line when in an horizontal-layout context.
|
||||
--
|
||||
-- Wraps @ImGui::NewLine()@
|
||||
|
Loading…
Reference in New Issue
Block a user