This commit is contained in:
MihailRis 2024-03-19 14:33:08 +03:00
parent ed6cb6a620
commit 4b6c61ad89
6 changed files with 20 additions and 4 deletions

View File

@ -11,4 +11,3 @@
"gui/crosshair"
]
}

View File

@ -18,6 +18,7 @@ menu.Quit=Выход
menu.Continue=Продолжить
menu.Save and Quit to Menu=Сохранить и Выйти в Меню
menu.missing-content=Отсутствует Контент!
menu.Page does not exists=Страница не существует
menu.Content Error=Ошибка Контента
menu.Controls=Управление
menu.Back to Main Menu=Вернуться в Меню

View File

@ -280,6 +280,16 @@ void create_main_menu_panel(Engine* engine) {
));
}
void create_404_page(Engine* engine) {
auto menu = engine->getGUI()->getMenu();
auto panel = menus::create_page(engine, "404", 400, 0.0f, 8);
panel->add(std::make_shared<Label>(
langs::get(L"Page does not exists", L"menu"))
);
panel->add(guiutil::backButton(menu));
}
void menus::create_menus(Engine* engine) {
menus::generatorID = WorldGenerators::getDefaultGeneratorID();
create_new_world_panel(engine);
@ -287,10 +297,12 @@ void menus::create_menus(Engine* engine) {
create_languages_panel(engine);
create_main_menu_panel(engine);
create_world_generators_panel(engine);
create_404_page(engine);
}
void menus::refresh_menus(Engine* engine) {
create_main_menu_panel(engine);
create_new_world_panel(engine);
create_world_generators_panel(engine);
create_404_page(engine);
}

View File

@ -248,7 +248,7 @@ Orientation Panel::getOrientation() const {
PagesControl::PagesControl() : Container(glm::vec2(1)){
}
bool PagesControl::has(std::string name) {
bool PagesControl::has(const std::string& name) {
return pages.find(name) != pages.end();
}

View File

@ -99,7 +99,7 @@ namespace gui {
public:
PagesControl();
bool has(std::string name);
bool has(const std::string& name);
void setPage(std::string name, bool history=true);
void addPage(std::string name, std::shared_ptr<UINode> panel);
void back();

View File

@ -24,7 +24,11 @@ std::shared_ptr<Button> guiutil::gotoButton(
) {
text = langs::get(text, L"menu");
return std::make_shared<Button>(text, glm::vec4(10.f), [=](GUI* gui) {
menu->setPage(page);
if (menu->has(page)) {
menu->setPage(page);
} else {
menu->setPage("404");
}
});
}