#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 consteval AppDescription CreateAppDescription() { return {AppTraits::app, AppTraits::icon, &AppTraits::Create}; } template typename T, Apps ...ts> consteval std::array CreateAppDescriptions(T) { return {CreateAppDescription()...}; } constexpr auto userApps = CreateAppDescriptions(UserAppTypes {}); } }