zng::focus::cmd

Trait CommandFocusExt

Source
pub trait CommandFocusExt {
    // Required methods
    fn focus_scoped(self) -> Box<dyn VarBoxed<Command>>;
    fn focus_scoped_with(
        self,
        map: impl FnMut(Option<WidgetInfo>) -> CommandScope + Send + 'static,
    ) -> Box<dyn VarBoxed<Command>>;
}
Expand description

Focus extension methods for commands.

Required Methods§

Source

fn focus_scoped(self) -> Box<dyn VarBoxed<Command>>

Gets a command variable with self scoped to the focused (non-alt) widget or app.

The scope is alt_return if is set, otherwise it is focused, otherwise the command is not scoped (app scope). This means that you can bind the command variable to a menu or toolbar button inside an alt-scope without losing track of the intended target of the command.

§Examples
let paste_in_focused_cmd = PASTE_CMD.focus_scoped();
let is_enabled = paste_in_focused_cmd.flat_map(|c| c.is_enabled());
paste_in_focused_cmd.get().notify();
Source

fn focus_scoped_with( self, map: impl FnMut(Option<WidgetInfo>) -> CommandScope + Send + 'static, ) -> Box<dyn VarBoxed<Command>>

Gets a command variable with self scoped to the output of map.

The map closure is called every time the non-alt focused widget changes, that is the alt_return or the focused. The closure input is the WidgetInfo for the focused widget and the output must be a CommandScope for the command.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§