#include "menu.h" #include "menu_commons.h" #include "../locale/langs.h" #include "../../graphics/ui/GUI.h" #include "../../graphics/ui/gui_util.h" #include "../../engine.h" #include "../../util/stringutil.h" #include "../../window/Events.h" #include using namespace gui; static void create_controls_panel(Engine* engine) { auto menu = engine->getGUI()->getMenu(); auto panel = menus::create_page(engine, "controls", 400, 0.0f, 1); /* Camera sensitivity setting track bar */{ panel->add(menus::create_label([=]() { float s = engine->getSettings().camera.sensitivity.get(); return langs::get(L"Mouse Sensitivity", L"settings")+L": "+ util::to_wstring(s, 1); })); auto trackbar = std::make_shared(0.1, 10.0, 2.0, 0.1, 4); trackbar->setSupplier([=]() { return engine->getSettings().camera.sensitivity.get(); }); trackbar->setConsumer([=](double value) { engine->getSettings().camera.sensitivity = value; }); panel->add(trackbar); } auto scrollPanel = std::dynamic_pointer_cast(guiutil::create( "" "" )); for (auto& entry : Events::bindings){ std::string bindname = entry.first; auto subpanel = std::make_shared(glm::vec2(400, 40), glm::vec4(5.0f), 1.0f); subpanel->setColor(glm::vec4(0.0f)); subpanel->setOrientation(Orientation::horizontal); subpanel->add(std::make_shared(entry.second)); auto label = std::make_shared