audio settings menu
This commit is contained in:
@@ -11,7 +11,42 @@
|
||||
|
||||
using namespace gui;
|
||||
|
||||
static void create_volume_trackbar(
|
||||
std::shared_ptr<Panel> panel,
|
||||
const std::wstring& name,
|
||||
float* field
|
||||
) {
|
||||
panel->add(menus::create_label([=]() {
|
||||
return langs::get(name, L"settings")+L": " +
|
||||
std::to_wstring(int(*field*100))+L"%";
|
||||
}));
|
||||
|
||||
auto trackbar = std::make_shared<TrackBar>(0.0, 1.0, 1.0, 0.01, 5);
|
||||
trackbar->setSupplier([=]() {
|
||||
return *field;
|
||||
});
|
||||
trackbar->setConsumer([=](double value) {
|
||||
*field = value;
|
||||
});
|
||||
panel->add(trackbar);
|
||||
}
|
||||
|
||||
void create_audio_settings_panel(Engine* engine) {
|
||||
auto menu = engine->getGUI()->getMenu();
|
||||
auto panel = menus::create_page(engine, "settings-audio", 400, 0.0f, 1);
|
||||
|
||||
auto& settings = engine->getSettings().audio;
|
||||
create_volume_trackbar(panel, L"Master Volume", &settings.volumeMaster);
|
||||
create_volume_trackbar(panel, L"Regular Sounds", &settings.volumeRegular);
|
||||
create_volume_trackbar(panel, L"UI Sounds", &settings.volumeUI);
|
||||
create_volume_trackbar(panel, L"Ambient", &settings.volumeAmbient);
|
||||
create_volume_trackbar(panel, L"Music", &settings.volumeMusic);
|
||||
panel->add(guiutil::backButton(menu));
|
||||
}
|
||||
|
||||
void menus::create_settings_panel(Engine* engine) {
|
||||
create_audio_settings_panel(engine);
|
||||
|
||||
auto menu = engine->getGUI()->getMenu();
|
||||
auto panel = menus::create_page(engine, "settings", 400, 0.0f, 1);
|
||||
|
||||
@@ -125,6 +160,7 @@ void menus::create_settings_panel(Engine* engine) {
|
||||
util::str2wstr_utf8(langName),
|
||||
"languages", menu));
|
||||
|
||||
panel->add(guiutil::gotoButton(L"Audio", "settings-audio", menu));
|
||||
panel->add(guiutil::gotoButton(L"Controls", "controls", menu));
|
||||
panel->add(guiutil::backButton(menu));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user