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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
use strum_macros::EnumString; use super::Inherited; use crate::color::Color; use crate::font::{FontFamily, FontSize, FontStyle, FontWeight}; /// Controls the alignment of text in a container that is larger than the text /// itself. #[derive(Copy, Clone, Debug, Eq, PartialEq, EnumString)] pub enum TextAlign { /// Text is aligned to the left edge of the container. #[strum(serialize = "left")] Left, /// Text is aligned in the center of the container. #[strum(serialize = "center")] Center, /// Text is aligned to the right edge of the container. #[strum(serialize = "right")] Right, } /// Controls the appearance of a Text. #[derive(Copy, Clone, Debug, Default, PartialEq)] pub struct TextStyle<S = &'static str> { /// This is the color that will be used to fill the text outlines. If not /// present, the Text component will inherit the text color of its parent. /// If the parent does not have a color, the default `Color::canvastext()` /// system color will be used. Note that the concrete value of this color /// is system-dependent and can vary depending on the user's appearance mode /// (i.e. light vs. dark mode). pub color: Inherited<Color>, /// This is the font family that will be used to render the text outlines. /// If not present, the Text component will inherit its font family from its /// parent. If the parent does not have a font family, the default /// `FontFamily::Generic(GenericFontFamily::SansSerif)` will be used. Note /// that the concrete value of this font family is system-dependent and can /// vary depending on the user's preferred fonts. pub font_family: Inherited<FontFamily<S>>, /// This is the font weight that will be used to render the text outlines. /// If not present, the Text component will inherit its font weight from its /// parent. If the parent does not have a font weight, the default /// `FontWeight::Normal` (400) will be used. pub font_weight: Inherited<FontWeight>, /// This is the font style that will be used to render the text outlines. If /// not present, the Text component will inherit its font style from its /// parent. If the parent does not have a font style, the default /// `FontStyle::Normal` will be used. pub font_style: Inherited<FontStyle>, /// This is the font size that will be used to render the text. If not /// present, the Text component will inherit its font size from its parent. /// If the parent does not have a font size, the default `FontSize:Medium` /// will be used. Note that the concrete value of this font size is /// system-dependent and can vary depending on a user's preferred font size. pub font_size: Inherited<FontSize>, /// Controls the alignment of text when it is rendered to a container that /// is larger than the rendered text. pub text_align: Inherited<TextAlign>, }