pub struct TextView { /* private fields */ }Expand description
A declarative description of a run of text.
Content does not read application state in v0 — the build closure interpolates the
string and hands the finished text in. Styling is applied with the
TextView::size/TextView::color/TextView::weight/
TextView::family/TextView::italic/TextView::letter_spacing/
TextView::line_height/TextView::align builder methods, or in bulk
with TextView::style. TextView::themed_role and
TextView::themed_family instead defer the color and the font family to
the active theme, resolved at layout.
TextView::align positions each wrapped line within the layout’s
width (centre/right-aligned paragraphs, not just the block’s own
position within its parent). It applies to this static leaf only; a
live-edited TextInput’s text is always start-aligned — see
frust_text::TextEditor’s docs.
Implementations§
Source§impl TextView
impl TextView
Sourcepub fn color(self, color: Color) -> Self
pub fn color(self, color: Color) -> Self
Set the glyph fill color. Marks the color as explicitly set, so it wins over any themed default (explicit > theme > fallback).
Sourcepub fn weight(self, weight: FontWeight) -> Self
pub fn weight(self, weight: FontWeight) -> Self
Set the font weight.
Sourcepub fn family(self, family: FontFamily) -> Self
pub fn family(self, family: FontFamily) -> Self
Set the font family (or fallback stack). Marks the family as explicitly
set, so it wins over any Self::themed_family role.
Sourcepub fn letter_spacing(self, letter_spacing: f32) -> Self
pub fn letter_spacing(self, letter_spacing: f32) -> Self
Set the extra spacing between letters, in logical pixels.
Sourcepub fn line_height(self, line_height: LineHeight) -> Self
pub fn line_height(self, line_height: LineHeight) -> Self
Set the line height.
Sourcepub fn align(self, align: TextAlign) -> Self
pub fn align(self, align: TextAlign) -> Self
Set the paragraph alignment (start/center/end/left/right/justify).
Only visible once the text wraps to more than one line under a
bounded width — a single-line layout’s width already equals the
line’s own content width, so every alignment renders identically to
the default (TextAlign::Start).
Sourcepub fn style(self, style: TextStyle) -> Self
pub fn style(self, style: TextStyle) -> Self
Replace the whole style in one call. Treated as an explicit color and
family choice (the supplied style carries its own of both), so it wins
over the themed color default and any Self::themed_family role.
Sourcepub fn max_lines(self, max_lines: usize) -> Self
pub fn max_lines(self, max_lines: usize) -> Self
Cap the rendered line count. Content past the limit is handled per
Self::overflow (default TextOverflow::Clip: extra lines are
dropped, nothing else changes). 0 renders nothing.
Sourcepub fn overflow(self, overflow: TextOverflow) -> Self
pub fn overflow(self, overflow: TextOverflow) -> Self
Set how content past Self::max_lines is handled. A no-op without
max_lines set — there is nothing to overflow past.
Sourcepub fn themed_role(self, role: ThemeTextColor) -> Self
pub fn themed_role(self, role: ThemeTextColor) -> Self
Set the themed default color role used when no explicit color was set
(e.g. crate::Button labels its text ThemeTextColor::OnPrimary so it
reads against the primary-filled button).
Part of the widget-authoring toolkit (see crate::authoring): it stays
an inherent method here — an inherent impl cannot be added from another
crate — while the role enum itself is re-exported from authoring.
Sourcepub fn themed_family(self, role: ThemeTextType) -> Self
pub fn themed_family(self, role: ThemeTextType) -> Self
Resolve the font family from the active theme’s type_scale slot
role at layout — the family only; size, weight, line height and
tracking stay as this view sets them (see ThemeTextType).
Opt-in: a text without it keeps its style’s own family. An explicit
Self::family/Self::style wins regardless of call order, and an
explicit Self::color does not affect it — color and family resolve
independently. With no theme threaded in, the style’s own family is
used unchanged.
Part of the widget-authoring toolkit (see crate::authoring),
alongside Self::themed_role.
Trait Implementations§
Source§impl<State: 'static> View<State> for TextView
impl<State: 'static> View<State> for TextView
Source§type Element = TextWidget
type Element = TextWidget
Source§fn build(&self, _ctx: &mut BuildCtx<'_>) -> TextWidget
fn build(&self, _ctx: &mut BuildCtx<'_>) -> TextWidget
Source§fn rebuild(
&self,
prev: &Self,
element: &mut TextWidget,
_ctx: &mut BuildCtx<'_>,
) -> ChangeFlags
fn rebuild( &self, prev: &Self, element: &mut TextWidget, _ctx: &mut BuildCtx<'_>, ) -> ChangeFlags
prev (the previous view of the same type) against the live
element, mutating it in place and reporting what changed.