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§
sourcefn focus_scoped(self) -> Box<dyn VarBoxed<Command>>
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();
sourcefn focus_scoped_with(
self,
map: impl FnMut(Option<WidgetInfo>) -> CommandScope + Send + 'static,
) -> Box<dyn VarBoxed<Command>>
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.
Object Safety§
This trait is not object safe.