diff options
author | Jean-François Milants <jf@codingfield.com> | 2021-04-09 21:16:21 +0200 |
---|---|---|
committer | Jean-François Milants <jf@codingfield.com> | 2021-04-09 21:16:21 +0200 |
commit | 15b3b8e282dd5b2132b0095716cd9d88740d4579 (patch) | |
tree | c26870103f8baaa933399cfb86cca25aa7e60d8b /src/displayapp/screens/Label.cpp | |
parent | 9ac4be8b759bb2cedeb999ce5e87d983261beded (diff) | |
parent | 57b4c3f0edc6acfa31bd2160abdcd6091920ba63 (diff) |
Merge branch 'develop' into motion-sensor
# Conflicts:
# src/CMakeLists.txt
# src/displayapp/Apps.h
# src/displayapp/DisplayApp.cpp
# src/displayapp/DisplayApp.h
# src/displayapp/lv_pinetime_theme.c
# src/displayapp/screens/ApplicationList.cpp
# src/drivers/TwiMaster.cpp
# src/systemtask/SystemTask.h
Diffstat (limited to 'src/displayapp/screens/Label.cpp')
-rw-r--r-- | src/displayapp/screens/Label.cpp | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/displayapp/screens/Label.cpp b/src/displayapp/screens/Label.cpp index 4be7742a..cc268775 100644 --- a/src/displayapp/screens/Label.cpp +++ b/src/displayapp/screens/Label.cpp @@ -2,13 +2,45 @@ using namespace Pinetime::Applications::Screens; -Label::Label(Pinetime::Applications::DisplayApp *app, const char *text) : Screen(app), text{text} { - label = lv_label_create(lv_scr_act(), nullptr); - lv_label_set_align(label, LV_LABEL_ALIGN_LEFT); - lv_obj_set_size(label, 240, 240); - lv_label_set_text(label, text); +Label::Label(uint8_t screenID, uint8_t numScreens, + Pinetime::Applications::DisplayApp *app, lv_obj_t* labelText) : + Screen(app), + labelText{labelText} { + + if ( numScreens > 1 ) { + pageIndicatorBasePoints[0].x = 240 - 1; + pageIndicatorBasePoints[0].y = 6; + pageIndicatorBasePoints[1].x = 240 - 1; + pageIndicatorBasePoints[1].y = 240 - 6; + + pageIndicatorBase = lv_line_create(lv_scr_act(), NULL); + lv_obj_set_style_local_line_width(pageIndicatorBase, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3); + lv_obj_set_style_local_line_color(pageIndicatorBase, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x111111)); + lv_obj_set_style_local_line_rounded(pageIndicatorBase, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, true); + lv_line_set_points(pageIndicatorBase, pageIndicatorBasePoints, 2); + + + uint16_t indicatorSize = 228 / numScreens; + uint16_t indicatorPos = indicatorSize * screenID; + + pageIndicatorPoints[0].x = 240 - 1; + pageIndicatorPoints[0].y = (6 + indicatorPos); + pageIndicatorPoints[1].x = 240 - 1; + pageIndicatorPoints[1].y = (6 + indicatorPos) + indicatorSize; + + pageIndicator = lv_line_create(lv_scr_act(), NULL); + lv_obj_set_style_local_line_width(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3); + lv_obj_set_style_local_line_color(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); + lv_obj_set_style_local_line_rounded(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, true); + lv_line_set_points(pageIndicator, pageIndicatorPoints, 2); + } + } Label::~Label() { lv_obj_clean(lv_scr_act()); } + +bool Label::Refresh() { + return running; +} |