str_idString identifier hashed with the current ID stack to distinguish this item or scope.
flagsImGuiWindowFlags options controlling this operation; combine compatible flag bits with |.
True when this scope is open/active and its contents may be submitted. Call EndPopup() only when true; on false, skip both contents and the matching end.
They block normal mouse hovering detection (and therefore most mouse interactions) behind them.
If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE.
Their visibility state (~bool) is held internally instead of being held by the programmer as we are used to with regular Begin*() calls.
The 3 properties above are related: we need to retain popup visibility state in the library because popups may be closed as any time.
You can bypass the hovering restriction by using ImGuiHoveredFlags.AllowWhenBlockedByPopup when calling IsItemHovered() or IsWindowHovered().
IMPORTANT: Popup identifiers are relative to the current ID stack, so OpenPopup and BeginPopup generally needs to be at the same level of the stack. This is sometimes leading to confusing mistakes. May rework this in the future.
BeginPopup(): query popup state, if open start appending into the window. Call EndPopup() afterwards if returned true. ImGuiWindowFlags are forwarded to the window.
BeginPopupModal(): block every interaction behind the window, cannot be closed by user, add a dimming background, has a title bar.
return true if the popup is open, and you can start outputting to it.
Begin appending to an open popup.