pub enum Attribute {
FontFamily(FontFamily),
FontSize(KeyOrValue<f64>),
Weight(FontWeight),
TextColor(KeyOrValue<Color>),
Style(FontStyle),
Underline(bool),
Strikethrough(bool),
Descriptor(KeyOrValue<FontDescriptor>),
}
Expand description
Attributes that can be applied to text.
Where possible, attributes are KeyOrValue
types; this means you
can use items defined in the theme
or concrete types, where appropriate.
The easiest way to construct these attributes is via the various constructor
methods, such as Attribute::size
or Attribute::text_color
.
Examples
use druid::text::Attribute;
use druid::{theme, Color};
let font = Attribute::font_descriptor(theme::UI_FONT);
let font_size = Attribute::size(32.0);
let explicit_color = Attribute::text_color(Color::BLACK);
let theme_color = Attribute::text_color(theme::SELECTION_COLOR);
Variants§
FontFamily(FontFamily)
The font family.
FontSize(KeyOrValue<f64>)
The font size, in points.
Weight(FontWeight)
The FontWeight
.
TextColor(KeyOrValue<Color>)
The foreground color of the text.
Style(FontStyle)
The FontStyle
; either regular or italic.
Underline(bool)
Underline.
Strikethrough(bool)
Strikethrough
Descriptor(KeyOrValue<FontDescriptor>)
Implementations§
source§impl Attribute
impl Attribute
sourcepub fn size(size: impl Into<KeyOrValue<f64>>) -> Self
pub fn size(size: impl Into<KeyOrValue<f64>>) -> Self
Create a new font size attribute.
Examples found in repository?
examples/text.rs (line 91)
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
pub fn main() {
// describe the main window
let main_window = WindowDesc::new(build_root_widget())
.title(WINDOW_TITLE)
.window_size((400.0, 600.0));
let text = RichText::new(TEXT.into())
.with_attribute(0..9, Attribute::text_color(Color::rgb(1.0, 0.2, 0.1)))
.with_attribute(0..9, Attribute::size(24.0))
.with_attribute(0..9, Attribute::font_family(FontFamily::SERIF))
.with_attribute(194..239, Attribute::weight(FontWeight::BOLD))
.with_attribute(764.., Attribute::size(12.0))
.with_attribute(764.., Attribute::style(FontStyle::Italic));
// create the initial app state
let initial_state = AppState {
line_break_mode: LineBreaking::Clip,
alignment: Default::default(),
text,
};
// start the application
AppLauncher::with_window(main_window)
.log_to_console()
.launch(initial_state)
.expect("Failed to launch application");
}
sourcepub fn text_color(color: impl Into<KeyOrValue<Color>>) -> Self
pub fn text_color(color: impl Into<KeyOrValue<Color>>) -> Self
Create a new foreground color attribute.
Examples found in repository?
examples/text.rs (line 90)
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
pub fn main() {
// describe the main window
let main_window = WindowDesc::new(build_root_widget())
.title(WINDOW_TITLE)
.window_size((400.0, 600.0));
let text = RichText::new(TEXT.into())
.with_attribute(0..9, Attribute::text_color(Color::rgb(1.0, 0.2, 0.1)))
.with_attribute(0..9, Attribute::size(24.0))
.with_attribute(0..9, Attribute::font_family(FontFamily::SERIF))
.with_attribute(194..239, Attribute::weight(FontWeight::BOLD))
.with_attribute(764.., Attribute::size(12.0))
.with_attribute(764.., Attribute::style(FontStyle::Italic));
// create the initial app state
let initial_state = AppState {
line_break_mode: LineBreaking::Clip,
alignment: Default::default(),
text,
};
// start the application
AppLauncher::with_window(main_window)
.log_to_console()
.launch(initial_state)
.expect("Failed to launch application");
}
sourcepub fn font_family(family: FontFamily) -> Self
pub fn font_family(family: FontFamily) -> Self
Create a new font family attribute.
Examples found in repository?
examples/text.rs (line 92)
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
pub fn main() {
// describe the main window
let main_window = WindowDesc::new(build_root_widget())
.title(WINDOW_TITLE)
.window_size((400.0, 600.0));
let text = RichText::new(TEXT.into())
.with_attribute(0..9, Attribute::text_color(Color::rgb(1.0, 0.2, 0.1)))
.with_attribute(0..9, Attribute::size(24.0))
.with_attribute(0..9, Attribute::font_family(FontFamily::SERIF))
.with_attribute(194..239, Attribute::weight(FontWeight::BOLD))
.with_attribute(764.., Attribute::size(12.0))
.with_attribute(764.., Attribute::style(FontStyle::Italic));
// create the initial app state
let initial_state = AppState {
line_break_mode: LineBreaking::Clip,
alignment: Default::default(),
text,
};
// start the application
AppLauncher::with_window(main_window)
.log_to_console()
.launch(initial_state)
.expect("Failed to launch application");
}
sourcepub fn weight(weight: FontWeight) -> Self
pub fn weight(weight: FontWeight) -> Self
Create a new FontWeight
attribute.
Examples found in repository?
examples/text.rs (line 93)
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
pub fn main() {
// describe the main window
let main_window = WindowDesc::new(build_root_widget())
.title(WINDOW_TITLE)
.window_size((400.0, 600.0));
let text = RichText::new(TEXT.into())
.with_attribute(0..9, Attribute::text_color(Color::rgb(1.0, 0.2, 0.1)))
.with_attribute(0..9, Attribute::size(24.0))
.with_attribute(0..9, Attribute::font_family(FontFamily::SERIF))
.with_attribute(194..239, Attribute::weight(FontWeight::BOLD))
.with_attribute(764.., Attribute::size(12.0))
.with_attribute(764.., Attribute::style(FontStyle::Italic));
// create the initial app state
let initial_state = AppState {
line_break_mode: LineBreaking::Clip,
alignment: Default::default(),
text,
};
// start the application
AppLauncher::with_window(main_window)
.log_to_console()
.launch(initial_state)
.expect("Failed to launch application");
}
sourcepub fn style(style: FontStyle) -> Self
pub fn style(style: FontStyle) -> Self
Create a new FontStyle
attribute.
Examples found in repository?
examples/text.rs (line 95)
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
pub fn main() {
// describe the main window
let main_window = WindowDesc::new(build_root_widget())
.title(WINDOW_TITLE)
.window_size((400.0, 600.0));
let text = RichText::new(TEXT.into())
.with_attribute(0..9, Attribute::text_color(Color::rgb(1.0, 0.2, 0.1)))
.with_attribute(0..9, Attribute::size(24.0))
.with_attribute(0..9, Attribute::font_family(FontFamily::SERIF))
.with_attribute(194..239, Attribute::weight(FontWeight::BOLD))
.with_attribute(764.., Attribute::size(12.0))
.with_attribute(764.., Attribute::style(FontStyle::Italic));
// create the initial app state
let initial_state = AppState {
line_break_mode: LineBreaking::Clip,
alignment: Default::default(),
text,
};
// start the application
AppLauncher::with_window(main_window)
.log_to_console()
.launch(initial_state)
.expect("Failed to launch application");
}
sourcepub fn strikethrough(strikethrough: bool) -> Self
pub fn strikethrough(strikethrough: bool) -> Self
Create a new strikethrough attribute.
sourcepub fn font_descriptor(font: impl Into<KeyOrValue<FontDescriptor>>) -> Self
pub fn font_descriptor(font: impl Into<KeyOrValue<FontDescriptor>>) -> Self
Create a new FontDescriptor
attribute.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Attribute
impl Send for Attribute
impl Sync for Attribute
impl Unpin for Attribute
impl UnwindSafe for Attribute
Blanket Implementations§
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
§impl<T> RoundFrom<T> for T
impl<T> RoundFrom<T> for T
§fn round_from(x: T) -> T
fn round_from(x: T) -> T
Performs the conversion.
§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,
§fn round_into(self) -> U
fn round_into(self) -> U
Performs the conversion.