mirror of
https://github.com/CTCaer/hekate.git
synced 2024-11-26 11:42:09 +00:00
nyx: fix missing labels in launch if a previous label was big
This commit is contained in:
parent
49943ee46f
commit
9ba867f19e
1 changed files with 30 additions and 24 deletions
|
@ -1339,8 +1339,13 @@ out_end:
|
|||
|
||||
return LV_RES_OK;
|
||||
}
|
||||
typedef struct _launch_menu_entries_t
|
||||
{
|
||||
lv_obj_t *btn[16];
|
||||
lv_obj_t *label[16];
|
||||
} launch_menu_entries_t;
|
||||
|
||||
static lv_obj_t *launch_ctxt[16];
|
||||
static launch_menu_entries_t launch_ctxt;
|
||||
static lv_obj_t *launch_bg = NULL;
|
||||
static bool launch_bg_done = false;
|
||||
|
||||
|
@ -1358,7 +1363,7 @@ static lv_res_t _win_launch_close_action(lv_obj_t * btn)
|
|||
// Cleanup icons.
|
||||
for (u32 i = 0; i < 8; i++)
|
||||
{
|
||||
lv_obj_t *btn = launch_ctxt[i * 2];
|
||||
lv_obj_t *btn = launch_ctxt.btn[i];
|
||||
lv_btn_ext_t *ext = lv_obj_get_ext_attr(btn);
|
||||
if (ext->idx)
|
||||
{
|
||||
|
@ -1549,7 +1554,7 @@ static lv_res_t _create_window_home_launch(lv_obj_t *btn)
|
|||
// Icons must be <= 192 x 192.
|
||||
// Create first Button.
|
||||
btn_boot_entry = lv_btn_create(win, NULL);
|
||||
launch_ctxt[0] = btn_boot_entry;
|
||||
launch_ctxt.btn[0] = btn_boot_entry;
|
||||
lv_obj_set_size(btn_boot_entry, 200, 200);
|
||||
lv_obj_set_pos(btn_boot_entry, launch_button_pos[0].btn_x, launch_button_pos[0].btn_y);
|
||||
lv_obj_set_opa_scale(btn_boot_entry, LV_OPA_0);
|
||||
|
@ -1560,7 +1565,7 @@ static lv_res_t _create_window_home_launch(lv_obj_t *btn)
|
|||
boot_entry_label = lv_label_create(boot_entry_lbl_cont, NULL);
|
||||
lv_obj_set_style(boot_entry_label, &hint_small_style_white);
|
||||
lv_label_set_text(boot_entry_label, "");
|
||||
launch_ctxt[1] = boot_entry_label;
|
||||
launch_ctxt.label[0] = boot_entry_label;
|
||||
|
||||
lv_cont_set_fit(boot_entry_lbl_cont, false, false);
|
||||
lv_cont_set_layout(boot_entry_lbl_cont, LV_LAYOUT_CENTER);
|
||||
|
@ -1569,16 +1574,16 @@ static lv_res_t _create_window_home_launch(lv_obj_t *btn)
|
|||
lv_obj_set_style(boot_entry_lbl_cont, &btn_label_home_transp);
|
||||
|
||||
// Create the rest of the buttons.
|
||||
for (u32 btn_idx = 2; btn_idx < 16; btn_idx += 2)
|
||||
for (u32 btn_idx = 1; btn_idx < 8; btn_idx++)
|
||||
{
|
||||
btn_boot_entry = lv_btn_create(win, btn_boot_entry);
|
||||
launch_ctxt[btn_idx] = btn_boot_entry;
|
||||
lv_obj_set_pos(btn_boot_entry, launch_button_pos[btn_idx >> 1].btn_x, launch_button_pos[btn_idx >> 1].btn_y);
|
||||
launch_ctxt.btn[btn_idx] = btn_boot_entry;
|
||||
lv_obj_set_pos(btn_boot_entry, launch_button_pos[btn_idx].btn_x, launch_button_pos[btn_idx].btn_y);
|
||||
|
||||
boot_entry_lbl_cont = lv_cont_create(win, boot_entry_lbl_cont);
|
||||
boot_entry_label = lv_label_create(boot_entry_lbl_cont, boot_entry_label);
|
||||
lv_obj_set_pos(boot_entry_lbl_cont, launch_button_pos[btn_idx >> 1].lbl_x, launch_button_pos[btn_idx >> 1].lbl_y);
|
||||
launch_ctxt[btn_idx + 1] = boot_entry_label;
|
||||
lv_obj_set_pos(boot_entry_lbl_cont, launch_button_pos[btn_idx].lbl_x, launch_button_pos[btn_idx].lbl_y);
|
||||
launch_ctxt.label[btn_idx] = boot_entry_label;
|
||||
}
|
||||
|
||||
// Create colorized icon style based on its parrent style.
|
||||
|
@ -1618,7 +1623,7 @@ ini_parsing:
|
|||
if (ini_parse_success)
|
||||
{
|
||||
// Iterate to all boot entries and load icons.
|
||||
u32 i = 1;
|
||||
u32 entry_idx = 1;
|
||||
|
||||
LIST_FOREACH_ENTRY(ini_sec_t, ini_sec, &ini_sections, link)
|
||||
{
|
||||
|
@ -1672,7 +1677,7 @@ ini_parsing:
|
|||
}
|
||||
|
||||
// Enable button.
|
||||
lv_obj_set_opa_scale(launch_ctxt[curr_btn_idx], LV_OPA_COVER);
|
||||
lv_obj_set_opa_scale(launch_ctxt.btn[curr_btn_idx], LV_OPA_COVER);
|
||||
|
||||
// Default to switch logo if no icon found at all.
|
||||
if (!bmp)
|
||||
|
@ -1686,7 +1691,7 @@ ini_parsing:
|
|||
//Set icon.
|
||||
if (bmp)
|
||||
{
|
||||
img = lv_img_create(launch_ctxt[curr_btn_idx], NULL);
|
||||
img = lv_img_create(launch_ctxt.btn[curr_btn_idx], NULL);
|
||||
|
||||
if (img_colorize)
|
||||
lv_img_set_style(img, &img_style);
|
||||
|
@ -1695,7 +1700,7 @@ ini_parsing:
|
|||
}
|
||||
|
||||
// Add button mask/radius and align icon.
|
||||
lv_obj_t *btn = lv_btn_create(launch_ctxt[curr_btn_idx], NULL);
|
||||
lv_obj_t *btn = lv_btn_create(launch_ctxt.btn[curr_btn_idx], NULL);
|
||||
lv_obj_set_size(btn, 200, 200);
|
||||
lv_btn_set_style(btn, LV_BTN_STYLE_REL, &btn_home_transp_rel);
|
||||
lv_btn_set_style(btn, LV_BTN_STYLE_PR, &btn_home_transp_pr);
|
||||
|
@ -1704,9 +1709,9 @@ ini_parsing:
|
|||
|
||||
// Set autoboot index.
|
||||
ext = lv_obj_get_ext_attr(btn);
|
||||
ext->idx = i;
|
||||
ext = lv_obj_get_ext_attr(launch_ctxt[curr_btn_idx]); // Redundancy.
|
||||
ext->idx = i;
|
||||
ext->idx = entry_idx;
|
||||
ext = lv_obj_get_ext_attr(launch_ctxt.btn[curr_btn_idx]); // Redundancy.
|
||||
ext->idx = entry_idx;
|
||||
|
||||
// Set action.
|
||||
if (!more_cfg)
|
||||
|
@ -1715,26 +1720,27 @@ ini_parsing:
|
|||
lv_btn_set_action(btn, LV_BTN_ACTION_CLICK, _launch_more_cfg_action);
|
||||
|
||||
// Set button's label text.
|
||||
lv_label_set_text(launch_ctxt[curr_btn_idx + 1], ini_sec->name);
|
||||
lv_obj_set_opa_scale(launch_ctxt[curr_btn_idx + 1], LV_OPA_COVER);
|
||||
lv_label_set_text(launch_ctxt.label[curr_btn_idx], ini_sec->name);
|
||||
lv_obj_set_opa_scale(launch_ctxt.label[curr_btn_idx], LV_OPA_COVER);
|
||||
|
||||
// Set rolling text if name is big.
|
||||
if (strlen(ini_sec->name) > 22)
|
||||
lv_label_set_long_mode(boot_entry_label, LV_LABEL_LONG_ROLL);
|
||||
lv_label_set_long_mode(launch_ctxt.label[curr_btn_idx], LV_LABEL_LONG_ROLL);
|
||||
|
||||
i++;
|
||||
curr_btn_idx += 2;
|
||||
entry_idx++;
|
||||
curr_btn_idx++;
|
||||
|
||||
if (curr_btn_idx >= (max_entries * 2))
|
||||
// Check if we exceed max buttons.
|
||||
if (curr_btn_idx >= max_entries)
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Reiterate the loop with more cfgs if combined.
|
||||
if (combined_cfg && (curr_btn_idx < 16) && !more_cfg)
|
||||
if (combined_cfg && (curr_btn_idx < 8) && !more_cfg)
|
||||
goto ini_parsing;
|
||||
}
|
||||
|
||||
if (curr_btn_idx < 2)
|
||||
if (curr_btn_idx < 1)
|
||||
no_boot_entries = true;
|
||||
|
||||
sd_unmount();
|
||||
|
|
Loading…
Reference in a new issue