summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/settings/Settings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/screens/settings/Settings.h')
-rw-r--r--src/displayapp/screens/settings/Settings.h58
1 files changed, 36 insertions, 22 deletions
diff --git a/src/displayapp/screens/settings/Settings.h b/src/displayapp/screens/settings/Settings.h
index ad4bf08..96c9e4e 100644
--- a/src/displayapp/screens/settings/Settings.h
+++ b/src/displayapp/screens/settings/Settings.h
@@ -25,28 +25,42 @@ namespace Pinetime {
Controllers::Settings& settingsController;
static constexpr int entriesPerScreen = 4;
- static constexpr std::array<List::Applications, entriesPerScreen * 4> entries {{
- {Symbols::sun, "Display", Apps::SettingDisplay},
- {Symbols::eye, "Wake Up", Apps::SettingWakeUp},
- {Symbols::clock, "Time format", Apps::SettingTimeFormat},
- {Symbols::home, "Watch face", Apps::SettingWatchFace},
-
- {Symbols::shoe, "Steps", Apps::SettingSteps},
- {Symbols::clock, "Set date", Apps::SettingSetDate},
- {Symbols::clock, "Set time", Apps::SettingSetTime},
- {Symbols::batteryHalf, "Battery", Apps::BatteryInfo},
-
- {Symbols::clock, "Chimes", Apps::SettingChimes},
- {Symbols::tachometer, "Shake Calib.", Apps::SettingShakeThreshold},
- {Symbols::check, "Firmware", Apps::FirmwareValidation},
- {Symbols::bluetooth, "Bluetooth", Apps::SettingBluetooth},
-
- {Symbols::list, "About", Apps::SysInfo},
- {Symbols::none, "None", Apps::None},
- {Symbols::none, "None", Apps::None},
- {Symbols::none, "None", Apps::None},
- }};
- static constexpr int nScreens = (entries.size() + entriesPerScreen - 1) / entriesPerScreen;
+ static constexpr auto entries{[]() constexpr{
+ using namespace Pinetime::Applications::Screens;
+ using namespace Pinetime::Applications;
+ constexpr List::Applications list[] = {
+ {Symbols::sun, "Display", Apps::SettingDisplay},
+ {Symbols::eye, "Wake Up", Apps::SettingWakeUp},
+ {Symbols::clock, "Time format", Apps::SettingTimeFormat},
+ {Symbols::home, "Watch face", Apps::SettingWatchFace},
+
+ {Symbols::shoe, "Steps", Apps::SettingSteps},
+ {Symbols::clock, "Set date", Apps::SettingSetDate},
+ {Symbols::clock, "Set time", Apps::SettingSetTime},
+ {Symbols::batteryHalf, "Battery", Apps::BatteryInfo},
+
+ {Symbols::clock, "Chimes", Apps::SettingChimes},
+ {Symbols::tachometer, "Shake Calib.", Apps::SettingShakeThreshold},
+ {Symbols::check, "Firmware", Apps::FirmwareValidation},
+ {Symbols::bluetooth, "Bluetooth", Apps::SettingBluetooth},
+
+ {Symbols::list, "About", Apps::SysInfo},
+ };
+ std::array<std::array<List::Applications, entriesPerScreen>, ((std::size(list) + entriesPerScreen - 1) / entriesPerScreen)> r{};;
+ int idx = 0;
+ for (auto& f : r) {
+ for (auto& e : f) {
+ if (idx < std::size(list)) {
+ e = list[idx];
+ } else {
+ e = { Symbols::none, "", Apps::None };
+ }
+ idx++;
+ }
+ }
+ return r;
+ }()};
+ static constexpr auto nScreens = std::size(entries);
ScreenList<nScreens> screens;
};
}