libcosmic-yoda/examples/text/src/font/fallback/windows.rs

43 lines
1.6 KiB
Rust
Raw Normal View History

use unicode_script::Script;
// Fallbacks to use after any script specific fallbacks
pub fn common_fallback() -> &'static [&'static str] {
2022-10-13 13:38:06 -06:00
//TODO: abstract style (sans/serif/monospaced)
&[
"Segoe UI",
"Segoe UI Emoji",
2022-10-13 13:58:15 -06:00
"Segoe UI Symbol",
"Segoe UI Historic",
2022-10-13 13:38:06 -06:00
//TODO: Add CJK script here for doublewides?
]
}
// Fallbacks to use per script
pub fn script_fallback(script: &Script, locale: &str) -> &'static [&'static str] {
2022-10-13 14:10:07 -06:00
//TODO: better match https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/platform/fonts/win/font_fallback_win.cc#L99
2022-10-13 13:58:15 -06:00
match script {
Script::Bengali => &["Nirmala UI"],
2022-10-13 14:10:07 -06:00
Script::Canadian_Aboriginal => &["Gadugi"],
Script::Cherokee => &["Gadugi"],
2022-10-13 13:58:15 -06:00
Script::Devanagari => &["Nirmala UI"],
Script::Gujarati => &["Nirmala UI"],
Script::Gurmukhi => &["Nirmala UI"],
2022-10-13 14:10:07 -06:00
Script::Hangul => &["Malgun Gothic"],
Script::Kannada => &["Nirmala UI"],
Script::Khmer => &["Leelawadee UI"],
Script::Lao => &["Leelawadee UI"],
Script::Malayalam => &["Nirmala UI"],
Script::Mongolian => &["Mongolian Baiti"],
Script::Myanmar => &["Myanmar Text"],
Script::Oriya => &["Nirmala UI"],
Script::Sinhala => &["Nirmala UI"],
2022-10-13 13:58:15 -06:00
Script::Tamil => &["Nirmala UI"],
Script::Telugu => &["Nirmala UI"],
Script::Thaana => &["MV Boli"],
2022-10-13 14:10:07 -06:00
Script::Thai => &["Leelawadee UI"],
Script::Tibetan => &["Microsoft Himalaya"],
Script::Yi => &["Microsoft Yi Baiti"],
2022-10-13 13:58:15 -06:00
_ => &[],
}
}