f5328ec9eb
Integrate this new ScreenList in SystemInfo. Add ApplicationList, which is a ScreenList of Tile. This allows to display a menu of more than 6 applications.
39 lines
921 B
C++
39 lines
921 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include "Screen.h"
|
|
#include <bits/unique_ptr.h>
|
|
#include "Modal.h"
|
|
#include <lvgl/src/lv_core/lv_style.h>
|
|
#include <DisplayApp/Apps.h>
|
|
|
|
namespace Pinetime {
|
|
namespace Applications {
|
|
namespace Screens {
|
|
class Tile : public Screen {
|
|
public:
|
|
struct Applications {
|
|
const char* icon;
|
|
Pinetime::Applications::Apps application;
|
|
};
|
|
|
|
explicit Tile(DisplayApp* app, std::array<Applications, 6>& applications);
|
|
~Tile() override;
|
|
|
|
bool Refresh() override;
|
|
bool OnButtonPushed() override;
|
|
|
|
void OnObjectEvent(lv_obj_t* obj, lv_event_t event, uint32_t buttonId);
|
|
|
|
private:
|
|
lv_obj_t * btnm1;
|
|
bool running = true;
|
|
|
|
std::unique_ptr<Modal> modal;
|
|
|
|
const char* btnm_map1[8];
|
|
Pinetime::Applications::Apps apps[6];
|
|
};
|
|
}
|
|
}
|
|
}
|