Struct cushy::widgets::Canvas

source ·
pub struct Canvas { /* private fields */ }
Expand description

A 2d drawable surface.

Implementations§

source§

impl Canvas

source

pub fn new<F>(render: F) -> Self
where F: for<'clip, 'gfx, 'pass, 'context> FnMut(&mut GraphicsContext<'context, 'clip, 'gfx, 'pass>) + Send + 'static,

Returns a new canvas that draws its contents by invoking render.

source

pub fn tick(self, tick: Tick) -> Self

Associates a Tick with this widget and returns self.

Trait Implementations§

source§

impl Debug for Canvas

source§

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

Formats the value using the given formatter. Read more
source§

impl Widget for Canvas

source§

fn redraw(&mut self, context: &mut GraphicsContext<'_, '_, '_, '_>)

Redraw the contents of this widget.
source§

fn layout( &mut self, available_space: Size<ConstraintLimit>, _context: &mut LayoutContext<'_, '_, '_, '_>, ) -> Size<UPx>

Layout this widget and returns the ideal size based on its contents and the available_space.
source§

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

Writes a summary of this widget into fmt. Read more
source§

fn full_control_redraw(&self) -> bool

Returns true if this widget handles all built-in style components that apply. Read more
source§

fn mounted(&mut self, context: &mut EventContext<'_>)

The widget has been mounted into a parent widget. Read more
source§

fn unmounted(&mut self, context: &mut EventContext<'_>)

The widget has been removed from its parent widget.
source§

fn hit_test( &mut self, location: Point<Px>, context: &mut EventContext<'_>, ) -> bool

Returns true if this widget should respond to mouse input at location. Read more
source§

fn hover( &mut self, location: Point<Px>, context: &mut EventContext<'_>, ) -> Option<CursorIcon>

The widget is currently has a cursor hovering it at location. Read more
source§

fn unhover(&mut self, context: &mut EventContext<'_>)

The widget is no longer being hovered. Read more
source§

fn accept_focus(&mut self, context: &mut EventContext<'_>) -> bool

This widget has been targeted to be focused. If this function returns true, the widget will be focused. If false, Cushy will continue searching for another focus target.
source§

fn focus(&mut self, context: &mut EventContext<'_>)

The widget has received focus for user input.
source§

fn advance_focus( &mut self, direction: VisualOrder, context: &mut EventContext<'_>, ) -> EventHandling

The widget should switch to the next focusable area within this widget, honoring direction in a consistent manner. Returning HANDLED will cause the search for the next focus widget stop.
source§

fn allow_blur(&mut self, context: &mut EventContext<'_>) -> bool

The widget is about to lose focus. Returning true allows the focus to switch away from this widget.
source§

fn blur(&mut self, context: &mut EventContext<'_>)

The widget is no longer focused for user input.
source§

fn activate(&mut self, context: &mut EventContext<'_>)

The widget has become the active widget.
source§

fn deactivate(&mut self, context: &mut EventContext<'_>)

The widget is no longer active.
source§

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

A mouse button event has occurred at location. Returns whether the event has been handled or not. Read more
source§

fn mouse_drag( &mut self, location: Point<Px>, device_id: DeviceId, button: MouseButton, context: &mut EventContext<'_>, )

A mouse button is being held down as the cursor is moved across the widget. Read more
source§

fn mouse_up( &mut self, location: Option<Point<Px>>, device_id: DeviceId, button: MouseButton, context: &mut EventContext<'_>, )

A mouse button is no longer being pressed. Read more
source§

fn keyboard_input( &mut self, device_id: DeviceId, input: KeyEvent, is_synthetic: bool, context: &mut EventContext<'_>, ) -> EventHandling

A keyboard event has been sent to this widget. Returns whether the event has been handled or not.
source§

fn ime(&mut self, ime: Ime, context: &mut EventContext<'_>) -> EventHandling

An input manager event has been sent to this widget. Returns whether the event has been handled or not.
source§

fn mouse_wheel( &mut self, device_id: DeviceId, delta: MouseScrollDelta, phase: TouchPhase, context: &mut EventContext<'_>, ) -> EventHandling

A mouse wheel event has been sent to this widget. Returns whether the event has been handled or not. Read more
source§

fn root_behavior( &mut self, context: &mut EventContext<'_>, ) -> Option<(RootBehavior, WidgetInstance)>

Returns a reference to a single child widget if this widget is a widget that primarily wraps a single other widget to customize its behavior.

Auto Trait Implementations§

§

impl Freeze for Canvas

§

impl !RefUnwindSafe for Canvas

§

impl Send for Canvas

§

impl !Sync for Canvas

§

impl Unpin for Canvas

§

impl !UnwindSafe for Canvas

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

impl<T> MakeWidget for T

source§

fn make_widget(self) -> WidgetInstance

Returns a new widget.
source§

fn into_window(self) -> Window

Returns a new window containing self as the root widget.
source§

fn build_standalone_window(self) -> StandaloneWindowBuilder

Returns a builder for a standalone window. Read more
source§

fn build_recorder(self) -> VirtualRecorderBuilder<Rgb8>

Returns a builder for a VirtualRecorder
source§

fn with_styles(self, styles: impl IntoValue<Styles>) -> Style
where Self: Sized,

Associates styles with this widget. Read more
source§

fn with<C: ComponentDefinition>( self, name: &C, component: impl IntoValue<C::ComponentType>, ) -> Style

Associates a style component with self.
source§

fn with_local<C: ComponentDefinition>( self, name: &C, component: impl IntoValue<C::ComponentType>, ) -> Style

Associates a style component with self, ensuring that no child widgets inherit this component.
source§

fn with_dynamic<C: ComponentDefinition>( self, name: &C, dynamic: impl IntoDynamicComponentValue, ) -> Style

Associates a style component with self, resolving its value using dynamic at runtime.
source§

fn with_local_dynamic<C: ComponentDefinition>( self, name: &C, dynamic: impl IntoDynamicComponentValue, ) -> Style

Associates a style component with self, resolving its value using dynamic at runtime. This component will not be inherited to child widgets.
source§

fn with_shortcut<F>( self, key: impl Into<ShortcutKey>, modifiers: ModifiersState, callback: F, ) -> Shortcuts
where F: FnMut(KeyEvent) -> EventHandling + Send + 'static,

Invokes callback when key is pressed while modifiers are pressed. Read more
source§

fn with_repeating_shortcut<F>( self, key: impl Into<ShortcutKey>, modifiers: ModifiersState, callback: F, ) -> Shortcuts
where F: FnMut(KeyEvent) -> EventHandling + Send + 'static,

Invokes callback when key is pressed while modifiers are pressed. If the shortcut is held, the callback will be invoked on repeat events. Read more
source§

fn h1(self) -> Style

Styles self with the largest of 6 heading styles.
source§

fn h2(self) -> Style

Styles self with the second largest of 6 heading styles.
source§

fn h3(self) -> Style

Styles self with the third largest of 6 heading styles.
source§

fn h4(self) -> Style

Styles self with the third smallest of 6 heading styles.
source§

fn h5(self) -> Style

Styles self with the second smallest of 6 heading styles.
source§

fn h6(self) -> Style

Styles self with the smallest of 6 heading styles.
source§

fn xxxx_large(self) -> Style

Styles self with the largest text size.
source§

fn xxx_large(self) -> Style

Styles self with the second largest text size.
source§

fn xx_large(self) -> Style

Styles self with the third largest text size.
source§

fn x_large(self) -> Style

Styles self with the fourth largest text size.
source§

fn large(self) -> Style

Styles self with the fifth largest text size.
source§

fn default_size(self) -> Style

Styles self with the third smallest text size.
source§

fn small(self) -> Style

Styles self with the second smallest text size.
source§

fn x_small(self) -> Style

Styles self with the smallest text size.
source§

fn hint(self) -> Style

Styles self as an informational hint message.
source§

fn with_hint(self, hint: impl MakeWidget) -> Stack

Attaches hint as an informational hint message below self. Read more
source§

fn with_next_focus( self, next_focus: impl IntoValue<Option<WidgetId>>, ) -> WidgetInstance

Sets the widget that should be focused next. Read more
source§

fn with_enabled(self, enabled: impl IntoValue<bool>) -> WidgetInstance

Sets this widget to be enabled/disabled based on enabled and returns self. Read more
source§

fn into_default(self) -> WidgetInstance

Sets this widget as a “default” widget. Read more
source§

fn into_escape(self) -> WidgetInstance

Sets this widget as an “escape” widget. Read more
source§

fn and(self, other: impl MakeWidget) -> WidgetList

Returns a collection of widgets using self and other.
source§

fn chain<W: MakeWidget>(self, others: impl IntoIterator<Item = W>) -> WidgetList

Chains self and others into a WidgetList.
source§

fn expand(self) -> Expand

Expands self to grow to fill its parent.
source§

fn expand_weighted(self, weight: u8) -> Expand

Expands self to grow to fill its parent proportionally with other weighted siblings.
source§

fn expand_horizontally(self) -> Expand

Expands self to grow to fill its parent horizontally.
source§

fn expand_vertically(self) -> Expand

Expands self to grow to fill its parent vertically.
source§

fn size<T>(self, size: Size<T>) -> Resize
where T: Into<DimensionRange>,

Resizes self to size.
source§

fn width(self, width: impl Into<DimensionRange>) -> Resize

Resizes self to width. Read more
source§

fn height(self, height: impl Into<DimensionRange>) -> Resize

Resizes self to height. Read more
source§

fn into_button(self) -> Button

Returns this widget as the contents of a clickable button.
source§

fn to_button(&self) -> Button
where Self: Clone,

Returns this widget as the contents of a clickable button.
source§

fn into_checkbox(self, value: impl IntoDynamic<CheckboxState>) -> Checkbox

Returns this widget as the label of a Checkbox.
source§

fn to_checkbox(&self, value: impl IntoDynamic<CheckboxState>) -> Checkbox
where Self: Clone,

Returns this widget as the label of a Checkbox.
source§

fn centered(self) -> Align

Aligns self to the center vertically and horizontally.
source§

fn align_left(self) -> Align

Aligns self to the left.
source§

fn align_right(self) -> Align

Aligns self to the right.
source§

fn align_top(self) -> Align

Aligns self to the top.
source§

fn align_bottom(self) -> Align

Aligns self to the bottom.
source§

fn fit_horizontally(self) -> Align

Fits self horizontally within its parent.
source§

fn fit_vertically(self) -> Align

Fits self vertically within its parent.
source§

fn scroll(self) -> Scroll

Allows scrolling self both vertically and horizontally.
source§

fn vertical_scroll(self) -> Scroll

Allows scrolling self vertically.
source§

fn horizontal_scroll(self) -> Scroll

Allows scrolling self horizontally.
source§

fn into_ref(self) -> WidgetRef

Creates a WidgetRef for use as child widget.
source§

fn contain(self) -> Container

Wraps self in a Container.
source§

fn contain_level(self, level: impl IntoValue<ContainerLevel>) -> Container

Wraps self in a Container with the specified level.
source§

fn background_color(self, color: impl IntoValue<Color>) -> Container

Returns a new widget that renders color behind self.
source§

fn pad(self) -> Container

Wraps self with the default padding.
source§

fn pad_by(self, padding: impl IntoValue<Edges<Dimension>>) -> Container

Wraps self with the specified padding.
source§

fn themed(self, theme: impl IntoValue<ThemePair>) -> Themed

Applies theme to self and its children.
source§

fn themed_mode(self, mode: impl IntoValue<ThemeMode>) -> ThemedMode

Applies mode to self and its children.
source§

fn collapse_horizontally( self, collapse_when: impl IntoDynamic<bool>, ) -> Collapse

Returns a widget that collapses self horizontally based on the dynamic boolean value. Read more
source§

fn collapse_vertically(self, collapse_when: impl IntoDynamic<bool>) -> Collapse

Returns a widget that collapses self vertically based on the dynamic boolean value. Read more
source§

fn disclose(self) -> Disclose

Returns a new widget that allows hiding and showing contents.
source§

fn validation(self, validation: impl IntoDynamic<Validation>) -> Validated

Returns a widget that shows validation errors and/or hints.
source§

fn tooltip(self, layer: &OverlayLayer, tip: impl MakeWidget) -> Tooltipped

Returns a widget that shows tip on layer when self is hovered.
source§

impl<T> MakeWidgetWithTag for T
where T: Widget,

source§

fn make_with_tag(self, id: WidgetTag) -> WidgetInstance

Returns a new WidgetInstance whose WidgetId comes from tag.
source§

impl<T> MakeWindow for T
where T: MakeWidget,

source§

type Behavior = WidgetInstance

The behavior associated with this window.
source§

fn make_window(self) -> Window<<T as MakeWindow>::Behavior>

Returns a new window from self.
source§

fn open_centered<App>(self, app: &mut App) -> Result<WindowHandle>
where Self: Sized, App: Application + ?Sized,

Opens self in the center of the monitor the window initially appears on.
source§

fn run_centered(self) -> Result
where Self: Sized,

Runs self in the center of the monitor the window initially appears on.
source§

fn run_centered_in(self, app: PendingApp) -> Result
where Self: Sized,

Runs app after opening self in the center of the monitor the window initially appears on.
source§

impl<T> Open for T
where T: MakeWindow,

source§

fn open<App>(self, app: &mut App) -> Result<WindowHandle, EventLoopError>
where App: Application + ?Sized,

Opens the provided type as a window inside of app.
source§

fn run_in(self, app: PendingApp) -> Result<(), EventLoopError>

Runs the provided type inside of the pending app, returning Ok(()) upon successful execution and program exit. Note that this function may not ever return on some platforms.
§

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> Run for T
where T: MakeWidget,

source§

fn run(self) -> Result<(), EventLoopError>

Runs the provided type, returning Ok(()) upon successful execution and program exit. Note that this function may not ever return on some platforms.
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

§

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