Kiosk: add a data-driven System Settings menu
Settings now shows Proclamations, Audio Options, System Settings, System Logs, and Back. The new SystemSettingsPage groups Email Address, License Key, WiFi Setup, Time Zone Setup, and Date Format, driven by the pure settings::systemSettingEntries() list so future entries need one row, not new menu plumbing. Adds unit tests for the entry list.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace radiantwave::settings {
|
||||
|
||||
// Identifies a page reachable from the System Settings menu.
|
||||
enum class SystemSettingId {
|
||||
EmailAddress,
|
||||
LicenseKey,
|
||||
WiFiSetup,
|
||||
Timezone,
|
||||
DateFormat,
|
||||
};
|
||||
|
||||
// One row in the System Settings menu. `label` is what the user sees;
|
||||
// `id` selects the page the row opens.
|
||||
struct SystemSettingEntry {
|
||||
std::string label;
|
||||
SystemSettingId id;
|
||||
};
|
||||
|
||||
// The ordered System Settings entries. Adding a future setting (System Name in
|
||||
// Phase 2, Schedule toggle in Phase 3) is a single entry here plus its page
|
||||
// wiring — no new menu plumbing. Kept free of SDL so it is unit-testable.
|
||||
std::vector<SystemSettingEntry> systemSettingEntries();
|
||||
|
||||
} // namespace radiantwave::settings
|
||||
Reference in New Issue
Block a user