impr: Nicer font registering API

This commit is contained in:
WerWolv
2025-07-28 17:50:04 +02:00
parent a40c420b70
commit 46b13b6606
4 changed files with 35 additions and 25 deletions

View File

@@ -5,17 +5,29 @@
namespace hex::fonts {
static auto s_defaultFont = ImHexApi::Fonts::Font("hex.fonts.font.default");
const ImHexApi::Fonts::Font& Default() { return s_defaultFont; }
static auto s_hexEditorFont = ImHexApi::Fonts::Font("hex.fonts.font.hex_editor");
const ImHexApi::Fonts::Font& HexEditor() { return s_hexEditorFont; }
static auto s_codeEditorFont = ImHexApi::Fonts::Font("hex.fonts.font.code_editor");
const ImHexApi::Fonts::Font& CodeEditor() { return s_codeEditorFont; }
const ImHexApi::Fonts::Font& Default() {
static auto font = ImHexApi::Fonts::Font("hex.fonts.font.default");
return font;
}
const ImHexApi::Fonts::Font& HexEditor() {
static auto font = ImHexApi::Fonts::Font("hex.fonts.font.hex_editor");
return font;
}
const ImHexApi::Fonts::Font& CodeEditor() {
static auto font = ImHexApi::Fonts::Font("hex.fonts.font.code_editor");
return font;
}
void registerFonts() {
ImHexApi::Fonts::loadFont("Blender Icons", romfs::get("fonts/blendericons.ttf").span<u8>(), { -1, -1 });
ImHexApi::Fonts::loadFont("VS Codicons", romfs::get("fonts/codicons.ttf").span<u8>(), { 0, -2 });
ImHexApi::Fonts::loadFont("Unifont", romfs::get("fonts/unifont.otf").span<u8>(), { 0, 0 }, 10);
void registerUIFonts() {
ImHexApi::Fonts::registerFont(Default());
ImHexApi::Fonts::registerFont(HexEditor());
ImHexApi::Fonts::registerFont(CodeEditor());
}
void registerMergeFonts() {
ImHexApi::Fonts::registerMergeFont("Blender Icons", romfs::get("fonts/blendericons.ttf").span<u8>(), { -1, -1 });
ImHexApi::Fonts::registerMergeFont("VS Codicons", romfs::get("fonts/codicons.ttf").span<u8>(), { 0, -2 });
ImHexApi::Fonts::registerMergeFont("Unifont", romfs::get("fonts/unifont.otf").span<u8>(), { 0, 0 }, 10);
}
}

View File

@@ -12,7 +12,8 @@
namespace hex::fonts {
void registerFonts();
void registerUIFonts();
void registerMergeFonts();
namespace loader {
bool loadFonts();
@@ -26,11 +27,8 @@ IMHEX_LIBRARY_SETUP("Fonts") {
for (auto &path : romfs::list("lang"))
hex::ContentRegistry::Language::addLocalization(nlohmann::json::parse(romfs::get(path).string()));
hex::ImHexApi::Fonts::registerFont("hex.fonts.font.default");
hex::ImHexApi::Fonts::registerFont("hex.fonts.font.hex_editor");
hex::ImHexApi::Fonts::registerFont("hex.fonts.font.code_editor");
hex::fonts::registerFonts();
hex::fonts::registerUIFonts();
hex::fonts::registerMergeFonts();
hex::EventImHexStartupFinished::subscribe([] {
hex::fonts::loader::loadFonts();