Add Restore All Frames option

This commit is contained in:
Jason P
2025-07-19 09:59:37 -05:00
parent e6be655f66
commit c8717751b3
4 changed files with 55 additions and 2 deletions

View File

@@ -396,7 +396,7 @@ void menuHandler::textMessageBaseMenu()
void menuHandler::systemBaseMenu()
{
enum optionsNumbers { Back, Notifications, ScreenOptions, PowerMenu, Test, DismissFrame, enumEnd };
enum optionsNumbers { Back, Notifications, ScreenOptions, PowerMenu, RestoreAllFrames, Test, DismissFrame, enumEnd };
static const char *optionsArray[enumEnd] = {"Back"};
static int optionsEnumArray[enumEnd] = {Back};
int options = 1;
@@ -409,6 +409,9 @@ void menuHandler::systemBaseMenu()
optionsEnumArray[options++] = ScreenOptions;
#endif
optionsArray[options] = "Restore All Frames";
optionsEnumArray[options++] = RestoreAllFrames;
optionsArray[options] = "Reboot/Shutdown";
optionsEnumArray[options++] = PowerMenu;
@@ -435,6 +438,9 @@ void menuHandler::systemBaseMenu()
} else if (selected == PowerMenu) {
menuHandler::menuQueue = menuHandler::power_menu;
screen->runNow();
} else if (selected == RestoreAllFrames) {
menuHandler::menuQueue = menuHandler::RestoreAllFrames;
screen->runNow();
} else if (selected == Test) {
menuHandler::menuQueue = menuHandler::test_menu;
screen->runNow();
@@ -1115,6 +1121,21 @@ void menuHandler::DismissCurrentFrame_menu()
screen->showOverlayBanner(bannerOptions);
}
void menuHandler::RestoreAllFrames_menu()
{
static const char *optionsArray[] = {"Cancel", "Confirm"};
BannerOverlayOptions bannerOptions;
bannerOptions.message = "Restore All Frames?";
bannerOptions.optionsArrayPtr = optionsArray;
bannerOptions.optionsCount = 2;
bannerOptions.bannerCallback = [](int selected) -> void {
if (selected == 1) {
screen->restoreAllFrames();
}
};
screen->showOverlayBanner(bannerOptions);
}
void menuHandler::handleMenuSwitch(OLEDDisplay *display)
{
if (menuQueue != menu_none)
@@ -1208,6 +1229,9 @@ void menuHandler::handleMenuSwitch(OLEDDisplay *display)
case DismissCurrentFrame:
DismissCurrentFrame_menu();
break;
case RestoreAllFrames:
RestoreAllFrames_menu();
break;
case throttle_message:
screen->showSimpleBanner("Too Many Attempts\nTry again in 60 seconds.", 5000);
break;