#pragma once #include "displayapp/apps/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/WatchFaceDigital.h" #include "displayapp/screens/WatchFaceAnalog.h" #include "displayapp/screens/WatchFaceCasioStyleG7710.h" #include "displayapp/screens/WatchFaceInfineat.h" #include "displayapp/screens/WatchFacePineTimeStyle.h" #include "displayapp/screens/WatchFaceTerminal.h" namespace Pinetime { namespace Applications { namespace Screens { class Screen; } struct AppDescription { Apps app; const char* icon; Screens::Screen* (*create)(AppControllers& controllers); }; struct WatchFaceDescription { WatchFace watchFace; const char* name; Screens::Screen* (*create)(AppControllers& controllers); bool (*isAvailable)(Controllers::FS& fileSystem); }; template consteval AppDescription CreateAppDescription() { return {AppTraits::app, AppTraits::icon, &AppTraits::Create}; } template consteval WatchFaceDescription CreateWatchFaceDescription() { return {WatchFaceTraits::watchFace, WatchFaceTraits::name, &WatchFaceTraits::Create, &WatchFaceTraits::IsAvailable}; } template