Added gui_util

This commit is contained in:
MihailRis
2023-12-07 13:18:28 +03:00
parent e3f7f7218f
commit 2055cff0be
11 changed files with 122 additions and 35 deletions
+10 -20
View File
@@ -19,6 +19,8 @@
#include "../engine.h"
#include "../settings.h"
#include "gui/gui_util.h"
using glm::vec2;
using glm::vec4;
using std::string;
@@ -29,25 +31,13 @@ using std::filesystem::u8path;
using std::filesystem::directory_iterator;
using namespace gui;
inline Button* gotoButton(wstring text, string page, PagesControl* menu) {
return (new Button(text, vec4(10.f)))->listenAction([=](GUI* gui) {
menu->set(page);
});
}
inline Button* backButton(PagesControl* menu) {
return (new Button(L"Back", vec4(10.f)))->listenAction([=](GUI* gui) {
menu->back();
});
}
Panel* create_main_menu_panel(Engine* engine, PagesControl* menu) {
EnginePaths* paths = engine->getPaths();
Panel* panel = new Panel(vec2(400, 200), vec4(5.0f), 1.0f);
panel->color(vec4(0.0f));
panel->add(gotoButton(L"New World", "new-world", menu));
panel->add(guiutil::gotoButton(L"New World", "new-world", menu));
Panel* worldsPanel = new Panel(vec2(390, 200), vec4(5.0f));
worldsPanel->color(vec4(0.1f));
@@ -75,8 +65,8 @@ Panel* create_main_menu_panel(Engine* engine, PagesControl* menu) {
}
}
panel->add(worldsPanel);
panel->add(gotoButton(L"Settings", "settings", menu));
panel->add((new Button(L"Quit", vec4(10.f)))->listenAction([](GUI*) {
panel->add(guiutil::gotoButton(L"Settings", "settings", menu));
panel->add((new Button(L"Quit", vec4(10.f)))->listenAction([](GUI* gui) {
Window::setShouldClose(true);
}));
panel->refresh();
@@ -163,7 +153,7 @@ Panel* create_new_world_panel(Engine* engine, PagesControl* menu) {
panel->add(button);
}
panel->add(backButton(menu));
panel->add(guiutil::backButton(menu));
panel->refresh();
return panel;
}
@@ -209,7 +199,7 @@ Panel* create_controls_panel(Engine* engine, PagesControl* menu) {
}
panel->add(scrollPanel);
panel->add(backButton(menu));
panel->add(guiutil::backButton(menu));
panel->refresh();
return panel;
}
@@ -323,8 +313,8 @@ Panel* create_settings_panel(Engine* engine, PagesControl* menu) {
panel->add(checkpanel);
}
panel->add(gotoButton(L"Controls", "controls", menu));
panel->add(backButton(menu));
panel->add(guiutil::gotoButton(L"Controls", "controls", menu));
panel->add(guiutil::backButton(menu));
panel->refresh();
return panel;
}
@@ -339,7 +329,7 @@ Panel* create_pause_panel(Engine* engine, PagesControl* menu) {
});
panel->add(shared_ptr<UINode>(button));
}
panel->add(gotoButton(L"Settings", "settings", menu));
panel->add(guiutil::gotoButton(L"Settings", "settings", menu));
{
Button* button = new Button(L"Save and Quit to Menu", vec4(10.f));
button->listenAction([engine](GUI*){