Combine Date and Time Settings (#1465)
Replace separate SettingSetDate and SettingSetTime with a combined screenlist. Add DotIndicators. Similar to PageIndicator, but for use when separating screens instead of pages of a list. Co-authored-by: Riku Isokoski <riksu9000@gmail.com>
This commit is contained in:
28
src/displayapp/widgets/DotIndicator.cpp
Normal file
28
src/displayapp/widgets/DotIndicator.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#include "displayapp/widgets/DotIndicator.h"
|
||||
#include "displayapp/InfiniTimeTheme.h"
|
||||
|
||||
using namespace Pinetime::Applications::Widgets;
|
||||
|
||||
DotIndicator::DotIndicator(uint8_t nCurrentScreen, uint8_t nScreens) : nCurrentScreen {nCurrentScreen}, nScreens {nScreens} {
|
||||
}
|
||||
|
||||
void DotIndicator::Create() {
|
||||
lv_obj_t* dotIndicator[nScreens];
|
||||
static constexpr uint8_t dotSize = 12;
|
||||
|
||||
lv_obj_t* container = lv_cont_create(lv_scr_act(), nullptr);
|
||||
lv_cont_set_layout(container, LV_LAYOUT_COLUMN_LEFT);
|
||||
lv_cont_set_fit(container, LV_FIT_TIGHT);
|
||||
lv_obj_set_style_local_pad_inner(container, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, dotSize);
|
||||
lv_obj_set_style_local_bg_opa(container, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
|
||||
|
||||
for (int i = 0; i < nScreens; i++) {
|
||||
dotIndicator[i] = lv_obj_create(container, nullptr);
|
||||
lv_obj_set_size(dotIndicator[i], dotSize, dotSize);
|
||||
lv_obj_set_style_local_bg_color(dotIndicator[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY);
|
||||
}
|
||||
|
||||
lv_obj_set_style_local_bg_color(dotIndicator[nCurrentScreen], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
||||
|
||||
lv_obj_align(container, nullptr, LV_ALIGN_IN_RIGHT_MID, 0, 0);
|
||||
}
|
18
src/displayapp/widgets/DotIndicator.h
Normal file
18
src/displayapp/widgets/DotIndicator.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
#include <lvgl/lvgl.h>
|
||||
|
||||
namespace Pinetime {
|
||||
namespace Applications {
|
||||
namespace Widgets {
|
||||
class DotIndicator {
|
||||
public:
|
||||
DotIndicator(uint8_t nCurrentScreen, uint8_t nScreens);
|
||||
void Create();
|
||||
|
||||
private:
|
||||
uint8_t nCurrentScreen;
|
||||
uint8_t nScreens;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user