summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/List.h
blob: 739a91c3727f9b9eb1f5fb275f0fa5d414d3c26b (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once

#include <lvgl/lvgl.h>
#include <cstdint>
#include <memory>
#include "Screen.h"
#include "../Apps.h"
#include "components/settings/Settings.h"

#define MAXLISTITEMS 4

namespace Pinetime {
  namespace Applications {
    namespace Screens {
      class List : public Screen {
        public:
          struct Applications {
            const char* icon;
            const char* name;
            Pinetime::Applications::Apps application;
          };

          explicit List(uint8_t screenID, uint8_t numScreens,
              DisplayApp* app,
              Controllers::Settings& settingsController, 
              std::array<Applications, MAXLISTITEMS>& applications);
          ~List() override;

          bool Refresh() override;
          

          void OnButtonEvent(lv_obj_t *object, lv_event_t event);

        private:

          Controllers::Settings& settingsController;
          Pinetime::Applications::Apps apps[MAXLISTITEMS];

          lv_obj_t * itemApps[MAXLISTITEMS];

          lv_point_t pageIndicatorBasePoints[2];
          lv_point_t pageIndicatorPoints[2];
          lv_obj_t* pageIndicatorBase;
          lv_obj_t* pageIndicator;
         
      };
    }
  }
}