From bf5eea80f6d91d798243e57cb21a28debca3c756 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Mon, 13 Jan 2025 22:04:55 +0100 Subject: [PATCH] impr: Make font size setting use points instead of pixels --- .../source/content/settings_entries.cpp | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/plugins/builtin/source/content/settings_entries.cpp b/plugins/builtin/source/content/settings_entries.cpp index 7717733bf..421f388da 100644 --- a/plugins/builtin/source/content/settings_entries.cpp +++ b/plugins/builtin/source/content/settings_entries.cpp @@ -705,6 +705,31 @@ namespace hex::plugin::builtin { } }; + class SliderPoints : public ContentRegistry::Settings::Widgets::SliderFloat { + public: + SliderPoints(float defaultValue, float min, float max) : SliderFloat(defaultValue, min, max) { } + bool draw(const std::string &name) override { + float value = pixelsToPoints(m_value); + float min = pixelsToPoints(m_min); + float max = pixelsToPoints(m_max); + + auto changed = ImGui::SliderFloat(name.c_str(), &value, min, max, "%.0f pt"); + + m_value = pointsToPixels(value); + + return changed; + } + + private: + float pixelsToPoints(float pixels) { + return pixels * (72_scaled / 96.0F); + } + + float pointsToPixels(float points) { + return points / (72_scaled / 96.0F); + } + }; + bool getDefaultBorderlessWindowMode() { bool result; @@ -918,7 +943,7 @@ namespace hex::plugin::builtin { .setEnabledCallback(customFontsEnabled); - ContentRegistry::Settings::add("hex.builtin.setting.font", "hex.builtin.setting.font.custom_font", "hex.builtin.setting.font.font_size", 13, 0, 100) + ContentRegistry::Settings::add("hex.builtin.setting.font", "hex.builtin.setting.font.custom_font", "hex.builtin.setting.font.font_size", 18, 2, 100) .requiresRestart() .setEnabledCallback(customFontSettingsEnabled); ContentRegistry::Settings::add("hex.builtin.setting.font", "hex.builtin.setting.font.custom_font", "hex.builtin.setting.font.font_bold", false)