pub struct MenuManager { /* private fields */ }Expand description
Manages the native menu system
Implementations§
Source§impl MenuManager
impl MenuManager
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Create a new menu manager with the default menu structure
The structure comes from model::platform_menu_model; this function
only turns it into muda objects and records the id → action mapping.
Sourcepub fn init_global(&self) -> Result<()>
pub fn init_global(&self) -> Result<()>
Initialize the global menu system (macOS only).
On macOS this attaches the menu to NSApp (the global application object), replacing winit’s default menu. This should be called as early as possible — before any blocking GPU initialization — so that our custom accelerators (Cmd+, for Settings, Cmd+Q for graceful Quit) are active immediately.
On other platforms this is a no-op; use Self::init_for_window to attach
per-window menu bars.
Sourcepub fn init_for_window(&self, window: &Arc<Window>) -> Result<()>
pub fn init_for_window(&self, window: &Arc<Window>) -> Result<()>
Initialize the menu for a window
On macOS, this initializes the global application menu (only needs to be called once). On Windows/Linux, this attaches a menu bar to the specific window.
Sourcepub fn poll_events(&self) -> impl Iterator<Item = MenuAction> + '_
pub fn poll_events(&self) -> impl Iterator<Item = MenuAction> + '_
Poll for menu events and return any triggered actions
Sourcepub fn update_profiles(&mut self, profiles: &[&Profile])
pub fn update_profiles(&mut self, profiles: &[&Profile])
Update the profiles submenu with the current list of profiles
This should be called whenever profiles are loaded or modified.
Sourcepub fn update_profiles_from_manager(&mut self, manager: &ProfileManager)
pub fn update_profiles_from_manager(&mut self, manager: &ProfileManager)
Update profiles from a ProfileManager (convenience method)
Auto Trait Implementations§
impl !RefUnwindSafe for MenuManager
impl !Send for MenuManager
impl !Sync for MenuManager
impl !UnwindSafe for MenuManager
impl Freeze for MenuManager
impl Unpin for MenuManager
impl UnsafeUnpin for MenuManager
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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>. 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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
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.Source§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.impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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