feat(engine): group HUD menu popover into Play/You/Community/System sections
Phase C of docs/ui-redesign-2026-07.md. The Modes row is gone — Home owns mode selection, so the popover's Play section carries a Home row firing the new ToggleHomeRequestEvent (read by toggle_home_screen alongside the existing M accelerator). Section headers are quiet caption-size labels inside the existing panel widget, not a new widget. The action-bar Modes button and its popover are untouched (their removal is Phase B territory when Home gains hierarchy). - MenuOption: Modes variant replaced by Home; rows grouped Play (Home) · You (Profile, Stats, Achievements) · Community (Leaderboard) · System (Settings, Help) - handle_menu_option_click no longer chains into spawn_modes_popover - Tests: tooltip sweep updated (7 rows still), new toggle_home_event_opens_home_screen covers the popover's open path Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -30,9 +30,9 @@ use crate::daily_challenge_plugin::DailyChallengeResource;
|
||||
use crate::events::{
|
||||
HelpRequestEvent, InfoToastEvent, NewGameRequestEvent, PauseRequestEvent,
|
||||
StartChallengeRequestEvent, StartDailyChallengeRequestEvent, StartTimeAttackRequestEvent,
|
||||
StartZenRequestEvent, ToggleAchievementsRequestEvent, ToggleLeaderboardRequestEvent,
|
||||
ToggleProfileRequestEvent, ToggleSettingsRequestEvent, ToggleStatsRequestEvent,
|
||||
UndoRequestEvent, WinStreakMilestoneEvent,
|
||||
StartZenRequestEvent, ToggleAchievementsRequestEvent, ToggleHomeRequestEvent,
|
||||
ToggleLeaderboardRequestEvent, ToggleProfileRequestEvent, ToggleSettingsRequestEvent,
|
||||
ToggleStatsRequestEvent, UndoRequestEvent, WinStreakMilestoneEvent,
|
||||
};
|
||||
use crate::font_plugin::FontResource;
|
||||
use crate::game_plugin::{GameMutation, NewGameRequestWriters};
|
||||
@@ -386,8 +386,9 @@ pub enum ModeOption {
|
||||
}
|
||||
|
||||
/// Marker on the "Menu" action button. Click toggles the [`MenuPopover`]
|
||||
/// which exposes the Stats / Achievements / Profile / Settings /
|
||||
/// Leaderboard overlays without needing the S/A/P/O/L hotkeys.
|
||||
/// which exposes the Home / Profile / Stats / Achievements /
|
||||
/// Leaderboard / Settings / Help overlays without needing the
|
||||
/// M/P/S/A/L/O/F1 hotkeys.
|
||||
#[derive(Component, Debug)]
|
||||
pub struct MenuButton;
|
||||
|
||||
@@ -413,16 +414,18 @@ struct MenuPopoverBackdrop;
|
||||
struct ModesPopoverBackdrop;
|
||||
|
||||
/// One row inside the [`MenuPopover`]. The variant selects which
|
||||
/// `Toggle*RequestEvent` the click handler fires.
|
||||
/// `Toggle*RequestEvent` the click handler fires. Rows render grouped
|
||||
/// under section headers (Play · You · Community · System); mode
|
||||
/// selection lives on Home, so there is no Modes row here.
|
||||
#[derive(Component, Debug, Clone, Copy)]
|
||||
pub enum MenuOption {
|
||||
Help,
|
||||
Modes,
|
||||
Home,
|
||||
Profile,
|
||||
Stats,
|
||||
Achievements,
|
||||
Profile,
|
||||
Settings,
|
||||
Leaderboard,
|
||||
Settings,
|
||||
Help,
|
||||
}
|
||||
|
||||
/// HUD Z-layer — above cards (which start at z=0) but below overlay screens.
|
||||
@@ -459,6 +462,7 @@ impl Plugin for HudPlugin {
|
||||
.add_message::<StartTimeAttackRequestEvent>()
|
||||
.add_message::<StartDailyChallengeRequestEvent>()
|
||||
.add_message::<ToggleStatsRequestEvent>()
|
||||
.add_message::<ToggleHomeRequestEvent>()
|
||||
.add_message::<ToggleAchievementsRequestEvent>()
|
||||
.add_message::<ToggleProfileRequestEvent>()
|
||||
.add_message::<ToggleSettingsRequestEvent>()
|
||||
|
||||
Reference in New Issue
Block a user