[−][src]Struct druid::LifeCycleCtx
A mutable context provided to the lifecycle
method on widgets.
Certain methods on this context are only meaningful during the handling of
specific lifecycle events; for instance register_child
should only be called while handling LifeCycle::WidgetAdded
.
Implementations
impl LifeCycleCtx<'_, '_>
[src]
pub fn widget_id(&self) -> WidgetId
[src]
get the WidgetId
of the current widget.
pub fn window(&self) -> &WindowHandle
[src]
Returns a reference to the current WindowHandle
.
pub fn window_id(&self) -> WindowId
[src]
Get the WindowId
of the current window.
pub fn text(&mut self) -> &mut PietText
[src]
Get an object which can create text layouts.
impl LifeCycleCtx<'_, '_>
[src]
pub fn size(&self) -> Size
[src]
The layout size.
This is the layout size as ultimately determined by the parent container, on the previous layout pass.
Generally it will be the same as the size returned by the child widget's
layout
method.
pub fn is_hot(&self) -> bool
[src]
The "hot" (aka hover) status of a widget.
A widget is "hot" when the mouse is hovered over it. Widgets will often change their appearance as a visual indication that they will respond to mouse interaction.
The hot status is computed from the widget's layout rect. In a container hierarchy, all widgets with layout rects containing the mouse position have hot status.
Discussion: there is currently some confusion about whether a widget can be considered hot when some other widget is active (for example, when clicking to one widget and dragging to the next). The documentation should clearly state the resolution.
pub fn is_active(&self) -> bool
[src]
The active status of a widget.
Active status generally corresponds to a mouse button down. Widgets
with behavior similar to a button will call set_active
on mouse
down and then up.
When a widget is active, it gets mouse events even when the mouse is dragged away.
pub fn is_focused(&self) -> bool
[src]
The focus status of a widget.
Returns true
if this specific widget is focused.
To check if any descendants are focused use has_focus
.
Focus means that the widget receives keyboard events.
A widget can request focus using the request_focus
method.
It's also possible to register for automatic focus via register_for_focus
.
If a widget gains or loses focus it will get a LifeCycle::FocusChanged
event.
Only one widget at a time is focused. However due to the way events are routed, all ancestors of that widget will also receive keyboard events.
pub fn has_focus(&self) -> bool
[src]
The (tree) focus status of a widget.
Returns true
if either this specific widget or any one of its descendants is focused.
To check if only this specific widget is focused use is_focused
,
impl LifeCycleCtx<'_, '_>
[src]
pub fn request_paint(&mut self)
[src]
Request a paint
pass. This is equivalent to calling
request_paint_rect
for the widget's paint_rect
.
pub fn request_paint_rect(&mut self, rect: Rect)
[src]
Request a paint
pass for redrawing a rectangle, which is given
relative to our layout rectangle.
pub fn request_layout(&mut self)
[src]
Request a layout pass.
A Widget's layout
method is always called when the widget tree
changes, or the window is resized.
If your widget would like to have layout called at any other time, (such as if it would like to change the layout of children in response to some event) it must call this method.
pub fn request_anim_frame(&mut self)
[src]
Request an animation frame.
pub fn children_changed(&mut self)
[src]
Indicate that your children have changed.
Widgets must call this method after adding a new child.
pub fn set_menu<T: Any>(&mut self, menu: MenuDesc<T>)
[src]
Set the menu of the window containing the current widget.
T
must be the application's root Data
type (the type provided to AppLauncher::launch
).
impl LifeCycleCtx<'_, '_>
[src]
pub fn submit_command(&mut self, cmd: impl Into<Command>)
[src]
Submit a Command
to be run after this event is handled.
Commands are run in the order they are submitted; all commands
submitted during the handling of an event are executed before
the update
method is called; events submitted during update
are handled after painting.
Target::Auto
commands will be sent to the window containing the widget.
pub fn get_external_handle(&self) -> ExtEventSink
[src]
Returns an ExtEventSink
that can be moved between threads,
and can be used to submit commands back to the application.
pub fn request_timer(&mut self, deadline: Duration) -> TimerToken
[src]
Request a timer event.
The return value is a token, which can be used to associate the request with the event.
impl LifeCycleCtx<'_, '_>
[src]
pub fn register_child(&mut self, child_id: WidgetId)
[src]
Registers a child widget.
This should only be called in response to a LifeCycle::WidgetAdded
event.
In general, you should not need to call this method; it is handled by
the WidgetPod
.
pub fn register_for_focus(&mut self)
[src]
Register this widget to be eligile to accept focus automatically.
This should only be called in response to a LifeCycle::WidgetAdded
event.
See EventCtx::is_focused
for more information about focus.
Auto Trait Implementations
impl<'a, 'b> !RefUnwindSafe for LifeCycleCtx<'a, 'b>
[src]
impl<'a, 'b> !Send for LifeCycleCtx<'a, 'b>
[src]
impl<'a, 'b> !Sync for LifeCycleCtx<'a, 'b>
[src]
impl<'a, 'b> Unpin for LifeCycleCtx<'a, 'b> where
'b: 'a,
[src]
'b: 'a,
impl<'a, 'b> !UnwindSafe for LifeCycleCtx<'a, 'b>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> RoundFrom<T> for T
pub fn round_from(x: T) -> T
impl<T, U> RoundInto<U> for T where
U: RoundFrom<T>,
U: RoundFrom<T>,
pub fn round_into(self) -> U
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,