summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-02-24 20:52:10 +0100
committerLibravatar GitHub <noreply@github.com>2023-02-24 20:52:10 +0100
commit368cadd25a8b57ee5c41e45d1abe8d1dfb194c69 (patch)
tree191cb7cc7807a5fe513b3d485b2fda21d3bf0bde /core
parent573d27eb52bbfacf1b06983b4282f00eb5265bdc (diff)
parent8059c40142d601588e01c152ce1bb72a1295dde8 (diff)
downloadiced-368cadd25a8b57ee5c41e45d1abe8d1dfb194c69.tar.gz
iced-368cadd25a8b57ee5c41e45d1abe8d1dfb194c69.tar.bz2
iced-368cadd25a8b57ee5c41e45d1abe8d1dfb194c69.zip
Merge pull request #1697 from iced-rs/text-glyphon
Text shaping, font fallback, and `iced_wgpu` overhaul
Diffstat (limited to '')
-rw-r--r--core/src/font.rs55
-rw-r--r--core/src/lib.rs2
2 files changed, 39 insertions, 18 deletions
diff --git a/core/src/font.rs b/core/src/font.rs
index 3f9ad2b5..b67c08af 100644
--- a/core/src/font.rs
+++ b/core/src/font.rs
@@ -1,24 +1,45 @@
+//! Load and use fonts.
+use std::hash::Hash;
+
/// A font.
-#[derive(Debug, Clone, Copy)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Font {
- /// The default font.
- ///
- /// This is normally a font configured in a renderer or loaded from the
- /// system.
- Default,
+ /// The name of a font family of choice.
+ Name(&'static str),
+
+ /// Serif fonts represent the formal text style for a script.
+ Serif,
+
+ /// Glyphs in sans-serif fonts, as the term is used in CSS, are generally low
+ /// contrast and have stroke endings that are plain — without any flaring,
+ /// cross stroke, or other ornamentation.
+ SansSerif,
+
+ /// Glyphs in cursive fonts generally use a more informal script style, and
+ /// the result looks more like handwritten pen or brush writing than printed
+ /// letterwork.
+ Cursive,
- /// An external font.
- External {
- /// The name of the external font
- name: &'static str,
+ /// Fantasy fonts are primarily decorative or expressive fonts that contain
+ /// decorative or expressive representations of characters.
+ Fantasy,
- /// The bytes of the external font
- bytes: &'static [u8],
- },
+ /// The sole criterion of a monospace font is that all glyphs have the same
+ /// fixed width.
+ Monospace,
}
-impl Default for Font {
- fn default() -> Font {
- Font::Default
- }
+/// The weight of some text.
+#[allow(missing_docs)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+pub enum Weight {
+ Thin,
+ ExtraLight,
+ Light,
+ Normal,
+ Medium,
+ Semibold,
+ Bold,
+ ExtraBold,
+ Black,
}
diff --git a/core/src/lib.rs b/core/src/lib.rs
index d3596b4d..d7314851 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -25,6 +25,7 @@
#![forbid(unsafe_code, rust_2018_idioms)]
#![allow(clippy::inherent_to_string, clippy::type_complexity)]
pub mod alignment;
+pub mod font;
pub mod keyboard;
pub mod mouse;
pub mod time;
@@ -32,7 +33,6 @@ pub mod time;
mod background;
mod color;
mod content_fit;
-mod font;
mod length;
mod padding;
mod pixels;