MCPcopy Create free account
hub / github.com/XorTroll/uLaunch / ReloadMenu

Method ReloadMenu

projects/uMenu/source/ul/menu/ui/ui_StartupMenuLayout.cpp:70–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

68 }
69
70 void StartupMenuLayout::ReloadMenu() {
71 this->users_menu->ClearItems();
72
73 std::vector<AccountUid> user_ids;
74 UL_RC_ASSERT(acc::ListAccounts(user_ids));
75 for(const auto &user_id: user_ids) {
76 std::string name;
77 if(R_SUCCEEDED(acc::GetAccountName(user_id, name))) {
78 auto user_item = pu::ui::elm::MenuItem::New(name);
79
80 u8 *user_icon_buf = nullptr;
81 size_t user_icon_size = 0;
82 UL_RC_ASSERT(acc::LoadAccountImage(user_id, user_icon_buf, user_icon_size));
83 auto user_icon = pu::sdl2::TextureHandle::New(pu::ui::render::LoadImageFromBuffer(user_icon_buf, user_icon_size));
84 delete[] user_icon_buf;
85 user_item->SetIcon(user_icon);
86
87 user_item->AddOnKey(std::bind(&StartupMenuLayout::user_DefaultKey, this, user_id));
88 user_item->SetColor(g_MenuApplication->GetTextColor());
89 this->users_menu->AddItem(user_item);
90 }
91 }
92
93 auto create_user_item = pu::ui::elm::MenuItem::New(GetLanguageString("startup_add_user"));
94 create_user_item->SetColor(g_MenuApplication->GetTextColor());
95 create_user_item->AddOnKey(std::bind(&StartupMenuLayout::create_DefaultKey, this));
96 this->users_menu->AddItem(create_user_item);
97
98 this->users_menu->SetSelectedIndex(0);
99 }
100
101}

Callers 1

LoadMenuMethod · 0.45

Calls 5

ListAccountsFunction · 0.85
GetAccountNameFunction · 0.85
LoadAccountImageFunction · 0.85
GetTextColorMethod · 0.80
GetLanguageStringFunction · 0.70

Tested by

no test coverage detected