Files
github-actions[bot] 54e6124925 sunnypilot v2026.05.07-4485
version: sunnypilot v2026.001.000 (dev)
date: 2026-05-07T23:07:19
master commit: c28eb958740187620f2282023b8f1997cf90f583
2026-05-07 23:07:19 +00:00

25 lines
1.0 KiB
C++

#include "tools/jotpluggler/app.h"
#include "tools/jotpluggler/common.h"
#include <cmath>
void icon_add_font(float size, bool merge, const ImFont *base_font) {
const std::filesystem::path ttf = repo_root() / "third_party" / "bootstrap" / "bootstrap-icons.ttf";
ImGuiIO &io = ImGui::GetIO();
ImFontConfig config;
config.MergeMode = merge;
config.GlyphMinAdvanceX = size;
if (base_font != nullptr) {
ImFontBaked *baked = const_cast<ImFont *>(base_font)->GetFontBaked(size);
const float base_center = baked != nullptr ? (baked->Ascent + baked->Descent) * 0.5f : size * 0.5f;
config.GlyphOffset.y = std::round(size * 0.5f - base_center);
}
static const ImWchar ranges[] = {0xF000, 0xF8FF, 0};
io.Fonts->AddFontFromFileTTF(ttf.c_str(), size, &config, ranges);
}
bool icon_menu_item(const char *glyph, const char *label, const char *shortcut, bool selected, bool enabled) {
assert(glyph != nullptr && glyph[0] != '\0');
return ImGui::MenuItem(util::string_format("%s %s", glyph, label).c_str(), shortcut, selected, enabled);
}