ref: 02af09d9430bef72f307d49bc215149415a180ea
src/displayapp/UserApps.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#pragma once #include "Apps.h" #include "Controllers.h" #include "displayapp/screens/Alarm.h" #include "displayapp/screens/Timer.h" #include "displayapp/screens/Twos.h" #include "displayapp/screens/Tile.h" #include "displayapp/screens/ApplicationList.h" #include "displayapp/screens/Clock.h" namespace Pinetime { namespace Applications { namespace Screens { class Screen; } struct AppDescription { Apps app; const char* icon; Screens::Screen* (*create)(AppControllers& controllers); }; template <Apps t> consteval AppDescription CreateAppDescription() { return {AppTraits<t>::app, AppTraits<t>::icon, &AppTraits<t>::Create}; } template <template<Apps...> typename T, Apps ...ts> consteval std::array<AppDescription, sizeof...(ts)> CreateAppDescriptions(T<ts...>) { return {CreateAppDescription<ts>()...}; } constexpr auto userApps = CreateAppDescriptions(UserAppTypes {}); } } |