cushy::context

Struct EventContext

source
pub struct EventContext<'context> {
    pub widget: WidgetContext<'context>,
    pub kludgine: &'context mut Kludgine,
}
Expand description

A context to an event function.

This type is a combination of a reference to the rendering library, [Kludgine], and a WidgetContext.

Fields§

§widget: WidgetContext<'context>

The context for the widget receiving the event.

§kludgine: &'context mut Kludgine

The rendering library’s state.

This is useful for accessing the current scale or information needed to measure and layout text.

Implementations§

source§

impl<'context> EventContext<'context>

source

pub fn for_other<'child, Widget>( &'child mut self, widget: &Widget, ) -> <Widget::Managed as MapManagedWidget<EventContext<'child>>>::Result
where Widget: ManageWidget, Widget::Managed: MapManagedWidget<EventContext<'child>>,

Returns a new EventContext with widget being referenced in the contained WidgetContext.

This function is used when one widget contains other widgets, and the parent widget needs to invoke events on a child widget. This is done by creating an EventContext pointing to the child and calling the appropriate function to invoke the event.

source

pub fn hit_test(&mut self, location: Point<Px>) -> bool

Invokes Widget::hit_test() on this context’s widget and returns the result.

source

pub fn mouse_down( &mut self, location: Point<Px>, device_id: DeviceId, button: MouseButton, ) -> EventHandling

Invokes Widget::mouse_down() on this context’s widget and returns the result.

source

pub fn mouse_drag( &mut self, location: Point<Px>, device_id: DeviceId, button: MouseButton, )

Invokes Widget::hit_test() on this context’s widget and returns the result.

source

pub fn mouse_up( &mut self, location: Option<Point<Px>>, device_id: DeviceId, button: MouseButton, )

Invokes Widget::mouse_up() on this context’s widget and returns the result.

source

pub fn keyboard_input( &mut self, device_id: DeviceId, input: KeyEvent, is_synthetic: bool, ) -> EventHandling

Invokes Widget::keyboard_input() on this context’s widget and returns the result.

source

pub fn ime(&mut self, ime: Ime) -> EventHandling

Invokes Widget::ime() on this context’s widget and returns the result.

source

pub fn mouse_wheel( &mut self, device_id: DeviceId, delta: MouseScrollDelta, phase: TouchPhase, ) -> EventHandling

Invokes Widget::mouse_wheel() on this context’s widget and returns the result.

source

pub fn advance_focus(&mut self)

Advances the focus to the next widget after this widget in the configured focus order.

To focus in the reverse order, use EventContext::return_focus().

source

pub fn return_focus(&mut self)

Returns the focus to the previous widget before this widget in the configured fous order.

To focus in the forward order, use EventContext::advance_focus().

source

pub fn root_behavior(&mut self) -> Option<(RootBehavior, WidgetInstance)>

Invokes Widget::root_behavior() on this context’s widget and returns the result.

Methods from Deref<Target = WidgetContext<'context>>§

source

pub fn borrowed(&mut self) -> WidgetContext<'_>

Returns a new instance that borrows from self.

source

pub fn for_other<'child, Widget>( &'child mut self, widget: &Widget, ) -> <Widget::Managed as MapManagedWidget<WidgetContext<'child>>>::Result
where Widget: ManageWidget, Widget::Managed: MapManagedWidget<WidgetContext<'child>>,

Returns a new context representing widget.

source

pub fn is_child_of(&self, possible_parent: &WidgetInstance) -> bool

Returns true if possible_parent is in this widget’s parent list.

source

pub fn enabled(&self) -> bool

Returns true if this widget is enabled.

source

pub fn redraw_when_changed(&self, value: &impl Trackable)

Ensures that this widget will be redrawn when value has been updated.

source

pub fn invalidate_when_changed(&self, value: &impl Trackable)

Ensures that this widget will be redrawn when value has been updated.

source

pub fn last_layout(&self) -> Option<Rect<Px>>

Returns the last layout of this widget.

source

pub fn focus(&mut self)

Sets the currently focused widget to this widget.

Widget events relating to focus changes are deferred until after the all contexts for the currently firing event are dropped.

source

pub fn blur(&mut self) -> bool

Clears focus from this widget, if it is the focused widget.

Returns true if this function resulted in the focus being changed.

Widget events relating to focus changes are deferred until after the all contexts for the currently firing event are dropped.

source

pub fn focus_is_advancing(&mut self) -> bool

Returns true if the last focus event was an advancing motion, not a returning motion.

This value is meaningless outside of focus-related events.

source

pub fn activate(&mut self) -> bool

Activates this widget, if it is not already active.

Returns true if this function resulted in the currently active widget being changed.

Widget events relating to activation changes are deferred until after the all contexts for the currently firing event are dropped.

source

pub fn deactivate(&mut self) -> bool

Deactivates this widget, if it is the currently active widget.

Returns true if this function resulted in the active widget being changed.

Widget events relating to activation changes are deferred until after the all contexts for the currently firing event are dropped.

source

pub fn active(&self) -> bool

Returns true if this widget is currently the active widget.

source

pub fn hovered(&self) -> bool

Returns true if this widget is currently hovered, even if the cursor is over a child widget.

source

pub fn primary_hover(&self) -> bool

Returns true if this widget that is directly beneath the cursor.

source

