PopupMenuItem

Enum PopupMenuItem 

Source
pub enum PopupMenuItem {
    Separator,
    Label(SharedString),
    Item {
        icon: Option<Icon>,
        label: SharedString,
        disabled: bool,
        is_link: bool,
        action: Option<Box<dyn Action>>,
        handler: Option<Rc<dyn Fn(&ClickEvent, &mut Window, &mut App)>>,
    },
    ElementItem {
        icon: Option<Icon>,
        disabled: bool,
        action: Option<Box<dyn Action>>,
        render: Box<dyn Fn(&mut Window, &mut App) -> AnyElement + 'static>,
        handler: Option<Rc<dyn Fn(&ClickEvent, &mut Window, &mut App)>>,
    },
    Submenu {
        icon: Option<Icon>,
        label: SharedString,
        disabled: bool,
        menu: Entity<PopupMenu>,
    },
}
Expand description

An menu item in a popup menu.

Variants§

§

Separator

A menu separator item.

§

Label(SharedString)

A non-interactive label item.

§

Item

A standard menu item.

Fields

§icon: Option<Icon>
§disabled: bool
§is_link: bool
§action: Option<Box<dyn Action>>
§handler: Option<Rc<dyn Fn(&ClickEvent, &mut Window, &mut App)>>
§

ElementItem

A menu item with custom element render.

Fields

§icon: Option<Icon>
§disabled: bool
§action: Option<Box<dyn Action>>
§render: Box<dyn Fn(&mut Window, &mut App) -> AnyElement + 'static>
§handler: Option<Rc<dyn Fn(&ClickEvent, &mut Window, &mut App)>>
§

Submenu

A submenu item that opens another popup menu.

NOTE: This is only supported when the parent menu is not scrollable.

Fields

§icon: Option<Icon>
§disabled: bool

Implementations§

Source§

impl PopupMenuItem

Source

pub fn new(label: impl Into<SharedString>) -> Self

Create a new menu item with the given label.

Source

pub fn element<F, E>(builder: F) -> Self
where F: Fn(&mut Window, &mut App) -> E + 'static, E: IntoElement,

Create a new menu item with custom element render.

Source

pub fn submenu(label: impl Into<SharedString>, menu: Entity<PopupMenu>) -> Self

Create a new submenu item that opens another popup menu.

Source

pub fn separator() -> Self

Create a separator menu item.

Source

pub fn label(label: impl Into<SharedString>) -> Self

Creates a label menu item.

Source

pub fn icon(self, icon: impl Into<Icon>) -> Self

Set the icon for the menu item.

Only works for PopupMenuItem::Item, PopupMenuItem::ElementItem and PopupMenuItem::Submenu.

Source

pub fn action(self, action: Box<dyn Action>) -> Self

Set the action for the menu item.

Only works for PopupMenuItem::Item and PopupMenuItem::ElementItem.

Source

pub fn disabled(self, disabled: bool) -> Self

Set the disabled state for the menu item.

Only works for PopupMenuItem::Item, PopupMenuItem::ElementItem and PopupMenuItem::Submenu.

Source

pub fn checked(self, checked: bool) -> Self

Set checked state for the menu item by adding or removing check icon.

If true, will set the icon to check icon, otherwise remove the icon.

Source

pub fn on_click<F>(self, handler: F) -> Self
where F: Fn(&ClickEvent, &mut Window, &mut App) + 'static,

Add a click handler for the menu item.

Only works for PopupMenuItem::Item and PopupMenuItem::ElementItem.

Create a link menu item.

Trait Implementations§

Source§

impl FluentBuilder for PopupMenuItem

Source§

fn map<U>(self, f: impl FnOnce(Self) -> U) -> U
where Self: Sized,

Imperatively modify self with the given closure.
Source§

fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Self
where Self: Sized,

Conditionally modify self with the given closure.
Source§

fn when_else( self, condition: bool, then: impl FnOnce(Self) -> Self, else_fn: impl FnOnce(Self) -> Self, ) -> Self
where Self: Sized,

Conditionally modify self with the given closure.
Source§

fn when_some<T>( self, option: Option<T>, then: impl FnOnce(Self, T) -> Self, ) -> Self
where Self: Sized,

Conditionally unwrap and modify self with the given closure, if the given option is Some.
Source§

fn when_none<T>( self, option: &Option<T>, then: impl FnOnce(Self) -> Self, ) -> Self
where Self: Sized,

Conditionally unwrap and modify self with the given closure, if the given option is None.

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> Downcast for T
where T: Any,

Source§

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

Convert 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>

Convert 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)

Convert &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)

Convert &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.

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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

impl<T> ErasedDestructor for T
where T: 'static,