ui: Add reusable classic-style popup foundation#1940
Open
DevOpsOfChaos wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This extends the existing
iwMsgboximplementation into a reusable classic-style popup foundation.The goal is to support future warning/confirmation/info dialogs without adding one-off popup implementations.
This PR adds:
dskTestMotivation
Some future UI flows need stronger user-facing warnings, confirmations, or information dialogs. Examples include advanced addon settings that may affect gameplay heavily, map validation warnings, informational map details, and small accept/cancel confirmation flows.
Instead of adding a special-case warning popup for one addon, this PR makes the existing message box more reusable while preserving the classic in-game UI style.
This keeps the foundation generic so future dialog use cases do not need separate one-off popup implementations.
Related future use cases
This PR does not close any of these issues by itself, but it provides reusable groundwork for UI flows that are related to existing requests or discussions:
iwMsgboxdirectlyThe intent here is only to provide a reusable foundation, not to implement those specific flows in this PR.
Implementation details
This PR extends the existing
iwMsgboxinstead of introducing a parallel popup system.It reuses existing classic UI elements:
IngameWindowctrlMultilineNew configuration types:
MsgboxConfigMsgboxButtonConfigSupported behavior:
MsgboxResultvaluesWindowManagerwas adjusted so custom-close windows can handle Escape through their own close/cancel behavior instead of being forcibly closed.Demo / screenshots
This PR adds internal demo buttons to
dskTest:Warning popupConfirm popupManual demo path:
s25clientWarning popuporConfirm popupExample usage