24 lv_obj_t *logo = lv_img_create(card);
26 lv_obj_align(logo, LV_ALIGN_TOP_MID, 0, 12);
40 LV_ALIGN_CENTER, 0, 0);
42 lv_label_set_long_mode(sub, LV_LABEL_LONG_WRAP);
43 lv_obj_set_style_text_align(sub, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
44 lv_obj_update_layout(brand);
45 lv_obj_align_to(sub, brand, LV_ALIGN_OUT_BOTTOM_MID, 0, 6);
76 LV_ALIGN_TOP_MID, 0, 76);
78 "Thank you - your terminal is configured.\n\n"
79 "It restarts once to apply everything.",
81 LV_ALIGN_TOP_MID, 0, 106);
83 lv_label_set_long_mode(b, LV_LABEL_LONG_WRAP);
84 lv_obj_set_style_text_align(b, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
85 lv_obj_align(b, LV_ALIGN_TOP_MID, 0, 106);
97 lv_obj_t *host = lv_scr_act();
102 lv_obj_set_style_bg_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN);
104 const lv_coord_t dy =
authed ? 6 : 0;
111 const char *eyebrow =
"Setup";
112 const char *title =
"Nothing to set";
114 const char *hint =
"";
118 title =
"Connect your phone";
119 hint =
"Scan to join the terminal's Wi-Fi";
123 title =
"Payout addresses";
124 hint =
"Continue on your phone";
127 eyebrow = numbered ?
"Step 5" :
"Wi-Fi";
128 title =
"Wi-Fi network";
129 hint = numbered ?
"Continue on your phone"
130 :
"Scan with your phone";
137 LV_ALIGN_TOP_MID, 0, 6 + dy);
139 LV_ALIGN_TOP_MID, 0, 24 + dy);
146 lv_obj_t *qr = lv_qrcode_create(lv_scr_act(), 112,
COL_TEXT,
COL_BG);
149 (void)lv_qrcode_update(qr, payload, strlen(payload));
150 lv_obj_align(qr, LV_ALIGN_TOP_MID, 0, 70);
153 lv_obj_set_style_border_color(qr,
COL_BG, LV_PART_MAIN);
154 lv_obj_set_style_border_width(qr, 4, LV_PART_MAIN);
162 LV_ALIGN_TOP_LEFT, 24, 214);
166 LV_ALIGN_TOP_LEFT, 24, 232);
171 "Connected - the setup page is open in the "
174 LV_ALIGN_TOP_MID, 0, 86);
176 lv_label_set_long_mode(on, LV_LABEL_LONG_WRAP);
177 lv_obj_set_style_text_align(on, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
178 lv_obj_align(on, LV_ALIGN_TOP_MID, 0, 86);
186 LV_ALIGN_TOP_MID, 0, 130);
188 lv_label_set_long_mode(m, LV_LABEL_LONG_WRAP);
189 lv_obj_set_style_text_align(m, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
193 lv_obj_update_layout(on);
194 lv_obj_align_to(m, on, LV_ALIGN_OUT_BOTTOM_MID, 0, 12);
201 lv_obj_t *sp = lv_spinner_create(host, 1000, 60);
202 lv_obj_set_size(sp, 24, 24);
203 lv_obj_align(sp, LV_ALIGN_BOTTOM_MID, 0,
authed ? -12 : -34);
204 lv_obj_set_style_arc_width(sp, 3, LV_PART_MAIN);
205 lv_obj_set_style_arc_width(sp, 3, LV_PART_INDICATOR);
206 lv_obj_set_style_arc_color(sp,
COL_SURFACE, LV_PART_MAIN);
207 lv_obj_set_style_arc_color(sp,
COL_ACCENT, LV_PART_INDICATOR);
278 LV_ALIGN_TOP_MID, 0, 10);
291 lv_obj_set_width(info, VW);
292 lv_label_set_long_mode(info, LV_LABEL_LONG_WRAP);
293 lv_obj_set_style_text_align(info, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
294 lv_obj_align(info, LV_ALIGN_TOP_MID, 0, 154);
320 lv_coord_t list_y = 48;
324 LV_ALIGN_TOP_MID, 0, 50);
325 lv_label_set_long_mode(note, LV_LABEL_LONG_WRAP);
326 lv_obj_set_width(note, 216);
327 lv_obj_set_style_text_align(note, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
330 lv_obj_update_layout(note);
331 list_y = 50 + lv_obj_get_height(note) + 6;
343 lv_obj_t *list = lv_list_create(lv_scr_act());
344 lv_obj_set_size(list,
SCR_W - 12,
SCR_H - 4 - list_y);
345 lv_obj_align(list, LV_ALIGN_TOP_MID, 0, list_y);
346 lv_obj_set_style_bg_color(list,
COL_BG, LV_PART_MAIN);
347 lv_obj_set_style_border_width(list, 0, LV_PART_MAIN);
348 lv_obj_set_style_pad_row(list, 4, LV_PART_MAIN);
351 lv_obj_t *btn = lv_list_add_btn(list, LV_SYMBOL_WIFI,
s_aps[i].ssid);
352 lv_obj_set_style_bg_color(btn,
COL_SURFACE, LV_PART_MAIN);
353 lv_obj_set_style_text_color(btn,
COL_TEXT, LV_PART_MAIN);
354 lv_obj_set_style_radius(btn, 8, LV_PART_MAIN);
355 lv_obj_add_event_cb(btn,
wifi_item_cb, LV_EVENT_CLICKED,
356 reinterpret_cast<void *
>(
static_cast<intptr_t
>(i)));
lv_obj_t * make_button(lv_obj_t *parent, const char *label, lv_color_t bg, lv_color_t fg, lv_coord_t w, lv_coord_t h, lv_align_t align, lv_coord_t x, lv_coord_t y, BtnAction act, const lv_font_t *font)