Skip to main content

Submenu

Struct Submenu 

pub struct Submenu { /* private fields */ }
Available on crate feature tray only.
Expand description

A menu that can be added to a Menu or another Submenu.

Implementations§

§

impl Submenu

pub fn new<S>(text: S, enabled: bool) -> Submenu
where S: AsRef<str>,

Create a new submenu.

  • text could optionally contain an & before a character to assign this character as the mnemonic for this submenu. To display a & without assigning a mnemenonic, use &&.

pub fn with_id<I, S>(id: I, text: S, enabled: bool) -> Submenu
where I: Into<MenuId>, S: AsRef<str>,

Create a new submenu with the specified id.

  • text could optionally contain an & before a character to assign this character as the mnemonic for this submenu. To display a & without assigning a mnemenonic, use &&.

pub fn with_items<S>( text: S, enabled: bool, items: &[&dyn IsMenuItem], ) -> Result<Submenu, Error>
where S: AsRef<str>,

Creates a new submenu with given items. It calls Submenu::new and Submenu::append_items internally.

pub fn with_id_and_items<I, S>( id: I, text: S, enabled: bool, items: &[&dyn IsMenuItem], ) -> Result<Submenu, Error>
where I: Into<MenuId>, S: AsRef<str>,

Creates a new submenu with the specified id and given items. It calls Submenu::new and Submenu::append_items internally.

pub fn id(&self) -> &MenuId

Returns a unique identifier associated with this submenu.

pub fn append(&self, item: &dyn IsMenuItem) -> Result<(), Error>

Add a menu item to the end of this menu.

pub fn append_items(&self, items: &[&dyn IsMenuItem]) -> Result<(), Error>

Add menu items to the end of this submenu. It calls Submenu::append in a loop.

pub fn prepend(&self, item: &dyn IsMenuItem) -> Result<(), Error>

Add a menu item to the beginning of this submenu.

pub fn prepend_items(&self, items: &[&dyn IsMenuItem]) -> Result<(), Error>

Add menu items to the beginning of this submenu. It calls Menu::prepend on the first element and passes the rest to Menu::insert_items with position of 1.

pub fn insert( &self, item: &dyn IsMenuItem, position: usize, ) -> Result<(), Error>

Insert a menu item at the specified postion in the submenu.

pub fn insert_items( &self, items: &[&dyn IsMenuItem], position: usize, ) -> Result<(), Error>

Insert menu items at the specified postion in the submenu.

pub fn remove(&self, item: &dyn IsMenuItem) -> Result<(), Error>

Remove a menu item from this submenu.

pub fn remove_at(&self, position: usize) -> Option<MenuItemKind>

Remove the menu item at the specified position from this submenu and returns it.

pub fn items(&self) -> Vec<MenuItemKind>

Returns a list of menu items that has been added to this submenu.

pub fn text(&self) -> String

Get the text for this submenu.

pub fn set_text<S>(&self, text: S)
where S: AsRef<str>,

Set the text for this submenu. text could optionally contain an & before a character to assign this character as the mnemonic for this submenu. To display a & without assigning a mnemenonic, use &&.

pub fn is_enabled(&self) -> bool

Get whether this submenu is enabled or not.

pub fn set_enabled(&self, enabled: bool)

Enable or disable this submenu.

pub fn set_as_windows_menu_for_nsapp(&self)

Available on macOS only.

Set this submenu as the Window menu for the application on macOS. This will cause macOS to automatically add window-switching items and certain other items to the menu.

Must be called after adding this submenu to Menu and after calling Menu::init_for_nsapp on that menu.

§Note

Because a Submenu can be added multiple times to the same Menu this method will set the first instance of this submenu as the Window menu for the application.

It is not recommended to add the same submenu multiple times to the same menu, but if you do, be aware of this behavior.

pub fn set_as_help_menu_for_nsapp(&self)

Available on macOS only.

Set this submenu as the Help menu for the application on macOS. This will cause macOS to automatically add a search box to the menu.

Must be called after adding this submenu to Menu and after calling Menu::init_for_nsapp on that menu.

If no menu is set as the Help menu, macOS will automatically use any menu which has a title matching the localized word “Help”.

§Note

Because a Submenu can be added multiple times to the same Menu this method will set the first instance of this submenu as the Help menu for the application.

It is not recommended to add the same submenu multiple times to the same menu, but if you do, be aware of this behavior.

pub fn into_id(self) -> MenuId

Convert this submenu into its menu ID.

pub fn set_icon(&self, icon: Option<Icon>)

Change this menu item icon or remove it.

pub fn set_native_icon(&self, _icon: Option<NativeIcon>)

Change this menu item icon to a native image or remove it.

§Platform-specific:
  • Windows / Linux: Unsupported.

Trait Implementations§

§

impl Clone for Submenu

§

fn clone(&self) -> Submenu

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl ContextMenu for Submenu

§

unsafe fn show_context_menu_for_nsview( &self, view: *const c_void, position: Option<Position>, ) -> bool

Available on macOS only.
Shows this menu as a context menu for the specified NSView. Read more
§

fn ns_menu(&self) -> *mut c_void

Available on macOS only.
Get the underlying NSMenu reserved for context menus. Read more
§

fn as_submenu(&self) -> Option<&Submenu>

Cast this context menu to a Submenu, and returns None if it wasn’t.
§

fn as_menu(&self) -> Option<&Menu>

Cast this context menu to a Menu, and returns None if it wasn’t.
§

fn as_menu_unchecked(&self) -> &Menu

Casts this context menu to a Menu, and panics if it wasn’t.
§

fn as_submenu_unchecked(&self) -> &Menu

Casts this context menu to a Submenu, and panics if it wasn’t.
§

impl IsMenuItem for Submenu

§

fn kind(&self) -> MenuItemKind

Returns a MenuItemKind associated with this item.
§

fn id(&self) -> &MenuId

Returns a unique identifier associated with this menu item.
§

fn into_id(self) -> MenuId

Convert this menu item into its menu ID.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

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

§

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

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

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

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.

§

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.

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> IntoReadable<T> for T
where T: 'static,

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
§

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

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

Source§

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