pub struct Notification {
id: Id,
rect: Rectangle,
children: Vec<Box<dyn View>>,
text: String,
max_width: i32,
index: u8,
view_id: ViewId,
progress: Option<u8>,
}Expand description
A notification view that displays temporary or persistent messages.
Notifications can either auto-dismiss after 4 seconds (standard notifications) or persist until manually dismissed (pinned notifications). Pinned notifications can also display an optional progress bar for long-running operations.
Notifications are positioned in a 3x2 grid at the top of the screen, alternating between left and right sides to avoid overlapping.
Fields§
§id: Id§rect: Rectangle§children: Vec<Box<dyn View>>§text: String§max_width: i32§index: u8§view_id: ViewId§progress: Option<u8>Implementations§
Source§impl Notification
impl Notification
Sourcepub fn new(
view_id: Option<ViewId>,
text: String,
pinned: bool,
hub: &Hub,
rq: &mut RenderQueue,
context: &mut Context,
) -> Notification
pub fn new( view_id: Option<ViewId>, text: String, pinned: bool, hub: &Hub, rq: &mut RenderQueue, context: &mut Context, ) -> Notification
Creates a new notification.
§Arguments
view_id- Optional ViewId for the notification. If None, generates a new one.text- The message to displaypinned- Iffalse, notification auto-dismisses after 4 seconds. Iftrue, persists until dismissed.hub- Event hub for sending close eventsrq- Render queue for scheduling display updatescontext- Application context containing fonts, display dimensions, and notification index
§Returns
A new Notification instance with progress initialized to None.
Sourcepub fn update_text(&mut self, text: String, rq: &mut RenderQueue)
pub fn update_text(&mut self, text: String, rq: &mut RenderQueue)
Updates the text content of the notification and schedules a re-render.
§Arguments
text- The new message text to displayrq- Render queue for scheduling the display update
§Note
This method does not recalculate the notification’s position or size. The text will be re-wrapped within the existing notification bounds.
Sourcepub fn update_progress(&mut self, progress: u8, rq: &mut RenderQueue)
pub fn update_progress(&mut self, progress: u8, rq: &mut RenderQueue)
Updates the progress percentage of the notification and schedules a re-render.
§Arguments
progress- Progress percentage (0-100). Values outside this range will be clamped during rendering.rq- Render queue for scheduling the display update
§Note
The progress bar is displayed as a thin horizontal line below the text.
Setting progress to None via direct field access will hide the progress bar.
Trait Implementations§
Source§impl View for Notification
impl View for Notification
fn handle_event( &mut self, evt: &Event, _hub: &Hub, _bus: &mut Bus, _rq: &mut RenderQueue, _context: &mut Context, ) -> bool
fn render(&self, fb: &mut dyn Framebuffer, _rect: Rectangle, fonts: &mut Fonts)
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 view_id(&self) -> Option<ViewId>
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
Auto Trait Implementations§
impl Freeze for Notification
impl !RefUnwindSafe for Notification
impl !Send for Notification
impl !Sync for Notification
impl Unpin for Notification
impl !UnwindSafe for Notification
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.