@@ -234,20 +234,42 @@ module DearImGui
234
234
, Raw. endTooltip
235
235
236
236
-- * Popups/Modals
237
+
238
+ -- ** Generic
237
239
, withPopup
238
240
, withPopupOpen
239
241
, beginPopup
242
+ , Raw. endPopup
240
243
244
+ -- ** Modal
241
245
, withPopupModal
242
246
, withPopupModalOpen
243
247
, beginPopupModal
244
248
245
- , Raw. endPopup
246
-
249
+ -- ** Item context
250
+ , itemContextPopup
251
+ , withPopupContextItemOpen
252
+ , withPopupContextItem
253
+ , beginPopupContextItem
254
+
255
+ -- ** Window context
256
+ , windowContextPopup
257
+ , withPopupContextWindowOpen
258
+ , withPopupContextWindow
259
+ , beginPopupContextWindow
260
+
261
+ -- ** Void context
262
+ , voidContextPopup
263
+ , withPopupContextVoidOpen
264
+ , withPopupContextVoid
265
+ , beginPopupContextVoid
266
+
267
+ -- ** Manual
247
268
, openPopup
248
269
, openPopupOnItemClick
249
270
, Raw. closeCurrentPopup
250
271
272
+ -- ** Queries
251
273
, isCurrentPopupOpen
252
274
, isAnyPopupOpen
253
275
, isAnyLevelPopupOpen
@@ -1484,6 +1506,52 @@ withPopupModalOpen :: MonadUnliftIO m => String -> m () -> m ()
1484
1506
withPopupModalOpen popupId action =
1485
1507
withPopupModal popupId (`when` action)
1486
1508
1509
+ beginPopupContextItem :: MonadIO m => Maybe String -> ImGuiPopupFlags -> m Bool
1510
+ beginPopupContextItem itemId flags = liftIO do
1511
+ withCStringOrNull itemId \ popupIdPtr ->
1512
+ Raw. beginPopupContextItem popupIdPtr flags
1513
+
1514
+ withPopupContextItem :: MonadUnliftIO m => Maybe String -> ImGuiPopupFlags -> (Bool -> m a ) -> m a
1515
+ withPopupContextItem popupId flags = bracket (beginPopupContextItem popupId flags) (`when` Raw. endPopup)
1516
+
1517
+ withPopupContextItemOpen :: MonadUnliftIO m => Maybe String -> ImGuiPopupFlags -> m () -> m ()
1518
+ withPopupContextItemOpen popupId flags action = withPopupContextItem popupId flags (`when` action)
1519
+
1520
+ -- | Attach item context popup to right mouse button click on a last item.
1521
+ itemContextPopup :: MonadUnliftIO m => m () -> m ()
1522
+ itemContextPopup = withPopupContextItemOpen Nothing ImGuiPopupFlags_MouseButtonRight
1523
+
1524
+ beginPopupContextWindow :: MonadIO m => Maybe String -> ImGuiPopupFlags -> m Bool
1525
+ beginPopupContextWindow popupId flags = liftIO do
1526
+ withCStringOrNull popupId \ popupIdPtr ->
1527
+ Raw. beginPopupContextWindow popupIdPtr flags
1528
+
1529
+ withPopupContextWindow :: MonadUnliftIO m => Maybe String -> ImGuiPopupFlags -> (Bool -> m a ) -> m a
1530
+ withPopupContextWindow popupId flags = bracket (beginPopupContextWindow popupId flags) (`when` Raw. endPopup)
1531
+
1532
+ withPopupContextWindowOpen :: MonadUnliftIO m => Maybe String -> ImGuiPopupFlags -> m () -> m ()
1533
+ withPopupContextWindowOpen popupId flags action = withPopupContextWindow popupId flags (`when` action)
1534
+
1535
+ -- | Attach item context popup to right mouse button click on a current window.
1536
+ windowContextPopup :: MonadUnliftIO m => m () -> m ()
1537
+ windowContextPopup = withPopupContextWindowOpen Nothing ImGuiPopupFlags_MouseButtonRight
1538
+
1539
+ beginPopupContextVoid :: MonadIO m => Maybe String -> ImGuiPopupFlags -> m Bool
1540
+ beginPopupContextVoid popupId flags = liftIO do
1541
+ withCStringOrNull popupId \ popupIdPtr ->
1542
+ Raw. beginPopupContextVoid popupIdPtr flags
1543
+
1544
+ withPopupContextVoid :: MonadUnliftIO m => Maybe String -> ImGuiPopupFlags -> (Bool -> m a ) -> m a
1545
+ withPopupContextVoid popupId flags = bracket (beginPopupContextVoid popupId flags) (`when` Raw. endPopup)
1546
+
1547
+ withPopupContextVoidOpen :: MonadUnliftIO m => Maybe String -> ImGuiPopupFlags -> m () -> m ()
1548
+ withPopupContextVoidOpen popupId flags action = withPopupContextVoid popupId flags (`when` action)
1549
+
1550
+ -- | Attach item context popup to right mouse button click outside of any windows.
1551
+ voidContextPopup :: MonadUnliftIO m => m () -> m ()
1552
+ voidContextPopup = withPopupContextWindowOpen Nothing ImGuiPopupFlags_MouseButtonRight
1553
+
1554
+
1487
1555
-- | Call to mark popup as open (don't call every frame!).
1488
1556
--
1489
1557
-- Wraps @ImGui::OpenPopup()@
0 commit comments