cushy::context

Struct WidgetContext

source
pub struct WidgetContext<'context> { /* private fields */ }
Expand description

A context for a widget.

This type provides access to the widget hierarchy from the perspective of a specific widget.

Implementations§

source§

impl<'context> 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 const 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 const 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 const fn window(&self) -> &dyn PlatformWindow

Returns the window containing this widget.

source

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

Returns the locale for this widget.

source

pub const fn localizations(&self) -> &Localizations

Returns the localizations for this application.

source

pub const 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<'context> Deref for WidgetContext<'context>

source§

type Target = &'context mut dyn PlatformWindow

The resulting type after dereferencing.
source§

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

Dereferences the value.
source§

impl DerefMut for WidgetContext<'_>

source§

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

Mutably dereferences the value.
source§

impl LocalizationContext for WidgetContext<'_>

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 WidgetContext<'context>

§

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

§

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

§

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

§

impl<'context> Unpin for WidgetContext<'context>

§

impl<'context> !UnwindSafe for WidgetContext<'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