Label

Struct Label 

Source
pub struct Label {
    id: Id,
    rect: Rectangle,
    children: Vec<Box<dyn View>>,
    text: String,
    align: Align,
    scheme: [Color; 3],
    event: Option<Event>,
    hold_event: Option<Event>,
}
Expand description

A text label widget that displays a single line of text.

Label is a UI component that renders text with configurable alignment and color scheme. It can optionally respond to tap and hold gestures by emitting events.

§Fields

  • id - Unique identifier for this view
  • rect - The rectangular bounds of the label
  • children - Child views (typically empty for labels)
  • text - The text content to display
  • align - Horizontal alignment of the text (left, center, or right)
  • scheme - Color scheme as [background, foreground, border]
  • event - Optional event to emit when the label is tapped
  • hold_event - Optional event to emit when the label is held

Fields§

§id: Id§rect: Rectangle§children: Vec<Box<dyn View>>§text: String§align: Align§scheme: [Color; 3]§event: Option<Event>§hold_event: Option<Event>

Implementations§

Source§

impl Label

Source

pub fn new(rect: Rectangle, text: String, align: Align) -> Label

Source

pub fn event(self, event: Option<Event>) -> Label

Set the tap event for the label.

Source

pub fn hold_event(self, event: Option<Event>) -> Label

Set the hold event for the label.

Source

pub fn scheme(self, scheme: [Color; 3]) -> Label

Set the color scheme for the label.

Source

pub fn update(&mut self, text: &str, rq: &mut RenderQueue)

Update the text content of the label.

Source

pub fn set_scheme(&mut self, scheme: [Color; 3], rq: &mut RenderQueue)

Update the color scheme of the label.

Source

pub fn set_event(&mut self, event: Option<Event>)

Set the tap event for the label (mutable version).

Source

pub fn text(&self) -> &str

Get the current text of the label.

Trait Implementations§

Source§

impl View for Label

Source§

fn handle_event( &mut self, evt: &Event, _hub: &Hub, bus: &mut Bus, _rq: &mut RenderQueue, _context: &mut Context, ) -> bool

Handle events for this label.

Processes tap and hold gestures that occur within the label’s bounds. When a tap gesture is detected and the label has an associated event, that event is pushed to the bus and the event is marked as handled. Similarly, when a hold gesture is detected and the label has an associated hold event, that event is pushed to the bus.

§⚠️ Important Note

This label consumes all tap and hold gestures that occur within its bounds. Even if no event is configured, the gesture will still be marked as handled and will not propagate to other views. You must explicitly set an event using .event() or .hold_event() for gestures to be processed. If you want taps to pass through to underlying views, you should not use this label or configure appropriate event handlers.

§Arguments
  • evt - The event to handle
  • _hub - The event hub (unused)
  • bus - The event bus where events are pushed
  • _rq - The render queue (unused)
  • _context - The application context (unused)
§Returns

Returns true if the event was handled (consumed), false otherwise.

Source§

fn render(&self, fb: &mut dyn Framebuffer, _rect: Rectangle, fonts: &mut Fonts)

Render the label to the framebuffer.

Draws the label’s background rectangle and renders the text content with proper alignment and vertical centering. The text is rendered using the normal font style and the foreground color from the label’s color scheme.

§Arguments
  • fb - The framebuffer to render to
  • _rect - The clipping region (unused)
  • fonts - The font manager for text rendering
Source§

fn resize( &mut self, rect: Rectangle, _hub: &Hub, _rq: &mut RenderQueue, _context: &mut Context, )

Source§

fn rect(&self) -> &Rectangle

Source§

fn rect_mut(&mut self) -> &mut Rectangle

Source§

fn children(&self) -> &Vec<Box<dyn View>>

Source§

fn children_mut(&mut self) -> &mut Vec<Box<dyn View>>

Source§

fn id(&self) -> Id

Source§

fn render_rect(&self, _rect: &Rectangle) -> Rectangle

Source§

fn child(&self, index: usize) -> &dyn View

Source§

fn child_mut(&mut self, index: usize) -> &mut dyn View

Source§

fn len(&self) -> usize

Source§

fn might_skip(&self, _evt: &Event) -> bool

Source§

fn might_rotate(&self) -> bool

Source§

fn is_background(&self) -> bool

Source§

fn view_id(&self) -> Option<ViewId>

Auto Trait Implementations§

§

impl Freeze for Label

§

impl !RefUnwindSafe for Label

§

impl !Send for Label

§

impl !Sync for Label

§

impl Unpin for Label

§

impl !UnwindSafe for Label

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more