summaryrefslogtreecommitdiff
path: root/src/DisplayApp/Screens/ApplicationList.cpp
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-08-14 17:51:03 (GMT)
committerGitea <gitea@fake.local>2020-08-14 17:51:03 (GMT)
commit32f20fa994fec9e21d2af4d7bd287b94316b3970 (patch)
tree00ad6d1e622b113b8e0a03f890703f5b7adeb8c1 /src/DisplayApp/Screens/ApplicationList.cpp
parent27fa273d8315f972931dba7971a99b0fbba7360e (diff)
parent6c678e872d51247f5e47730218598209e96bdd0a (diff)
Merge branch 'application-list' of JF/PineTime into develop
Diffstat (limited to 'src/DisplayApp/Screens/ApplicationList.cpp')
-rw-r--r--src/DisplayApp/Screens/ApplicationList.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/DisplayApp/Screens/ApplicationList.cpp b/src/DisplayApp/Screens/ApplicationList.cpp
new file mode 100644
index 0000000..c7c096f
--- /dev/null
+++ b/src/DisplayApp/Screens/ApplicationList.cpp
@@ -0,0 +1,80 @@
+#include <libs/lvgl/lvgl.h>
+#include <DisplayApp/DisplayApp.h>
+#include <functional>
+#include "ApplicationList.h"
+#include "Tile.h"
+#include "Symbols.h"
+
+using namespace Pinetime::Applications::Screens;
+
+ApplicationList::ApplicationList(Pinetime::Applications::DisplayApp *app) :
+ Screen(app),
+ screens{app, {
+ [this]() -> std::unique_ptr<Screen> { return CreateScreen1(); },
+ //[this]() -> std::unique_ptr<Screen> { return CreateScreen2(); },
+ //[this]() -> std::unique_ptr<Screen> { return CreateScreen3(); }
+ }
+ } {}
+
+
+ApplicationList::~ApplicationList() {
+ lv_obj_clean(lv_scr_act());
+}
+
+bool ApplicationList::Refresh() {
+ if(running)
+ running = screens.Refresh();
+ return running;
+}
+
+bool ApplicationList::OnButtonPushed() {
+ running = false;
+ app->StartApp(Apps::Clock);
+ return true;
+}
+
+bool ApplicationList::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
+ return screens.OnTouchEvent(event);
+}
+
+std::unique_ptr<Screen> ApplicationList::CreateScreen1() {
+ std::array<Screens::Tile::Applications, 6> applications {
+ {{Symbols::asterisk, Apps::Meter},
+ {Symbols::tachometer, Apps::Gauge},
+ {Symbols::clock, Apps::Clock},
+ {Symbols::music, Apps::Music},
+ {Symbols::list, Apps::SysInfo},
+ {Symbols::sun, Apps::Brightness}
+ }
+ };
+
+ return std::unique_ptr<Screen>(new Screens::Tile(app, applications));
+}
+
+std::unique_ptr<Screen> ApplicationList::CreateScreen2() {
+ std::array<Screens::Tile::Applications, 6> applications {
+ {{"0", Apps::Meter},
+ {"1", Apps::Gauge},
+ {"2", Apps::Clock},
+ {"3", Apps::Music},
+ {"4", Apps::SysInfo},
+ {"5", Apps::Brightness}
+ }
+ };
+
+ return std::unique_ptr<Screen>(new Screens::Tile(app, applications));
+}
+
+std::unique_ptr<Screen> ApplicationList::CreateScreen3() {
+ std::array<Screens::Tile::Applications, 6> applications {
+ {{"A", Apps::Meter},
+ {"B", Apps::Gauge},
+ {"C", Apps::Clock},
+ {"D", Apps::Music},
+ {"E", Apps::SysInfo},
+ {"F", Apps::Brightness}
+ }
+ };
+
+ return std::unique_ptr<Screen>(new Screens::Tile(app, applications));
+}