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: AlphaColor<Srgb>) -> TextView
pub fn color(self, color: AlphaColor<Srgb>) -> TextView
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) -> TextView
pub fn weight(self, weight: FontWeight) -> TextView
Set the font weight.
Sourcepub fn family(self, family: FontFamily) -> TextView
pub fn family(self, family: FontFamily) -> TextView
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) -> TextView
pub fn letter_spacing(self, letter_spacing: f32) -> TextView
Set the extra spacing between letters, in logical pixels.
Sourcepub fn line_height(self, line_height: LineHeight) -> TextView
pub fn line_height(self, line_height: LineHeight) -> TextView
Set the line height.
Sourcepub fn align(self, align: TextAlign) -> TextView
pub fn align(self, align: TextAlign) -> TextView
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) -> TextView
pub fn style(self, style: TextStyle) -> TextView
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) -> TextView
pub fn max_lines(self, max_lines: usize) -> TextView
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) -> TextView
pub fn overflow(self, overflow: TextOverflow) -> TextView
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) -> TextView
pub fn themed_role(self, role: ThemeTextColor) -> TextView
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) -> TextView
pub fn themed_family(self, role: ThemeTextType) -> TextView
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> View<State> for TextViewwhere
State: 'static,
impl<State> View<State> for TextViewwhere
State: 'static,
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: &TextView,
element: &mut TextWidget,
_ctx: &mut BuildCtx<'_>,
) -> ChangeFlags
fn rebuild( &self, prev: &TextView, 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.Auto Trait Implementations§
impl Freeze for TextView
impl RefUnwindSafe for TextView
impl Send for TextView
impl Sync for TextView
impl Unpin for TextView
impl UnsafeUnpin for TextView
impl UnwindSafe for TextView
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.