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 viewrect- The rectangular bounds of the labelchildren- Child views (typically empty for labels)text- The text content to displayalign- 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 tappedhold_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
impl Label
pub fn new(rect: Rectangle, text: String, align: Align) -> Label
Sourcepub fn hold_event(self, event: Option<Event>) -> Label
pub fn hold_event(self, event: Option<Event>) -> Label
Set the hold event for the label.
Sourcepub fn update(&mut self, text: &str, rq: &mut RenderQueue)
pub fn update(&mut self, text: &str, rq: &mut RenderQueue)
Update the text content of the label.
Sourcepub fn set_scheme(&mut self, scheme: [Color; 3], rq: &mut RenderQueue)
pub fn set_scheme(&mut self, scheme: [Color; 3], rq: &mut RenderQueue)
Update the color scheme of the label.
Trait Implementations§
Source§impl View for Label
impl View for Label
Source§fn handle_event(
&mut self,
evt: &Event,
_hub: &Hub,
bus: &mut Bus,
_rq: &mut RenderQueue,
_context: &mut Context,
) -> bool
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)
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
fn resize( &mut self, rect: Rectangle, _hub: &Hub, _rq: &mut RenderQueue, _context: &mut Context, )
fn rect(&self) -> &Rectangle
fn rect_mut(&mut self) -> &mut Rectangle
fn children(&self) -> &Vec<Box<dyn View>>
fn children_mut(&mut self) -> &mut Vec<Box<dyn View>>
fn id(&self) -> Id
fn render_rect(&self, _rect: &Rectangle) -> Rectangle
fn child(&self, index: usize) -> &dyn View
fn child_mut(&mut self, index: usize) -> &mut dyn View
fn len(&self) -> usize
fn might_skip(&self, _evt: &Event) -> bool
fn might_rotate(&self) -> bool
fn is_background(&self) -> bool
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> 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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§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>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.