1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use crate::gui::TEXT_SIZE_ICON;
use eframe::egui::{FontFamily, FontId, RichText, WidgetText};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const IMAGE_FIXATION: &[u8] = include_bytes!("images/fixation.svg");
pub const IMAGE_RUSTACEAN: &[u8] = include_bytes!("images/rustacean.svg");
pub const FONT_ICONS_BRANDS: &[u8] = include_bytes!("fonts/fa-6-brands-regular-400.otf");
pub const FONT_ICONS_REGULAR: &[u8] = include_bytes!("fonts/fa-6-free-regular-400.otf");
pub const FONT_ICONS_SOLID: &[u8] = include_bytes!("fonts/fa-6-free-solid-900.otf");
pub enum Icon {
Help,
SystemInfo,
Clipboard,
Close,
Folder,
FolderTree,
MagnifyingGlass,
}
impl Icon {
pub fn size(self, size: f32) -> RichText {
RichText::from(self).size(size)
}
}
impl From<Icon> for RichText {
fn from(icon: Icon) -> Self {
RichText::new(match icon {
Icon::Help => "\u{f059}",
Icon::SystemInfo => "\u{f05a}",
Icon::Clipboard => "\u{f328}",
Icon::Close => "\u{f00d}",
Icon::Folder => "\u{f07b}",
Icon::FolderTree => "\u{f802}",
Icon::MagnifyingGlass => "\u{f002}",
})
.font(FontId::new(
TEXT_SIZE_ICON,
FontFamily::Name("fa_free".into()),
))
}
}
impl From<Icon> for WidgetText {
fn from(icon: Icon) -> Self {
RichText::from(icon).into()
}
}