@@ -40,39 +40,24 @@ SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime
4040 lv_label_set_align (icon, LV_LABEL_ALIGN_CENTER);
4141 lv_obj_align (icon, title, LV_ALIGN_OUT_LEFT_MID, -10 , 0 );
4242
43- optionsTotal = 0 ;
44- cbOption[optionsTotal] = lv_checkbox_create (container1, nullptr );
45- lv_checkbox_set_text_static (cbOption[optionsTotal], " 5 seconds" );
46- cbOption[optionsTotal]->user_data = this ;
47- lv_obj_set_event_cb (cbOption[optionsTotal], event_handler);
48- if (settingsController.GetScreenTimeOut () == 5000 ) {
49- lv_checkbox_set_checked (cbOption[optionsTotal], true );
50- }
51- optionsTotal++;
52- cbOption[optionsTotal] = lv_checkbox_create (container1, nullptr );
53- lv_checkbox_set_text_static (cbOption[optionsTotal], " 15 seconds" );
54- cbOption[optionsTotal]->user_data = this ;
55- lv_obj_set_event_cb (cbOption[optionsTotal], event_handler);
56- if (settingsController.GetScreenTimeOut () == 15000 ) {
57- lv_checkbox_set_checked (cbOption[optionsTotal], true );
58- }
59- optionsTotal++;
60- cbOption[optionsTotal] = lv_checkbox_create (container1, nullptr );
61- lv_checkbox_set_text_static (cbOption[optionsTotal], " 20 seconds" );
62- cbOption[optionsTotal]->user_data = this ;
63- lv_obj_set_event_cb (cbOption[optionsTotal], event_handler);
64- if (settingsController.GetScreenTimeOut () == 20000 ) {
65- lv_checkbox_set_checked (cbOption[optionsTotal], true );
66- }
67- optionsTotal++;
68- cbOption[optionsTotal] = lv_checkbox_create (container1, nullptr );
69- lv_checkbox_set_text_static (cbOption[optionsTotal], " 30 seconds" );
70- cbOption[optionsTotal]->user_data = this ;
71- lv_obj_set_event_cb (cbOption[optionsTotal], event_handler);
72- if (settingsController.GetScreenTimeOut () == 30000 ) {
73- lv_checkbox_set_checked (cbOption[optionsTotal], true );
43+ char buffer[12 ];
44+ for (unsigned int i = 0 ; i < options.size (); i++) {
45+ cbOption[i] = lv_checkbox_create (container1, nullptr );
46+ sprintf (buffer, " %3d seconds" , options[i] / 1000 );
47+ lv_checkbox_set_text (cbOption[i], buffer);
48+ cbOption[i]->user_data = this ;
49+ lv_obj_set_event_cb (cbOption[i], event_handler);
50+
51+ // radio button style
52+ lv_obj_set_style_local_radius (cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
53+ lv_obj_set_style_local_border_width (cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9 );
54+ lv_obj_set_style_local_border_color (cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN);
55+ lv_obj_set_style_local_bg_color (cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE);
56+
57+ if (settingsController.GetScreenTimeOut () == options[i]) {
58+ lv_checkbox_set_checked (cbOption[i], true );
59+ }
7460 }
75- optionsTotal++;
7661}
7762
7863SettingDisplay::~SettingDisplay () {
@@ -82,25 +67,11 @@ SettingDisplay::~SettingDisplay() {
8267
8368void SettingDisplay::UpdateSelected (lv_obj_t * object, lv_event_t event) {
8469 if (event == LV_EVENT_CLICKED) {
85- for (int i = 0 ; i < optionsTotal ; i++) {
70+ for (unsigned int i = 0 ; i < options. size () ; i++) {
8671 if (object == cbOption[i]) {
8772 lv_checkbox_set_checked (cbOption[i], true );
88-
89- if (i == 0 ) {
90- settingsController.SetScreenTimeOut (5000 );
91- };
92- if (i == 1 ) {
93- settingsController.SetScreenTimeOut (15000 );
94- };
95- if (i == 2 ) {
96- settingsController.SetScreenTimeOut (20000 );
97- };
98- if (i == 3 ) {
99- settingsController.SetScreenTimeOut (30000 );
100- };
101-
73+ settingsController.SetScreenTimeOut (options[i]);
10274 app->PushMessage (Applications::Display::Messages::UpdateTimeOut);
103-
10475 } else {
10576 lv_checkbox_set_checked (cbOption[i], false );
10677 }
0 commit comments