Enum druid::LifeCycle

source ·
pub enum LifeCycle {
    WidgetAdded,
    Size(Size),
    DisabledChanged(bool),
    HotChanged(bool),
    BuildFocusChain,
    FocusChanged(bool),
    ViewContextChanged(ViewContext),
    Internal(InternalLifeCycle),
}
Expand description

Application life cycle events.

Unlike Events, LifeCycle events are generated by Druid, and may occur at different times during a given pass of the event loop. The LifeCycle::WidgetAdded event, for instance, may occur when the app first launches (during the handling of Event::WindowConnected) or it may occur during update cycle, if some widget has been added there.

Similarly the LifeCycle::Size method occurs during layout, and LifeCycle::HotChanged can occur both during event (if the mouse moves over a widget) or in response to LifeCycle::ViewContextChanged, if a widget is moved away from under the mouse.

Variants§

§

WidgetAdded

Sent to a Widget when it is added to the widget tree. This should be the first message that each widget receives.

Widgets should handle this event in order to do any initial setup.

In addition to setup, this event is also used by the framework to track certain types of important widget state.

Registering children

Container widgets (widgets which use WidgetPod to manage children) must ensure that this event is forwarded to those children. The WidgetPod itself will handle registering those children with the system; this is required for things like correct routing of events.

§

Size(Size)

Called when the Size of the widget changes.

This will be called after Widget::layout, if the Size returned by the widget differs from its previous size.

§

DisabledChanged(bool)

Called when the Disabled state of the widgets is changed.

To check if a widget is disabled, see is_disabled.

To change a widget’s disabled state, see set_disabled.

§

HotChanged(bool)

Called when the “hot” status changes.

This will always be called before the event that triggered it; that is, when the mouse moves over a widget, that widget will receive LifeCycle::HotChanged before it receives Event::MouseMove.

See is_hot for discussion about the hot status.

§

BuildFocusChain

This is called when the widget-tree changes and Druid wants to rebuild the Focus-chain.

It is the only place from which register_for_focus should be called. By doing so the widget can get focused by other widgets using focus_next or focus_prev.

§

FocusChanged(bool)

Called when the focus status changes.

This will always be called immediately after a new widget gains focus. The newly focused widget will receive this with true and the widget that lost focus will receive this with false.

See EventCtx::is_focused for more information about focus.

§

ViewContextChanged(ViewContext)

Called when the ViewContext of this widget changed.

See view_context_changed on how and when to request this event.

§

Internal(InternalLifeCycle)

Internal Druid lifecycle event.

This should always be passed down to descendant WidgetPods.

Implementations§

source§

impl LifeCycle

source

pub fn should_propagate_to_hidden(&self) -> bool

Whether this event should be sent to widgets which are currently not visible and not accessible.

If a widget changes which children are hidden it must call children_changed. For a more detailed explanation of the hidden state, see Event::should_propagate_to_hidden.

source

pub fn ignore_hot(&self, ignore: bool) -> Self

Returns an event for a widget which maybe is overlapped by another widget.

When ignore is set to true the widget will set its hot state to false even if the cursor is inside its bounds.

Trait Implementations§

source§

impl Clone for LifeCycle

source§

fn clone(&self) -> LifeCycle

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LifeCycle

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> RoundFrom<T> for T

§

fn round_from(x: T) -> T

Performs the conversion.
§

impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,

§

fn round_into(self) -> U

Performs the conversion.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more