pub fn focused(&self, check_window: bool) -> bool

Returns true if this widget is currently focused for user input.

source

pub fn is_default(&self) -> bool

Returns true if this widget is the target to activate when the user triggers a default action.

See MakeWidget::into_default() for more information.

source

pub fn is_escape(&self) -> bool

Returns true if this widget is the target to activate when the user triggers an escape action.

See MakeWidget::into_escape() for more information.

source

pub fn widget(&self) -> &MountedWidget

Returns the widget this context is for.

source

pub fn attach_styles(&self, styles: impl IntoValue<Styles>)

Attaches styles to the widget hierarchy for this widget.

Style queries for children will return any values matching this collection.

source

pub fn attach_theme(&self, theme: Value<ThemePair>)

Attaches theme to the widget hierarchy for this widget.

All children nodes will access this theme in their contexts.

source

pub fn attach_theme_mode(&mut self, theme_mode: Value<ThemeMode>)

Attaches theme_mode to the widget hierarchy for this widget.

All children nodes will use this theme mode.

source

pub fn attach_locale(&self, locale: Value<LanguageIdentifier>)

Attaches locale to the widget hierarchy for this widget.

All children nodes will access this theme in their contexts.

source

pub fn get<Component: ComponentDefinition>( &self, query: &Component, ) -> Component::ComponentType

Queries the widget hierarchy for a single style component.

This function traverses up the widget hierarchy looking for the component being requested. If a matching component is found, it will be returned. Otherwise, the default value will be returned.

source

pub fn try_get<Component: ComponentDefinition>( &self, query: &Component, ) -> Option<Component::ComponentType>

Queries the widget hierarchy for a single style component.

This function traverses up the widget hierarchy looking for the component being requested. If a matching component is found, it will be returned.

source

pub fn window(&self) -> &dyn PlatformWindow

Returns the window containing this widget.

source

pub fn locale(&self) -> &Value<LanguageIdentifier>

Returns the locale for this widget.

source

pub fn localizations(&self) -> &Localizations

Returns the localizations for this application.

source

pub fn window_mut(&mut self) -> &mut dyn PlatformWindow

Returns an exclusive reference to the window containing this widget.

source

pub fn theme_pair(&self) -> &ThemePair

Returns the theme pair for the window.

source

pub fn theme(&self) -> &Theme

Returns the current theme in either light or dark mode.

source

pub fn theme_mode(&self) -> ThemeMode

Returns the currently active theme mode.

source

pub fn inverse_theme(&self) -> &Theme

Returns the opposite theme of Self::theme().

source

pub fn cache_key(&self) -> WidgetCacheKey

Returns a key that can be checked to see if a widget should invalidate caches it stores.

source

pub fn loaded_font_faces(&self, font: &LoadedFont) -> &[LoadedFontFace]

Returns a list of faces that were loaded from font, or an empty slice if no faces were loaded.

Trait Implementations§

source§

impl AsEventContext for EventContext<'_>

source§

fn as_event_context(&mut self) -> EventContext<'_>

Returns this context as an EventContext.
source§

fn push_child(&mut self, child: WidgetInstance) -> MountedWidget

Pushes a new child widget into the widget hierarchy beneathq the context’s widget.
source§

fn remove_child(&mut self, child: &MountedWidget)

Removes a widget from the hierarchy.
source§

impl<'context> Deref for EventContext<'context>

source§

type Target = WidgetContext<'context>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for EventContext<'_>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl Drop for EventContext<'_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl LocalizationContext for EventContext<'_>

source§

fn locale(&self) -> LanguageIdentifier

Returns the current locale of this context.
source§

fn localizations(&self) -> &Localizations

Returns the localizations for this context.
source§

fn invalidate_when_changed(&self, trackable: &impl Trackable)

Invalidates trackable when changed. Read more

Auto Trait Implementations§

§

impl<'context> Freeze for EventContext<'context>

§

impl<'context> !RefUnwindSafe for EventContext<'context>

§

impl<'context> !Send for EventContext<'context>

§

impl<'context> !Sync for EventContext<'context>

§

impl<'context> Unpin for EventContext<'context>

§

impl<'context> !UnwindSafe for EventContext<'context>

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
§

impl<A> Cast for A

§

fn cast<To>(self) -> To
where To: CastFrom<A>,

Casts self to the To type. This may be a lossy operation.
§

impl<A> CastFrom<A> for A

§

fn from_cast(from: A) -> A

Returns from as Self.
§

impl<A, B> CastInto<A> for B
where A: CastFrom<B>,

§

fn cast_into(self) -> A

Returns self as To.
source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: 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.
§

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.
§

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.
§

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.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromAngle<T> for T

source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
§

impl<T> Instrument for T

§

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

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

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 T
where U: From<T>,

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.

source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

source§

fn into_angle(self) -> U

Performs a conversion into T.
source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> IntoReadOnly<T> for T

source§

fn into_read_only(self) -> ReadOnly<T>

Returns self as a ReadOnly.
source§

impl<T> IntoStimulus<T> for T

source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
source§

impl<T> IntoValue<Option<T>> for T

source§

fn into_value(self) -> Value<Option<T>>

Returns this type as a Value.
source§

impl<T> IntoValue<T> for T

source§

fn into_value(self) -> Value<T>

Returns this type as a Value.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
source§

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

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

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

source§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T