|
|
|
@@ -39,8 +39,8 @@ static const void* imgfont_get_path(
|
|
|
|
|
|
|
|
|
|
static void b_cfg_cb(lv_event_t *e) {
|
|
|
|
|
lv_obj_t *box = lv_msgbox_create(NULL);
|
|
|
|
|
lv_msgbox_add_title(box, "Hello");
|
|
|
|
|
lv_msgbox_add_text(box, "test message");
|
|
|
|
|
lv_msgbox_add_title(box, "Settings");
|
|
|
|
|
lv_msgbox_add_text(box, "Sorry, there aren't any right now.");
|
|
|
|
|
lv_msgbox_add_close_button(box);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -89,10 +89,10 @@ static void anim_y_cb(void *var, int32_t v) {
|
|
|
|
|
static void anim_opa_cb(void *var, int32_t v) {
|
|
|
|
|
lv_obj_set_style_opa(var, v, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void anim_val_time_text(lv_anim_t *anim) {
|
|
|
|
|
lv_label_set_text_static(anim->var, M_VAL_TIME);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void val_ui_none() {
|
|
|
|
|
setup_next_state();
|
|
|
|
|
|
|
|
|
@@ -268,12 +268,91 @@ void val_ui_idle() {
|
|
|
|
|
lv_anim_timeline_start(at_active);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void anim_text_color_mix_hero_sub(void *var, int32_t v) {
|
|
|
|
|
lv_obj_set_style_text_color(
|
|
|
|
|
var, lv_color_mix(color_text_hero, color_text_subtitle, v), 0);
|
|
|
|
|
}
|
|
|
|
|
void val_ui_queue_start(bool ms_not_comp) {
|
|
|
|
|
setup_next_state();
|
|
|
|
|
|
|
|
|
|
// Widgets
|
|
|
|
|
lv_obj_t *l_main = lv_label_create(o_active);
|
|
|
|
|
lv_obj_add_style(l_main, &s_hero, 0);
|
|
|
|
|
lv_obj_center(l_main);
|
|
|
|
|
lv_label_set_text_static(l_main, "SEARCHING...");
|
|
|
|
|
|
|
|
|
|
lv_obj_t *l_subtitle = lv_label_create(o_active);
|
|
|
|
|
lv_obj_add_style(l_subtitle, &s_subtitle, 0);
|
|
|
|
|
lv_obj_center(l_subtitle);
|
|
|
|
|
lv_label_set_text_static(l_subtitle, ms_not_comp ? "UHHH SHOULD THAT BE COMP?" : "I HOPE IT'S NOT SPLIT...");
|
|
|
|
|
|
|
|
|
|
lv_obj_t *spinner = lv_spinner_create(o_active);
|
|
|
|
|
lv_obj_set_size(spinner, 100, 100);
|
|
|
|
|
lv_obj_center(spinner);
|
|
|
|
|
lv_obj_set_style_arc_color(spinner, color_text_hero, LV_PART_INDICATOR);
|
|
|
|
|
lv_spinner_set_anim_params(spinner, 1500, 200);
|
|
|
|
|
|
|
|
|
|
lv_obj_update_layout(o_active);
|
|
|
|
|
const int32_t offset = -60;
|
|
|
|
|
lv_obj_set_y(l_main, offset);
|
|
|
|
|
lv_obj_set_y(
|
|
|
|
|
l_subtitle,
|
|
|
|
|
offset + (lv_obj_get_height(l_main) + lv_obj_get_height(l_subtitle)) / 2 + 5);
|
|
|
|
|
lv_obj_set_y(
|
|
|
|
|
spinner,
|
|
|
|
|
lv_obj_get_height(o_container) / 4);
|
|
|
|
|
// offset + (lv_obj_get_height(l_main)/2) + lv_obj_get_height(l_subtitle) + (lv_obj_get_height(spinner)/2) + 15);
|
|
|
|
|
|
|
|
|
|
// Animations
|
|
|
|
|
lv_anim_t a_title;
|
|
|
|
|
lv_anim_init(&a_title);
|
|
|
|
|
lv_anim_set_var(&a_title, l_main);
|
|
|
|
|
lv_anim_set_values(
|
|
|
|
|
&a_title,
|
|
|
|
|
-(lv_obj_get_width(o_container) - lv_obj_get_width(l_main)) / 2, 0);
|
|
|
|
|
lv_anim_set_exec_cb(&a_title, anim_x_cb);
|
|
|
|
|
lv_anim_set_path_cb(&a_title, lv_anim_path_ease_out);
|
|
|
|
|
lv_anim_set_duration(&a_title, 750);
|
|
|
|
|
|
|
|
|
|
lv_anim_t a_sub;
|
|
|
|
|
lv_anim_init(&a_sub);
|
|
|
|
|
lv_anim_set_var(&a_sub, l_subtitle);
|
|
|
|
|
lv_anim_set_values(
|
|
|
|
|
&a_sub,
|
|
|
|
|
(lv_obj_get_width(o_container) - lv_obj_get_width(l_subtitle)) / 2, 0);
|
|
|
|
|
lv_anim_set_exec_cb(&a_sub, anim_x_cb);
|
|
|
|
|
lv_anim_set_path_cb(&a_sub, lv_anim_path_ease_out);
|
|
|
|
|
lv_anim_set_completed_cb(&a_sub, anim_state_ready_cb);
|
|
|
|
|
lv_anim_set_duration(&a_sub, 750);
|
|
|
|
|
|
|
|
|
|
lv_anim_timeline_add(at_active, 0, &a_title);
|
|
|
|
|
lv_anim_timeline_add(at_active, 0, &a_sub);
|
|
|
|
|
|
|
|
|
|
if (ms_not_comp) {
|
|
|
|
|
lv_anim_t a_warn;
|
|
|
|
|
lv_anim_init(&a_warn);
|
|
|
|
|
lv_anim_set_early_apply(&a_warn, false);
|
|
|
|
|
lv_anim_set_var(&a_warn, l_subtitle);
|
|
|
|
|
lv_anim_set_path_cb(&a_warn, lv_anim_path_linear);
|
|
|
|
|
lv_anim_set_duration(&a_warn, 1000);
|
|
|
|
|
lv_anim_set_exec_cb(&a_warn, anim_text_color_mix_hero_sub);
|
|
|
|
|
|
|
|
|
|
lv_anim_set_values(&a_warn, 0, 255);
|
|
|
|
|
lv_anim_timeline_add(at_active_rep, 0, &a_warn);
|
|
|
|
|
|
|
|
|
|
lv_anim_set_values(&a_warn, 255, 0);
|
|
|
|
|
lv_anim_timeline_add(at_active_rep, 1000, &a_warn);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lv_anim_timeline_start(at_active);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void val_lvgl_ui(lv_display_t *disp) {
|
|
|
|
|
color_primary = lv_color_hex(0xff4655);
|
|
|
|
|
color_secondary = lv_color_hex(0xf7518f);
|
|
|
|
|
|
|
|
|
|
color_text_hero = lv_palette_lighten(LV_PALETTE_GREY, 2);
|
|
|
|
|
color_text_subtitle = lv_palette_darken(LV_PALETTE_GREY, 2);
|
|
|
|
|
color_text_subtitle = lv_palette_darken(LV_PALETTE_GREY, 1);
|
|
|
|
|
|
|
|
|
|
// init default theme
|
|
|
|
|
lv_theme_default_init(
|
|
|
|
|