pub struct Shell { /* private fields */ }Implementations§
Source§impl Shell
impl Shell
pub fn new() -> Self
Sourcepub fn no_background(self) -> Self
pub fn no_background(self) -> Self
Drop the solid background fill so the window’s desktop pattern shows through the gaps between panes — the git-gui-style commit screen floats its widgets on the patterned background rather than a flat fill.
Sourcepub fn add(
self,
widget: impl Widget + 'static,
place: impl Fn(Rect) -> Rect + 'static,
) -> Self
pub fn add( self, widget: impl Widget + 'static, place: impl Fn(Rect) -> Rect + 'static, ) -> Self
Add a child positioned by place. Call order also sets the keyboard
focus order — Tab visits focusable children in the order they’re added.
Sourcepub fn add_overlay(self, widget: impl Widget + 'static) -> Self
pub fn add_overlay(self, widget: impl Widget + 'static) -> Self
Add a floating overlay (e.g. a modal dialog) over the whole shell.
Sourcepub fn focus_child(&mut self, index: usize) -> bool
pub fn focus_child(&mut self, index: usize) -> bool
Focus the child at index (a direct-child index, not a focusable-only
index), if it is focusable. Returns whether focus moved there.
Trait Implementations§
Source§impl Widget for Shell
impl Widget for Shell
Source§fn layout(&mut self, bounds: Rect)
fn layout(&mut self, bounds: Rect)
Position the widget inside the rectangle the parent has allocated. Read more
Source§fn paint(&mut self, painter: &mut Painter<'_>, theme: &Theme)
fn paint(&mut self, painter: &mut Painter<'_>, theme: &Theme)
Render the widget in the normal pass.
Source§fn paint_overlay(&mut self, painter: &mut Painter<'_>, theme: &Theme)
fn paint_overlay(&mut self, painter: &mut Painter<'_>, theme: &Theme)
Render anything that needs to float on top of every sibling — open
menu popups, tooltips, drag previews. Runs after every widget’s
regular
paint is finished. Default: no-op.Source§fn event(&mut self, event: &Event, ctx: &mut EventCtx)
fn event(&mut self, event: &Event, ctx: &mut EventCtx)
Handle a typed input event. Default: ignore.
Source§fn captures_pointer(&self) -> bool
fn captures_pointer(&self) -> bool
Internal hook for capture-on-press dispatch. Default: never captured.
Implementations like
Button override this so
pointer events keep flowing to them while a press is in progress, even
if the cursor leaves the widget’s bounds.Source§fn focusable(&self) -> bool
fn focusable(&self) -> bool
true if this widget accepts keyboard focus. The parent container
remembers the last focusable widget the user clicked, and routes
keyboard events only there.Source§fn focus_first(&mut self) -> bool
fn focus_first(&mut self) -> bool
Try to give keyboard focus to this widget or one of its descendants.
Returns
true if a focusable target was located and now holds focus. Read moreSource§fn popup_request(&self) -> Option<PopupRequest>
fn popup_request(&self) -> Option<PopupRequest>
Ask the runtime to host a popup window for this widget. Returning
Some makes the runtime open (or move) a borderless top-level
window at the indicated logical-coord rect so the popup can extend
past the main window’s edges. Container widgets propagate this from
their children. Default: no popup. Read moreSource§fn wants_ticks(&self) -> bool
fn wants_ticks(&self) -> bool
true if this widget needs periodic Event::Tick
events to drive an animation. The runtime polls this after every
dispatch and, while any widget in the tree wants ticks, fires
Tick at roughly 60 Hz. Container widgets propagate from
children. Default: no animation.Source§fn on_cancel(&mut self, _ctx: &mut EventCtx)
fn on_cancel(&mut self, _ctx: &mut EventCtx)
Called when the widget is cancelled — closed by Escape or a window’s
close button (which the runtime maps to Escape), with no child consuming
that Escape first — rather than dismissed by its own request. A hosting
Modal calls it on its content just before
tearing it down; the runtime calls it on the root widget when the main
window is closed, so a dialog used directly as the window root gets the
same hook. It does not fire when the content asked to be dismissed
itself (e.g. an OK / Cancel button calling
EventCtx::request_dismiss), since that path already chose what to
commit or revert. A dialog that previews edits live overrides this to
roll them back. Default: no-op.Source§fn set_focused(&mut self, _focused: bool)
fn set_focused(&mut self, _focused: bool)
Inform the widget that it has gained or lost keyboard focus.
Default: ignore. Editing widgets override this to show/hide their
cursor or to commit pending input.
Source§fn accepts_accelerators(&self) -> bool
fn accepts_accelerators(&self) -> bool
true if this widget should receive every keyboard event regardless
of focus. Used by menu bars so that Alt+letter accelerators reach
them even while a sibling (e.g., a text editor) holds focus.Source§fn collect_popups(&self, out: &mut Vec<PopupRequest>)
fn collect_popups(&self, out: &mut Vec<PopupRequest>)
Collect every popup this widget and its descendants currently want the
runtime to host, outermost first. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for Shell
impl !Send for Shell
impl !Sync for Shell
impl !UnwindSafe for Shell
impl Freeze for Shell
impl Unpin for Shell
impl UnsafeUnpin for Shell
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
Mutably borrows from an owned value. Read more
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>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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.Source§fn as_any(&self) -> &(dyn Any + 'static)
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.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.