pub struct TextSpec {Show 18 fields
pub content: String,
pub size_px: f32,
pub color: AlphaColor<Srgb>,
pub alignment: Alignment,
pub italic: bool,
pub weight: f32,
pub max_lines: Option<usize>,
pub ellipsis: bool,
pub font_family: Option<String>,
pub line_height: f32,
pub runs: Option<Vec<(usize, usize, AlphaColor<Srgb>)>>,
pub underline: bool,
pub strikethrough: bool,
pub spans: Option<Vec<TextSpan>>,
pub letter_spacing: f32,
pub word_spacing: f32,
pub no_wrap: bool,
pub overflow_wrap: bool,
}Expand description
Texto a pintar dentro de un nodo. Alineación por defecto Center
(horizontal y vertical), apta para labels de botón. Para layouts tipo
editor o párrafo, usar .text_aligned(...) con Alignment::Start.
Fields§
§content: String§size_px: f32§color: AlphaColor<Srgb>§alignment: Alignment§italic: booltrue = forzar variante italic en la fuente activa. Default false.
weight: f32Peso de fuente CSS: 400 = normal, 700 = bold. parley elige la variante más cercana de la familia activa (o la sintetiza). Se usa tanto al medir como al pintar, así medida y dibujo coinciden. Default 400.
max_lines: Option<usize>Límite de líneas (CSS -webkit-line-clamp / Flutter maxLines). None
= sin límite (envuelve libre). Cuando el texto excede, se trunca: con
Self::ellipsis la última línea termina en …, sin él se corta seco.
Afecta medida (taffy reserva el alto de N líneas) y pintado.
ellipsis: boolSi true y max_lines trunca, la última línea visible termina en ….
Sin efecto si max_lines es None. Default false.
font_family: Option<String>CSS-style font-family string (acepta lista con fallbacks). None
= la fuente default de parley.
line_height: f32Múltiplo de interlínea (line-height / font-size). 1.2 es el
default que usaban todos los callers; puriy lo sobreescribe con el
valor computado de CSS. Se usa tanto al medir (para que taffy
reserve el alto correcto) como al pintar, así medida y dibujo
coinciden.
runs: Option<Vec<(usize, usize, AlphaColor<Srgb>)>>Colores por rango de bytes sobre content, para texto multicolor
(syntax highlighting) en una sola pasada de shaping. None = color
uniforme (color). Cuando es Some, el runtime usa
Typesetter::layout_runs + draw_layout_runs, y color actúa como
color por defecto de lo no cubierto por ningún run.
underline: boolSubrayado activo. El runtime pinta la línea bajo la línea base usando
las métricas (underline_offset, underline_size) que parley deriva
de la fuente — así un texto a 12pt y otro a 24pt tienen un subrayado
proporcional sin que el caller calcule nada.
strikethrough: boolTachado activo. Mismo régimen que Self::underline pero sobre el
strikethrough metric — útil para listas to-do, items removidos en un
diff, precios viejos.
spans: Option<Vec<TextSpan>>Spans inline mixtos (RichText): overrides de
tamaño/peso/italic/familia/color/underline/strikethrough por rango
de bytes (parley convention). None = texto uniforme (camino
layout_clamped); Some([]) se trata como None. Cuando hay
spans, el runtime usa Typesetter::layout_spans (Layoutmax_width/wrap) + draw_layout_runs_xf; los campos del
TextSpec son defaults a nivel bloque que cada span puede
sobreescribir. Tier 2 final de PARIDAD-FLUTTER (Bloque 13).
letter_spacing: f32letter-spacing: px extra entre letras (CSS). 0 = normal. Afecta
shaping y medida. Sólo el camino uniforme (layout_clamped); el camino
de spans (RichText) lo ignora en v1.
word_spacing: f32word-spacing: px extra entre palabras (CSS). 0 = normal. Mismo
régimen que Self::letter_spacing.
no_wrap: boolwhite-space: nowrap/pre: si true, el texto no envuelve —
se shapea en una sola línea (break_all_lines(None)) sin importar el
ancho disponible, y desborda la caja (lo recorta overflow: hidden si
lo hay). Afecta medida (taffy reserva el ancho de la línea completa) y
pintado. Default false (wrap libre, comportamiento previo). Sólo el
camino uniforme (layout_clamped); el de spans (RichText) lo ignora en
v1, igual que el clamp.
overflow_wrap: booloverflow-wrap: break-word/anywhere (o word-break: break-all): si
true, una palabra más ancha que la caja se parte para que entre,
en vez de desbordar. Afecta medida (taffy puede reservar menos ancho) y
pintado. Default false (la palabra larga desborda — comportamiento
previo). Sólo el camino uniforme (layout_clamped); el de spans
(RichText) lo ignora en v1, igual que no_wrap/clamp.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TextSpec
impl RefUnwindSafe for TextSpec
impl Send for TextSpec
impl Sync for TextSpec
impl Unpin for TextSpec
impl UnsafeUnpin for TextSpec
impl UnwindSafe for TextSpec
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.