Skip to main content

WidgetEvent

Enum WidgetEvent 

Source
pub enum WidgetEvent {
    None,
    Selected {
        path: Vec<usize>,
    },
    Toggled {
        path: Vec<usize>,
        expanded: bool,
    },
    Scrolled {
        offset: usize,
        direction: i32,
    },
    FilterModeChanged {
        active: bool,
        filter: String,
    },
    FilterModeExited {
        path: Vec<usize>,
    },
    MenuSelected {
        index: usize,
        action: Option<Box<dyn FnOnce() + Send>>,
    },
}
Available on crate feature widget-event only.
Expand description

Common events emitted by interactive widgets.

This enum provides a standardized way for widgets to communicate actions to the parent application, reducing boilerplate in event handling loops.

§Example

use crate::primitives::widget_event::WidgetEvent;

fn handle_widget_event(event: WidgetEvent) {
    match event {
        WidgetEvent::None => {}
        WidgetEvent::Selected { path } => println!("Selected: {:?}", path),
        WidgetEvent::Toggled { path, expanded } => println!("Toggled: {:?} = {}", path, expanded),
        WidgetEvent::Scrolled { offset, direction } => println!("Scrolled to {}", offset),
        WidgetEvent::FilterModeChanged { active, filter } => {
            println!("Filter {}: {}", if active { "on" } else { "off" }, filter);
        }
        WidgetEvent::FilterModeExited { path } => println!("Filter exited, focus: {:?}", path),
        WidgetEvent::MenuSelected { index, action: _ } => println!("Menu item {} selected", index),
    }
}

Variants§

§

None

No event occurred.

§

Selected

A node/item was selected.

Fields

§path: Vec<usize>

Path indices from root to the selected item.

§

Toggled

An expandable item was toggled (expanded/collapsed).

Fields

§path: Vec<usize>

Path indices from root to the toggled item.

§expanded: bool

Whether the item is now expanded (true) or collapsed (false).

§

Scrolled

Content was scrolled.

Fields

§offset: usize

The new scroll offset.

§direction: i32

Direction of scroll (positive = down, negative = up).

§

FilterModeChanged

Filter mode changed (entered, text changed, or exited with Esc).

Fields

§active: bool

Whether filter mode is active.

§filter: String

Current filter text.

§

FilterModeExited

Filter mode exited via Enter (focuses the selected item).

Fields

§path: Vec<usize>

Path indices of the item that was focused when filter mode was exited.

§

MenuSelected

A menu item was selected.

Fields

§index: usize

Index of the selected menu item.

§action: Option<Box<dyn FnOnce() + Send>>

Optional action to execute when the menu item is selected. The action is consumed to ensure it is only executed once.

Trait Implementations§

Source§

impl Debug for WidgetEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for WidgetEvent

Source§

fn default() -> WidgetEvent

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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