pub struct Canvas<P>where
P: CanvasProgram,{ /* private fields */ }resvg or tiny-skia only.Expand description
A canvas widget over the tiny-skia library
The widget is essentially a cached image drawn from a Pixmap
controlled through an implementation of CanvasProgram.
Note that the tiny-skia API is re-exported as crate::tiny_skia.
By default, a Canvas has a minimum size of 128x128 pixels and a high
stretch factor (i.e. will greedily occupy extra space). To adjust this
call one of the sizing/scaling methods.
Implementations§
Source§impl<P> Canvas<P>where
P: CanvasProgram,
impl<P> Canvas<P>where
P: CanvasProgram,
Sourcepub fn new(program: P) -> Canvas<P>
pub fn new(program: P) -> Canvas<P>
Construct
Use Self::with_size or Self::with_scaling to set the initial size.
Sourcepub fn with_size(self, size: LogicalSize) -> Canvas<P>
pub fn with_size(self, size: LogicalSize) -> Canvas<P>
Assign size
Default size is 128 × 128.
Sourcepub fn with_scaling(self, f: impl FnOnce(&mut PixmapScaling)) -> Canvas<P>
pub fn with_scaling(self, f: impl FnOnce(&mut PixmapScaling)) -> Canvas<P>
Adjust scaling
Default size is 128 × 128; default stretch is Stretch::High.
Other fields use PixmapScaling’s default values.
Sourcepub fn set_scaling(
&mut self,
cx: &mut EventState,
f: impl FnOnce(&mut PixmapScaling),
)
pub fn set_scaling( &mut self, cx: &mut EventState, f: impl FnOnce(&mut PixmapScaling), )
Adjust scaling
Default size is 128 × 128; default stretch is Stretch::High.
Other fields use PixmapScaling’s default values.
Trait Implementations§
Source§impl<P> Debug for Canvas<P>where
P: CanvasProgram,
impl<P> Debug for Canvas<P>where
P: CanvasProgram,
Source§impl<P> Events for Canvas<P>where
P: CanvasProgram,
impl<P> Events for Canvas<P>where
P: CanvasProgram,
Source§fn handle_messages(
&mut self,
cx: &mut EventCx<'_>,
_: &<Canvas<P> as Widget>::Data,
)
fn handle_messages( &mut self, cx: &mut EventCx<'_>, _: &<Canvas<P> as Widget>::Data, )
Source§fn handle_event(
&mut self,
_: &mut EventCx<'_>,
_: &<Canvas<P> as Widget>::Data,
_: Event<'_>,
) -> IsUsed
fn handle_event( &mut self, _: &mut EventCx<'_>, _: &<Canvas<P> as Widget>::Data, _: Event<'_>, ) -> IsUsed
Source§const REDRAW_ON_MOUSE_OVER: bool = false
const REDRAW_ON_MOUSE_OVER: bool = false
Source§fn mouse_over_icon(&self) -> Option<CursorIcon>
fn mouse_over_icon(&self) -> Option<CursorIcon>
Source§fn configure_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
fn configure_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
Source§fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
Source§fn update_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
fn update_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
Source§impl<P> Layout for Canvas<P>where
P: CanvasProgram,
impl<P> Layout for Canvas<P>where
P: CanvasProgram,
Source§impl<P> Tile for Canvas<P>where
P: CanvasProgram,
impl<P> Tile for Canvas<P>where
P: CanvasProgram,
Source§fn get_child(&self, index: usize) -> Option<&dyn Tile>
fn get_child(&self, index: usize) -> Option<&dyn Tile>
dyn Tile, if available Read moreSource§fn child_indices(&self) -> ChildIndices
fn child_indices(&self) -> ChildIndices
Source§fn role_child_properties(&self, cx: &mut dyn RoleCx, index: usize)
fn role_child_properties(&self, cx: &mut dyn RoleCx, index: usize)
index Read moreAuto Trait Implementations§
impl<P> !Freeze for Canvas<P>
impl<P> !RefUnwindSafe for Canvas<P>
impl<P> !Send for Canvas<P>
impl<P> !Sync for Canvas<P>
impl<P> Unpin for Canvas<P>where
P: Unpin,
impl<P> UnwindSafe for Canvas<P>where
P: UnwindSafe,
Blanket Implementations§
Source§impl<W> AdaptWidget for Wwhere
W: Widget,
impl<W> AdaptWidget for Wwhere
W: Widget,
Source§fn pack(self, hints: AlignHints) -> Pack<Self>
fn pack(self, hints: AlignHints) -> Pack<Self>
Source§fn margins(self, dirs: Directions, style: MarginStyle) -> Margins<Self>
fn margins(self, dirs: Directions, style: MarginStyle) -> Margins<Self>
Source§fn on_configure<F>(self, f: F) -> AdaptEvents<Self>where
F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self) + 'static,
fn on_configure<F>(self, f: F) -> AdaptEvents<Self>where
F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self) + 'static,
Events::configure Read moreSource§fn on_update<F>(self, f: F) -> AdaptEvents<Self>
fn on_update<F>(self, f: F) -> AdaptEvents<Self>
Events::update Read moreSource§fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
M Read moreSource§fn map_message<M, N, H>(self, handler: H) -> AdaptEvents<Self>
fn map_message<M, N, H>(self, handler: H) -> AdaptEvents<Self>
Source§fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
Source§fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>
fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>
Source§fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>
fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>
Source§fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>
fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>
Source§impl<W> AdaptWidgetAny for W
impl<W> AdaptWidgetAny for W
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
Source§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
Source§fn cast_approx(self) -> T
fn cast_approx(self) -> T
Source§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
Source§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Source§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Source§fn cast_floor(self) -> T
fn cast_floor(self) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<W> TileExt for W
impl<W> TileExt for W
Source§fn is_strict_ancestor_of(&self, id: &Id) -> bool
fn is_strict_ancestor_of(&self, id: &Id) -> bool
id is not self and is a descendant Read more