diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-03-29 23:18:19 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-03-29 23:18:19 (GMT) |
| commit | b66935af52e8a74a2145990c21db845a03dfde86 (patch) | |
| tree | c41c7bbd825d06d486b4d9b74edadbb0b4c5ba26 | |
| parent | 5c1de7b675743496bf1c943ebc5b16f93938c6f4 (diff) | |
Brief digression into alalog24 display using lv_linemeter
| -rw-r--r-- | src/displayapp/screens/WatchFaceDigital.cpp | 23 | ||||
| -rw-r--r-- | src/displayapp/screens/WatchFaceDigital.h | 3 | ||||
| -rw-r--r-- | src/libs/lv_conf.h | 2 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index 68c6acb..1436a79 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -33,6 +33,29 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app, settingsController {settingsController}, motionController {motionController} { + /*Create a line meter */ + lmeter = lv_linemeter_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_pad_top(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_pad_bottom(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_pad_left(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_pad_right(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_width_margin(lmeter, 0); + lv_obj_set_height_margin(lmeter, 0); + lv_obj_set_size(lmeter, 240, 240); + lv_obj_align(lmeter, nullptr, LV_ALIGN_CENTER, 0, 0); + lv_linemeter_set_range(lmeter, 0, 60); /*Set the range*/ + lv_linemeter_set_value(lmeter, 30); /*Set the current value*/ + lv_linemeter_set_angle_offset(lmeter, 180); + lv_linemeter_set_scale(lmeter, 360, 97); /*Set the angle and number of lines*/ + + lv_obj_set_style_local_scale_end_color(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(255, 0, 0)); + lv_obj_set_style_local_scale_grad_color(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(160, 0, 0)); + lv_obj_set_style_local_scale_end_line_width(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 2); + lv_obj_set_style_local_line_width(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 2); + lv_obj_set_style_local_line_color(lmeter, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_SILVER); + + taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); + batteryIcon = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_fmt(batteryIcon, "B##%%"); lv_obj_set_style_local_text_font(batteryIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont1); diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h index 8382996..aef486c 100644 --- a/src/displayapp/screens/WatchFaceDigital.h +++ b/src/displayapp/screens/WatchFaceDigital.h @@ -56,6 +56,9 @@ namespace Pinetime { DirtyValue<uint32_t> stepCount {}; DirtyValue<bool> notificationState {}; + lv_style_t style_lmeter; + lv_obj_t* lmeter; + lv_obj_t* label_temp; lv_obj_t* label_time; lv_obj_t* label_time_sec; diff --git a/src/libs/lv_conf.h b/src/libs/lv_conf.h index dfec64a..cbaf64b 100644 --- a/src/libs/lv_conf.h +++ b/src/libs/lv_conf.h @@ -673,7 +673,7 @@ typedef void* lv_obj_user_data_t; * 1: Some extra precision * 2: Best precision */ -#define LV_LINEMETER_PRECISE 0 +#define LV_LINEMETER_PRECISE 2 #endif /*Mask (dependencies: -)*/ |
