Code optimizations in SettingSetDate and SettingSetTime

Instead of calling lv_obj_align after each button click, the
labels have their auto_realign property set.
This commit is contained in:
Tim Taenny 2021-07-09 20:35:48 +02:00
parent da36d4a5a1
commit ffa51612fc
2 changed files with 7 additions and 13 deletions

View File

@ -40,24 +40,26 @@ SettingSetDate::SettingSetDate(
dayValue = static_cast<int>(dateTimeController.Day()); dayValue = static_cast<int>(dateTimeController.Day());
lblDay = lv_label_create(lv_scr_act(), NULL); lblDay = lv_label_create(lv_scr_act(), NULL);
//lv_obj_set_style_local_text_font(lblDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42);
lv_label_set_text_fmt(lblDay, "%d", dayValue); lv_label_set_text_fmt(lblDay, "%d", dayValue);
lv_label_set_align(lblDay, LV_LABEL_ALIGN_CENTER); lv_label_set_align(lblDay, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblDay, lv_scr_act(), LV_ALIGN_CENTER, POS_X_DAY, POS_Y_TEXT); lv_obj_align(lblDay, lv_scr_act(), LV_ALIGN_CENTER, POS_X_DAY, POS_Y_TEXT);
lv_obj_set_auto_realign(lblDay, true);
monthValue = static_cast<int>(dateTimeController.Month()); monthValue = static_cast<int>(dateTimeController.Month());
lblMonth = lv_label_create(lv_scr_act(), NULL); lblMonth = lv_label_create(lv_scr_act(), NULL);
//lv_obj_set_style_local_text_font(lblMonth, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42);
UpdateMonthLabel(); UpdateMonthLabel();
lv_label_set_align(lblMonth, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblMonth, lv_scr_act(), LV_ALIGN_CENTER, POS_X_MONTH, POS_Y_TEXT);
lv_obj_set_auto_realign(lblMonth, true);
yearValue = static_cast<int>(dateTimeController.Year()); yearValue = static_cast<int>(dateTimeController.Year());
if (yearValue < 2021) if (yearValue < 2021)
yearValue = 2021; yearValue = 2021;
lblYear = lv_label_create(lv_scr_act(), NULL); lblYear = lv_label_create(lv_scr_act(), NULL);
//lv_obj_set_style_local_text_font(lblYear, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42);
lv_label_set_text_fmt(lblYear, "%d", yearValue); lv_label_set_text_fmt(lblYear, "%d", yearValue);
lv_label_set_align(lblYear, LV_LABEL_ALIGN_CENTER); lv_label_set_align(lblYear, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblYear, lv_scr_act(), LV_ALIGN_CENTER, POS_X_YEAR, POS_Y_TEXT); lv_obj_align(lblYear, lv_scr_act(), LV_ALIGN_CENTER, POS_X_YEAR, POS_Y_TEXT);
lv_obj_set_auto_realign(lblYear, true);
btnDayPlus = lv_btn_create(lv_scr_act(), NULL); btnDayPlus = lv_btn_create(lv_scr_act(), NULL);
btnDayPlus->user_data = this; btnDayPlus->user_data = this;
@ -128,7 +130,6 @@ void SettingSetDate::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
if (dayValue > MaximumDayOfMonth()) if (dayValue > MaximumDayOfMonth())
dayValue = 1; dayValue = 1;
lv_label_set_text_fmt(lblDay, "%d", dayValue); lv_label_set_text_fmt(lblDay, "%d", dayValue);
lv_obj_align(lblDay, lv_scr_act(), LV_ALIGN_CENTER, POS_X_DAY, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
} }
else if (object == btnDayMinus) { else if (object == btnDayMinus) {
@ -136,7 +137,6 @@ void SettingSetDate::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
if (dayValue < 1) if (dayValue < 1)
dayValue = MaximumDayOfMonth(); dayValue = MaximumDayOfMonth();
lv_label_set_text_fmt(lblDay, "%d", dayValue); lv_label_set_text_fmt(lblDay, "%d", dayValue);
lv_obj_align(lblDay, lv_scr_act(), LV_ALIGN_CENTER, POS_X_DAY, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
} }
else if (object == btnMonthPlus) { else if (object == btnMonthPlus) {
@ -158,14 +158,12 @@ void SettingSetDate::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
else if (object == btnYearPlus) { else if (object == btnYearPlus) {
yearValue++; yearValue++;
lv_label_set_text_fmt(lblYear, "%d", yearValue); lv_label_set_text_fmt(lblYear, "%d", yearValue);
lv_obj_align(lblYear, lv_scr_act(), LV_ALIGN_CENTER, POS_X_YEAR, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
CheckDay(); CheckDay();
} }
else if (object == btnYearMinus) { else if (object == btnYearMinus) {
yearValue--; yearValue--;
lv_label_set_text_fmt(lblYear, "%d", yearValue); lv_label_set_text_fmt(lblYear, "%d", yearValue);
lv_obj_align(lblYear, lv_scr_act(), LV_ALIGN_CENTER, POS_X_YEAR, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
CheckDay(); CheckDay();
} }
@ -211,7 +209,5 @@ void SettingSetDate::CheckDay() {
void SettingSetDate::UpdateMonthLabel() { void SettingSetDate::UpdateMonthLabel() {
lv_label_set_text_static(lblMonth, lv_label_set_text_static(lblMonth,
Pinetime::Controllers::DateTime::MonthShortToStringLow(static_cast<Pinetime::Controllers::DateTime::Months>(monthValue))); Pinetime::Controllers::DateTime::MonthShortToStringLow(static_cast<Pinetime::Controllers::DateTime::Months>(monthValue)));
lv_label_set_align(lblMonth, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblMonth, lv_scr_act(), LV_ALIGN_CENTER, POS_X_MONTH, POS_Y_TEXT);
} }

View File

@ -45,6 +45,7 @@ SettingSetTime::SettingSetTime(
lv_label_set_text_fmt(lblHours, "%02d", hoursValue); lv_label_set_text_fmt(lblHours, "%02d", hoursValue);
lv_label_set_align(lblHours, LV_LABEL_ALIGN_CENTER); lv_label_set_align(lblHours, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblHours, lv_scr_act(), LV_ALIGN_CENTER, POS_X_HOURS, POS_Y_TEXT); lv_obj_align(lblHours, lv_scr_act(), LV_ALIGN_CENTER, POS_X_HOURS, POS_Y_TEXT);
lv_obj_set_auto_realign(lblHours, true);
lv_obj_t * lblColon1 = lv_label_create(lv_scr_act(), NULL); lv_obj_t * lblColon1 = lv_label_create(lv_scr_act(), NULL);
lv_obj_set_style_local_text_font(lblColon1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); lv_obj_set_style_local_text_font(lblColon1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42);
@ -58,6 +59,7 @@ SettingSetTime::SettingSetTime(
lv_label_set_text_fmt(lblMinutes, "%02d", minutesValue); lv_label_set_text_fmt(lblMinutes, "%02d", minutesValue);
lv_label_set_align(lblMinutes, LV_LABEL_ALIGN_CENTER); lv_label_set_align(lblMinutes, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblMinutes, lv_scr_act(), LV_ALIGN_CENTER, POS_X_MINUTES, POS_Y_TEXT); lv_obj_align(lblMinutes, lv_scr_act(), LV_ALIGN_CENTER, POS_X_MINUTES, POS_Y_TEXT);
lv_obj_set_auto_realign(lblMinutes, true);
lv_obj_t * lblColon2 = lv_label_create(lv_scr_act(), NULL); lv_obj_t * lblColon2 = lv_label_create(lv_scr_act(), NULL);
lv_obj_set_style_local_text_font(lblColon2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); lv_obj_set_style_local_text_font(lblColon2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42);
@ -126,7 +128,6 @@ void SettingSetTime::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
if (hoursValue > 23) if (hoursValue > 23)
hoursValue = 0; hoursValue = 0;
lv_label_set_text_fmt(lblHours, "%02d", hoursValue); lv_label_set_text_fmt(lblHours, "%02d", hoursValue);
lv_obj_align(lblHours, lv_scr_act(), LV_ALIGN_CENTER, POS_X_HOURS, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
} }
else if (object == btnHoursMinus) { else if (object == btnHoursMinus) {
@ -134,7 +135,6 @@ void SettingSetTime::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
if (hoursValue < 0) if (hoursValue < 0)
hoursValue = 23; hoursValue = 23;
lv_label_set_text_fmt(lblHours, "%02d", hoursValue); lv_label_set_text_fmt(lblHours, "%02d", hoursValue);
lv_obj_align(lblHours, lv_scr_act(), LV_ALIGN_CENTER, POS_X_HOURS, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
} }
else if (object == btnMinutesPlus) { else if (object == btnMinutesPlus) {
@ -142,7 +142,6 @@ void SettingSetTime::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
if (minutesValue > 59) if (minutesValue > 59)
minutesValue = 0; minutesValue = 0;
lv_label_set_text_fmt(lblMinutes, "%02d", minutesValue); lv_label_set_text_fmt(lblMinutes, "%02d", minutesValue);
lv_obj_align(lblMinutes, lv_scr_act(), LV_ALIGN_CENTER, POS_X_MINUTES, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
} }
else if (object == btnMinutesMinus) { else if (object == btnMinutesMinus) {
@ -150,7 +149,6 @@ void SettingSetTime::HandleButtonPress(lv_obj_t *object, lv_event_t event) {
if (minutesValue < 0) if (minutesValue < 0)
minutesValue = 59; minutesValue = 59;
lv_label_set_text_fmt(lblMinutes, "%02d", minutesValue); lv_label_set_text_fmt(lblMinutes, "%02d", minutesValue);
lv_obj_align(lblMinutes, lv_scr_act(), LV_ALIGN_CENTER, POS_X_MINUTES, POS_Y_TEXT);
lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED); lv_btn_set_state(btnSetTime, LV_BTN_STATE_RELEASED);
} }
else if (object == btnSetTime) { else if (object == btnSetTime) {