pagebox element
This commit is contained in:
parent
3b4fc2dfea
commit
8c86bcae54
@ -281,7 +281,7 @@ void Engine::setScreen(std::shared_ptr<Screen> screen) {
|
|||||||
|
|
||||||
void Engine::setLanguage(std::string locale) {
|
void Engine::setLanguage(std::string locale) {
|
||||||
langs::setup(paths->getResources(), locale, contentPacks);
|
langs::setup(paths->getResources(), locale, contentPacks);
|
||||||
menus::create_menus(this);
|
gui->getMenu()->setPageLoader(menus::create_page_loader(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
gui::GUI* Engine::getGUI() {
|
gui::GUI* Engine::getGUI() {
|
||||||
|
|||||||
@ -31,9 +31,8 @@ void menus::create_version_label(Engine* engine) {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
void menus::create_menus(Engine* engine) {
|
gui::page_loader_func menus::create_page_loader(Engine* engine) {
|
||||||
auto menu = engine->getGUI()->getMenu();
|
return [=](auto name) {
|
||||||
menu->setPageLoader([=](auto name) {
|
|
||||||
auto file = engine->getResPaths()->find("layouts/pages/"+name+".xml");
|
auto file = engine->getResPaths()->find("layouts/pages/"+name+".xml");
|
||||||
auto fullname = "core:pages/"+name;
|
auto fullname = "core:pages/"+name;
|
||||||
|
|
||||||
@ -41,7 +40,7 @@ void menus::create_menus(Engine* engine) {
|
|||||||
engine->getAssets()->store(document, fullname);
|
engine->getAssets()->store(document, fullname);
|
||||||
scripting::on_ui_open(document, {});
|
scripting::on_ui_open(document, {});
|
||||||
return document->getRoot();
|
return document->getRoot();
|
||||||
});
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
UiDocument* menus::show(Engine* engine, const std::string& name, std::vector<std::unique_ptr<dynamic::Value>> args) {
|
UiDocument* menus::show(Engine* engine, const std::string& name, std::vector<std::unique_ptr<dynamic::Value>> args) {
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
#ifndef FRONTEND_MENU_MENU_HPP_
|
#ifndef FRONTEND_MENU_MENU_HPP_
|
||||||
#define FRONTEND_MENU_MENU_HPP_
|
#define FRONTEND_MENU_MENU_HPP_
|
||||||
|
|
||||||
|
#include "../graphics/ui/elements/Menu.hpp"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@ -18,7 +20,7 @@ namespace menus {
|
|||||||
/// @brief Create development version label at the top-right screen corner
|
/// @brief Create development version label at the top-right screen corner
|
||||||
void create_version_label(Engine* engine);
|
void create_version_label(Engine* engine);
|
||||||
|
|
||||||
void create_menus(Engine* engine);
|
gui::page_loader_func create_page_loader(Engine* engine);
|
||||||
|
|
||||||
UiDocument* show(
|
UiDocument* show(
|
||||||
Engine* engine,
|
Engine* engine,
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "elements/Panel.hpp"
|
#include "elements/Panel.hpp"
|
||||||
#include "elements/Image.hpp"
|
#include "elements/Image.hpp"
|
||||||
|
#include "elements/Menu.hpp"
|
||||||
#include "elements/Button.hpp"
|
#include "elements/Button.hpp"
|
||||||
#include "elements/CheckBox.hpp"
|
#include "elements/CheckBox.hpp"
|
||||||
#include "elements/TextBox.hpp"
|
#include "elements/TextBox.hpp"
|
||||||
@ -9,6 +10,7 @@
|
|||||||
#include "elements/InputBindBox.hpp"
|
#include "elements/InputBindBox.hpp"
|
||||||
#include "elements/InventoryView.hpp"
|
#include "elements/InventoryView.hpp"
|
||||||
|
|
||||||
|
#include "../../frontend/menu.hpp"
|
||||||
#include "../../frontend/locale/langs.h"
|
#include "../../frontend/locale/langs.h"
|
||||||
#include "../../items/Inventory.h"
|
#include "../../items/Inventory.h"
|
||||||
#include "../../logic/scripting/scripting.h"
|
#include "../../logic/scripting/scripting.h"
|
||||||
@ -486,6 +488,15 @@ static std::shared_ptr<UINode> readInventory(UiXmlReader& reader, xml::xmlelemen
|
|||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::shared_ptr<UINode> readPageBox(UiXmlReader& reader, xml::xmlelement element) {
|
||||||
|
auto menu = std::make_shared<Menu>();
|
||||||
|
// fixme
|
||||||
|
menu->setPageLoader(menus::create_page_loader(scripting::engine));
|
||||||
|
_readContainer(reader, element, *menu);
|
||||||
|
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
|
||||||
UiXmlReader::UiXmlReader(const scriptenv& env) : env(env) {
|
UiXmlReader::UiXmlReader(const scriptenv& env) : env(env) {
|
||||||
contextStack.push("");
|
contextStack.push("");
|
||||||
add("image", readImage);
|
add("image", readImage);
|
||||||
@ -493,6 +504,7 @@ UiXmlReader::UiXmlReader(const scriptenv& env) : env(env) {
|
|||||||
add("panel", readPanel);
|
add("panel", readPanel);
|
||||||
add("button", readButton);
|
add("button", readButton);
|
||||||
add("textbox", readTextBox);
|
add("textbox", readTextBox);
|
||||||
|
add("pagebox", readPageBox);
|
||||||
add("checkbox", readCheckBox);
|
add("checkbox", readCheckBox);
|
||||||
add("trackbar", readTrackBar);
|
add("trackbar", readTrackBar);
|
||||||
add("container", readContainer);
|
add("container", readContainer);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user