Skip to content

Move the list-screen chrome and panel dialogs into the framework - #5

Merged
DefKorns merged 7 commits into
masterfrom
refactor/list-screen
Oct 21, 2026
Merged

DefKorns merged 7 commits into
masterfrom
refactor/list-screen

Conversation

@DefKorns

Copy link
Copy Markdown
Owner

Moves the helpers that every list screen kept as its own lambdas into src/framework, and moves Save Manager and Module Uninstaller onto them.

  • list_screen: ScreenChrome, DrawFooterDivider, DrawListRow, NoteBox, ScrollArrows. DrawLinesCentered moves into text_layout.
  • panel_dialog: PanelDialog (Acknowledge / Confirm / ConfirmDestructive), DialogResult, ShowBusy, DropPendingInput.

Behaviour changes:

  • Start+Select only confirms destructive actions. Other confirms use A, B cancels, and info dialogs close on A only.
  • Power or SDL_QUIT inside a dialog now leaves the screen. It used to be swallowed.
  • DropPendingInput resets every button after blocking work, not just A and B.
  • Scroll arrows are centred like the main menu, and the down arrow mirrors the up arrow inside the list area.
  • Save Manager tags repeated game names with their code and hides saves with no data.

Tested: plain and compat builds, tests/run_tests.sh. On the console, framebuffer dumps showed no pixel changes from the step 1 extraction, and every SM/MU dialog was checked with real buttons.

The add-ons (Favorites, Theme Selector, Gamepad tool) move over after the OM submodule bump.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant