feat: Added DPI awareness on Windows, added FiraCode as optional default font

This commit is contained in:
WerWolv
2024-07-05 17:39:07 +02:00
parent 9aaf6f3105
commit b652565b57
12 changed files with 644 additions and 16 deletions

View File

@@ -1,5 +1,6 @@
#include <hex/api/imhex_api.hpp>
#include <hex/api/content_registry.hpp>
#include <hex/api/event_manager.hpp>
#include <hex/api_urls.hpp>
#include <hex/api/task_manager.hpp>
@@ -98,15 +99,20 @@ namespace hex::plugin::builtin {
}
bool configureUIScale() {
int interfaceScaleSetting = int(ContentRegistry::Settings::read<float>("hex.builtin.setting.interface", "hex.builtin.setting.interface.scaling_factor", 1.0F) * 10.0F);
EventDPIChanged::subscribe([](float, float newScaling) {
int interfaceScaleSetting = int(ContentRegistry::Settings::read<float>("hex.builtin.setting.interface", "hex.builtin.setting.interface.scaling_factor", 0.0F) * 10.0F);
float interfaceScaling;
if (interfaceScaleSetting == 0)
interfaceScaling = ImHexApi::System::getNativeScale();
else
interfaceScaling = interfaceScaleSetting / 10.0F;
float interfaceScaling;
if (interfaceScaleSetting == 0)
interfaceScaling = newScaling;
else
interfaceScaling = interfaceScaleSetting / 10.0F;
ImHexApi::System::impl::setGlobalScale(interfaceScaling);
ImHexApi::System::impl::setGlobalScale(interfaceScaling);
});
const auto nativeScale = ImHexApi::System::getNativeScale();
EventDPIChanged::post(nativeScale, nativeScale);
return true;
}