cushy::context

Struct GraphicsContext

source
pub struct GraphicsContext<'context, 'clip, 'gfx, 'pass> {
    pub widget: WidgetContext<'context>,
    pub gfx: Exclusive<'context, Graphics<'clip, 'gfx, 'pass>>,
}
Expand description

A context to a function that is rendering a widget.

Fields§

§widget: WidgetContext<'context>

The context of the widget being rendered.

§gfx: Exclusive<'context, Graphics<'clip, 'gfx, 'pass>>

The graphics context clipped and offset to the area of the widget being rendered. Drawing at 0,0 will draw at the top-left pixel of the laid-out widget region.

Implementations§

source§

impl<'clip, 'gfx, 'pass> GraphicsContext<'_, 'clip, 'gfx, 'pass>

source

pub fn borrowed(&mut self) -> GraphicsContext<'_, 'clip, 'gfx, 'pass>

Returns a new instance that borrows from self.

source

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

Returns a new GraphicsContext that allows invoking graphics functions for widget.

source

pub fn set_font_family(&mut self, family: FamilyOwned)

Sets the current font family.

source

pub fn current_family_list(&mut self) -> FontFamilyList

Returns the currently set font family list.

source

pub fn find_available_font_family( &mut self, list: &FontFamilyList, ) -> Option<FamilyOwned>

Returns the first font family in list that is currently in the font system, or None if no font families match.

source

pub fn set_available_font_family(&mut self, list: &FontFamilyList)

Sets the font family to the first family in list.

source

pub fn apply_opacity(&mut self, opacity: impl Into<ZeroToOne>)

Updates self to have opacity.

This setting will be mixed with the current opacity value.

source

pub fn clipped_to( &mut self, clip: Rect<Px>, ) -> GraphicsContext<'_, '_, 'gfx, 'pass>

Returns a new graphics context that renders to the clip rectangle.

source

pub fn fill(&mut self, color: Color)

Fills the background of this widget with color, honoring the current CornerRadius setting.

If the alpha channel of color is 0, this function does nothing.

source

pub fn stroke_outline<Unit>( &mut self, color: Color, options: StrokeOptions<Unit>, )
where Unit: ScreenScale<Px = Px, Lp = Lp, UPx = UPx> + Zero,

Strokes an outline around this widget’s contents.

source

pub fn draw_focus_ring(&mut self)

Renders the default focus ring for this widget.

source

pub fn current_font_settings(&self) -> FontSettings

Returns the widget context’s current font settings.

The settings returned are from retrieving the values of these style components:

The returned settings are not necessarily what is currently applied to this graphics context. To apply these settings, consider using Self::apply_current_font_settings() or FontSettings::apply.

source

pub fn apply_current_font_settings(&mut self)

Applies the current style settings for font family, text size, font style, and font weight.

source

pub fn redraw(&mut self)

Invokes Widget::redraw() on this context’s widget.

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 GraphicsContext<'_, '_, '_, '_>

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 GraphicsContext<'context, '_, '_, '_>

source§

type Target = WidgetContext<'context>

The resulting type after dereferencing.
source§

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

Dereferences the value.
source§

impl DerefMut for GraphicsContext<'_, '_, '_, '_>

source§

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

Mutably dereferences the value.
source§

impl Drop for GraphicsContext<'_, '_, '_, '_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl LocalizationContext for GraphicsContext<'_, '_, '_, '_>

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, 'clip, 'gfx, 'pass> Freeze for GraphicsContext<'context, 'clip, 'gfx, 'pass>

§

impl<'context, 'clip, 'gfx, 'pass> !RefUnwindSafe for GraphicsContext<'context, 'clip, 'gfx, 'pass>

§

impl<'context, 'clip, 'gfx, 'pass> !Send for GraphicsContext<'context, 'clip, 'gfx, 'pass>

§

impl<'context, 'clip, 'gfx, 'pass> !Sync for GraphicsContext<'context, 'clip, 'gfx, 'pass>

§

impl<'context, 'clip, 'gfx, 'pass> Unpin for GraphicsContext<'context, 'clip, 'gfx, 'pass>

§

impl<'context, 'clip, 'gfx, 'pass> !UnwindSafe for GraphicsContext<'context, 'clip, 'gfx, 'pass>

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