feat: Implement Change View and Renderer Options menus

- Added functionality to display and navigate the Change View menu in SixelRenderer and SoftwareRenderer.
- Introduced methods to draw the Change View and Renderer Options menus, including handling cursor and selection states.
- Updated WolfClassicMenuArt to include a customize label for the new menu.
- Enhanced WolfMenuScreen to support new menu states.
- Created tests for Change View menu interactions, ensuring proper transitions and renderer settings toggling.
- Implemented persistence for renderer settings in Flutter, allowing settings to be saved and loaded from a local file.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-03-20 20:49:37 +01:00
parent 45e5302eac
commit 3270338f44
20 changed files with 2223 additions and 140 deletions
@@ -31,6 +31,7 @@ class RetailMenuPicModule extends MenuPicModule {
MenuPicKey.footer: 15, // C_MOUSELBACKPIC (footer art)
MenuPicKey.heading: 3, // H_TOPWINDOWPIC
MenuPicKey.optionsLabel: 7, // C_OPTIONSPIC
MenuPicKey.customizeLabel: 24, // C_CUSTOMIZEPIC
// --- Cursor / markers ---
MenuPicKey.cursorActive: 8, // C_CURSOR1PIC
MenuPicKey.cursorInactive: 9, // C_CURSOR2PIC
@@ -31,6 +31,7 @@ class SharewareMenuPicModule extends MenuPicModule {
MenuPicKey.footer: 15,
MenuPicKey.heading: 3,
MenuPicKey.optionsLabel: 7,
MenuPicKey.customizeLabel: 36,
MenuPicKey.cursorActive: 8,
MenuPicKey.cursorInactive: 9,
MenuPicKey.markerSelected: 11,
@@ -57,6 +58,7 @@ class SharewareMenuPicModule extends MenuPicModule {
MenuPicKey.footer: 27,
MenuPicKey.heading: 14,
MenuPicKey.optionsLabel: 19,
MenuPicKey.customizeLabel: 36,
MenuPicKey.cursorActive: 20,
MenuPicKey.cursorInactive: 21,
MenuPicKey.markerSelected: 23,
@@ -10,6 +10,7 @@ enum MenuPicKey {
footer('footer'),
heading('heading'),
optionsLabel('optionsLabel'),
customizeLabel('customizeLabel'),
// --- Cursor / selection markers ---
cursorActive('cursorActive'),