Skip to content

Desktop menu cleanup v2 / UI Guidelines#10637

Draft
MostCromulent wants to merge 2 commits intoCard-Forge:masterfrom
MostCromulent:menucleanupv2
Draft

Desktop menu cleanup v2 / UI Guidelines#10637
MostCromulent wants to merge 2 commits intoCard-Forge:masterfrom
MostCromulent:menucleanupv2

Conversation

@MostCromulent
Copy link
Copy Markdown
Contributor

@MostCromulent MostCromulent commented May 9, 2026

  • Reorganize the match-screen menu under a Game / Layout / Display / Audio hierarchy. Game shrinks to core actions; a new Display menu collects the visual toggles (Targeting Arcs, Card Overlays, Stack / Group Permanents, Tokens In Separate Row, Separate Combatants From Stacks) that previously cluttered Game.

Game - how user interacts with game state
Screenshot 2026-05-09 174949

Layout - UI layout and theme
Screenshot 2026-05-09 181426

Display - in-match display options; how game state is rendered to user
Screenshot 2026-05-09 175007

  • New UI Guidelines doc at docs/Development/UI-Guidelines.md capturing the desktop-vs-mobile conventions and design principles discussed on Discord. Linked from the wiki sidebar.

  • Backend menu-code cleanup:

    • Centralized stay-open menu factories in MenuUtil. Checkbox/radio menu items that previously closed the menu after a click now use MenuUtil.createStayOpenCheckBox / createStayOpenRadioButton (and skinned variants), with the shared mouse-event interception in one private helper. Drops duplicate private factories that lived in LayoutMenu. Theme-skin selection is the one intentional exception (still closes the menu on click).
    • Added MenuUtil.withMatchUI(Consumer<VMatchUI>) to consolidate the Singletons.getControl().getCurrentScreen().getView()-cast-to-VMatchUI pattern. Replaces 5 cast sites in LayoutMenu and 1 in ForgeMenu.
    • Removed the always-false showIcons constant and the conditional setIcon calls it gated in GameMenu, DisplayMenu, and LayoutMenu. Also dropped the dock-style icon plumbing it supported in DisplayMenu (the menuIcon tracking, the parent-submenu icon update, and the setTargetingArcMenuIcon helper). WorkshopFileMenu and DeckFileMenu still use a live showIcons setter and are untouched.
    • Dropped the LayoutMenu.currentScreen instance field — it's now a local in getMenu().
    • Hide Theme and Sound/Music Set submenus when only one option is installed, instead of showing a single-option submenu.

🤖 Generated with Claude Code

@MostCromulent MostCromulent requested review from Jetz72 and tool4ever May 9, 2026 08:56
@MostCromulent MostCromulent added Documentation Improvements or additions to documentation Desktop labels May 9, 2026
Reorganize the match-screen menu, group layout-file operations
together, add a UI Guidelines doc, and tidy shared menu helpers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Desktop Documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant