use eframe::egui;
const MONO: &[u8] = include_bytes!("../assets/fonts/DejaVuSansMono.ttf");
const SANS: &[u8] = include_bytes!("../assets/fonts/DejaVuSans.ttf");
const SYM2: &[u8] = include_bytes!("../assets/fonts/NotoSansSymbols2-Regular.ttf");
const UNIFONT_UPPER: &[u8] = include_bytes!("../assets/fonts/unifont_upper.otf");
pub fn install(ctx: &egui::Context) {
let mut fonts = egui::FontDefinitions::default();
fonts
.font_data
.insert("mono".to_owned(), egui::FontData::from_static(MONO).into());
fonts
.font_data
.insert("sans_sym".to_owned(), egui::FontData::from_static(SANS).into());
fonts
.font_data
.insert("sym2".to_owned(), egui::FontData::from_static(SYM2).into());
fonts.font_data.insert(
"unifont_upper".to_owned(),
egui::FontData::from_static(UNIFONT_UPPER).into(),
);
for family in [egui::FontFamily::Proportional, egui::FontFamily::Monospace] {
let list = fonts.families.entry(family).or_default();
list.insert(0, "sym2".to_owned());
list.insert(0, "sans_sym".to_owned());
list.insert(0, "mono".to_owned());
for emoji in ["NotoEmoji-Regular", "emoji-icon-font"] {
if fonts.font_data.contains_key(emoji) && !list.iter().any(|f| f == emoji) {
list.push(emoji.to_owned());
}
}
list.push("unifont_upper".to_owned());
}
ctx.set_fonts(fonts);
}