Skip to main content

SubmenuButton

Struct SubmenuButton 

Source
pub struct SubmenuButton<Msg = Callback> { /* private fields */ }
Expand description

A menu: on a MenuBar, the word along the top and what drops from it; inside another menu, a row that opens a menu beside it.

Its rows are MenuItems: actions, ticked rows, rows with a shortcut shown, rules.

use frus_widgets::{MenuItem, SubmenuButton};

#[derive(Clone)]
enum Msg { New, Open, Recent(usize) }

let file: SubmenuButton<Msg> = SubmenuButton::new("File")
    .item(MenuItem::new("New", Msg::New).shortcut("Ctrl+N"))
    .item(MenuItem::new("Open…", Msg::Open))
    .divider()
    .submenu(
        SubmenuButton::new("Open recent")
            .item(MenuItem::new("notes.txt", Msg::Recent(0)))
            .item(MenuItem::new("todo.md", Msg::Recent(1))),
    );

Implementations§

Source§

impl<Msg> SubmenuButton<Msg>

Source

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

A menu called label, with nothing in it yet.

Source

pub fn item(self, item: MenuItem<Msg>) -> Self

Adds a row.

Source

pub fn submenu(self, submenu: SubmenuButton<Msg>) -> Self

Adds a row that opens submenu beside this menu.

Source

pub fn divider(self) -> Self

Adds the rule between two groups.

Source

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

Whether the menu can be opened. A disabled one is still shown, greyed.

Auto Trait Implementations§

§

impl<Msg = Callback> !RefUnwindSafe for SubmenuButton<Msg>

§

impl<Msg = Callback> !Send for SubmenuButton<Msg>

§

impl<Msg = Callback> !Sync for SubmenuButton<Msg>

§

impl<Msg = Callback> !UnwindSafe for SubmenuButton<Msg>

§

impl<Msg> Freeze for SubmenuButton<Msg>
where Vec<Entry<Msg>>: Freeze,

§

impl<Msg> Unpin for SubmenuButton<Msg>
where Vec<Entry<Msg>>: Unpin,

§

impl<Msg> UnsafeUnpin for SubmenuButton<Msg>
where Vec<Entry<Msg>>: UnsafeUnpin,

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, 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<Msg> IntoMsg<Msg> for Msg

Source§

fn defer(work: impl Fn() -> Msg + 'static) -> Msg

The message that stands for work’s result.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.