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

A context to a function that is rendering a widget.

Fields§

§widget: WidgetContext<'context, 'window>

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

source

pub fn borrowed(&mut self) -> GraphicsContext<'_, 'window, '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, 'window, 'child, 'gfx, 'pass>>>::Result
where Widget: ManageWidget, Widget::Managed: MapManagedWidget<GraphicsContext<'child, 'window, 'child, 'gfx, 'pass>>,

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

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<'_, 'window, '_, '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 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.

Panics

This function panics if the widget being drawn has no layout set (via LayoutContext::set_child_layout()).

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

source

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

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, 'window>>>::Result
where Widget: ManageWidget, Widget::Managed: MapManagedWidget<WidgetContext<'child, 'window>>,

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(&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 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) -> &RunningWindow<'window>

Returns the window containing this widget.

source

pub fn window_mut(&mut self) -> &mut RunningWindow<'window>

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

Methods from Deref<Target = RunningWindow<'window>>§

source

pub fn focused(&self) -> &Dynamic<bool>

Returns a dynamic that is updated whenever this window’s focus status changes.

source

pub fn occluded(&self) -> &Dynamic<bool>

Returns a dynamic that is updated whenever this window’s occlusion status changes.

source

pub fn request_close(&self)

Request that the window closes.

A window may disallow itself from being closed by customizing WindowBehavior::close_requested.

source

pub fn handle(&self) -> WindowHandle

Returns a handle to this window.

source

pub fn inner_size(&self) -> &Dynamic<Size<UPx>>

Returns a dynamic that is synchronized with this window’s inner size.

Whenever the window is resized, this dynamic will be updated with the new inner size. Setting a new value will request the new size from the operating system, but resize requests may be altered or ignored by the operating system.

source

pub fn clipboard_guard(&self) -> Option<MutexGuard<'_, Clipboard>>

Returns a locked mutex guard to the OS’s clipboard, if one was able to be initialized when the window opened.

Methods from Deref<Target = Window<'window, WindowCommand>>§

source

pub fn handle(&self) -> WindowHandle<WindowEvent>

Returns a handle to this window, which can be used to send WindowEvents to it.

source

pub fn app(&self) -> App<AppEvent<WindowEvent>>

Returns a handle to the application.

This is useful for opening additional windows in a multi-window application.

source

pub fn close(&mut self)

Closes this window as soon as control returns to Kludgine.

source

pub fn position(&self) -> Point<Px>

Returns the current position of the window.

source

pub fn set_position(&self, position: Point<Px>)

Sets the current position of the window.

source

pub fn inner_size(&self) -> Size<UPx>

Returns the inner size of the window.

source

pub fn winit(&self) -> &Window

Returns a reference to the underlying winit window.

source

pub fn set_inner_size(&self, inner_size: Size<UPx>)

Sets the inner size of the window.

source

pub fn focused(&self) -> bool

Returns true if the window is currently focused for keyboard input.

source

pub fn theme(&self) -> Theme

Returns the current user interface theme for the window.

source

pub fn ocluded(&self) -> bool

Returns true if the window is currenly not visible because it is completely hidden behind other windows, offcreen, or minimized.

source

pub fn title(&self) -> String

Returns the current title of the window.

source

pub fn set_title(&mut self, new_title: &str)

Sets the title of the window.

source

pub fn set_ime_allowed(&self, allowed: bool)

Sets whether IME input is allowed on the window.

source

pub fn set_ime_purpose(&self, purpose: ImePurpose)

Sets the IME purpose.

source

pub fn set_ime_cursor_area(&self, area: Rect<UPx>)

Sets the cursor area for IME input suggestions.

source

pub fn redraw_in(&mut self, duration: Duration)

Sets the window to redraw after a duration.

If the window is already set to redraw sooner, this function does nothing.

source

pub fn redraw_at(&mut self, time: Instant)

Sets the window to redraw at the provided time.

If the window is already set to redraw sooner, this function does nothing.

source

pub fn set_needs_redraw(&mut self)

Sets the window to redraw as soon as it can.

source

pub fn elapsed(&self) -> Duration

Returns the duration that has elapsed since the last frame start and the current frame start.

This value is calculated once per frame and will not update between calls within the same event.

source

pub fn last_frame_rendered_in(&self) -> Duration

Returns the duration taken between when the last frame’s redraw started and when the surface’s frame was presented.

source

pub fn cursor_position(&self) -> Option<Point<Px>>

Returns the position of the mouse cursor within this window, if the cursor is currently above the window.

source

pub fn mouse_button_pressed(&self, button: MouseButton) -> bool

Returns true if the given button is currently pressed.

source

pub fn key_pressed(&self, key: impl Into<PhysicalKey>) -> bool

Returns true if the given virtual key code is currently pressed.

source

pub fn modifiers(&self) -> Modifiers

Returns currently active modifiers.

source

pub fn set_min_inner_size(&self, min_size: Option<Size<UPx>>)

Sets the window’s minimum inner size.

source

pub fn set_max_inner_size(&self, max_size: Option<Size<UPx>>)

Sets the window’s maximum inner size.

Trait Implementations§

source§

impl<'window> AsEventContext<'window> for GraphicsContext<'_, 'window, '_, '_, '_>

source§

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

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

§

type Target = WidgetContext<'context, 'window>

The resulting type after dereferencing.
source§

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

Dereferences the value.
source§

impl<'context, 'window, 'clip, 'gfx, 'pass> DerefMut for GraphicsContext<'context, 'window, 'clip, 'gfx, 'pass>

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

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

impl<'context, 'window, 'clip, 'gfx, 'pass> !UnwindSafe for GraphicsContext<'context, 'window, '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<A> Cast for A

source§

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

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

impl<A> CastFrom<A> for A

source§

fn from_cast(from: A) -> A

Returns from as Self.
source§

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

source§

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

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

§

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>,

§

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>,

§

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>

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
§

impl<T> WasmNotSend for T
where T: Send,