editor: added gui scaling combo box #992

This commit is contained in:
Turánszki János
2024-12-22 12:47:17 +01:00
parent 3e369a6f83
commit ce9619601b
3 changed files with 43 additions and 0 deletions
+32
View File
@@ -1190,6 +1190,33 @@ void EditorComponent::Load()
});
topmenuWnd.AddWidget(&exitButton);
guiScalingCombo.Create("GuiScaling");
guiScalingCombo.SetDropArrowEnabled(false);
guiScalingCombo.SetFixedDropWidth(60);
guiScalingCombo.SetText("");
guiScalingCombo.SetTooltip("Set the custom scaling factor for the GUI.\nNote that this is in addition to the operating system's DPI scaling for the monitor.");
guiScalingCombo.AddItem("50%", 50);
guiScalingCombo.AddItem("75%", 75);
guiScalingCombo.AddItem("100%", 100);
guiScalingCombo.AddItem("125%", 125);
guiScalingCombo.AddItem("150%", 150);
guiScalingCombo.AddItem("175%", 175);
guiScalingCombo.AddItem("200%", 200);
guiScalingCombo.AddItem("225%", 225);
guiScalingCombo.AddItem("250%", 250);
if (main->config.Has("scaling"))
{
guiScalingCombo.SetSelectedByUserdata((uint64_t)main->config.GetInt("scaling"));
}
else
{
guiScalingCombo.SetSelectedByUserdataWithoutCallback(100);
}
guiScalingCombo.OnSelect([this](wi::gui::EventArgs args) {
this->main->config.Set("scaling", (int)args.userdata);
});
GetGUI().AddWidget(&guiScalingCombo);
componentsWnd.Create(this);
GetGUI().AddWidget(&componentsWnd);
@@ -1291,6 +1318,8 @@ void EditorComponent::Update(float dt)
{
wi::profiler::range_id profrange = wi::profiler::BeginRangeCPU("Editor Update");
main->canvas.scaling = float(guiScalingCombo.GetSelectedUserdata()) / 100.0f;
if (CheckInput(EditorActions::MAKE_NEW_SCREENSHOT))
{
std::string filename = wi::helper::screenshot(main->swapChain);
@@ -5301,6 +5330,9 @@ void EditorComponent::UpdateDynamicWidgets()
paintToolButton.Update(*this, 0);
y += hei + padding;
guiScalingCombo.SetSize(XMFLOAT2(50, 18));
guiScalingCombo.SetPos(XMFLOAT2(ofs, screenH - guiScalingCombo.GetSize().y - padding));
}
void EditorComponent::SetCurrentScene(int index)