Skip to main content

SvgViewer

Struct SvgViewer 

Source
pub struct SvgViewer { /* private fields */ }
Expand description

SVG viewer component.

Rasterizes the SVG asynchronously to the size measured on its container, caching the result. See ImageSource for all supported sources.

§Example

fn app() -> impl IntoElement {
    SvgViewer::new(include_bytes!("../../../examples/ferris.svg"))
        .width(Size::px(300.))
        .height(Size::px(300.))
}

Implementations§

Source§

impl SvgViewer

Source

pub fn new(source: impl Into<ImageSource>) -> Self

Source

pub fn show_loader(self, show_loader: bool) -> Self

Whether to render a loading indicator while the SVG is being rasterized. Defaults to true.

Source

pub fn color(self, color: impl Into<Color>) -> Self

Override the SVG’s currentColor, used by shapes that inherit their color.

Source

pub fn fill(self, fill: impl Into<Color>) -> Self

Override the fill color of the SVG’s shapes.

Source

pub fn stroke(self, stroke: impl Into<Color>) -> Self

Override the stroke color of the SVG’s shapes.

Source

pub fn stroke_width(self, stroke_width: impl Into<f32>) -> Self

Override the SVG stroke width.

Source

pub fn asset_age(self, asset_age: impl Into<AssetAge>) -> Self

Customize how long the raster remains cached after no longer being used.

Source

pub fn error_renderer( self, renderer: impl Into<Callback<String, Element>>, ) -> Self

Custom element rendered when the SVG fails to load.

Trait Implementations§

Source§

impl AccessibilityExt for SvgViewer

Source§

fn get_accessibility_data(&mut self) -> &mut AccessibilityData

Returns a mutable reference to the element’s accessibility data.
§

fn accessibility(self, accessibility: AccessibilityData) -> Self

Replace all of the element’s accessibility data at once. See [AccessibilityData].
§

fn a11y_id(self, a11y_id: impl Into<Option<NodeId>>) -> Self

Set an explicit accessibility id instead of an autogenerated one. See [AccessibilityId].
§

fn a11y_focusable(self, a11y_focusable: impl Into<Focusable>) -> Self

Set whether the element can receive keyboard focus. See [Focusable].
§

fn a11y_auto_focus(self, a11y_auto_focus: impl Into<bool>) -> Self

Request that the element be focused automatically when it is mounted.
§

fn a11y_member_of(self, a11y_member_of: impl Into<NodeId>) -> Self

Mark the element as a member of the group identified by the given [AccessibilityId].
§

fn a11y_role(self, a11y_role: impl Into<Role>) -> Self

Set the accessibility role exposed in the accessibility tree. See [AccessibilityRole].
§

fn a11y_alt(self, value: impl Into<Box<str>>) -> Self

Set the text label that describes the element in the accessibility tree.
§

fn a11y_builder(self, with: impl FnOnce(&mut Node)) -> Self

Edit the underlying accesskit node directly for advanced accessibility properties.
Source§

impl Component for SvgViewer

Source§

fn render(&self) -> impl IntoElement

Source§

fn render_key(&self) -> DiffKey

Source§

impl ContainerExt for SvgViewer

§

fn padding(self, padding: impl Into<Gaps>) -> Self

Set the inner spacing between the element’s edges and its content. See [Gaps].
§

fn margin(self, margin: impl Into<Gaps>) -> Self

Set the outer spacing between the element’s edges and its surroundings. See [Gaps].
§

fn min_width(self, minimum_width: impl Into<Size>) -> Self

Set the minimum width the element can shrink to. See [Size].
§

fn min_height(self, minimum_height: impl Into<Size>) -> Self

Set the minimum height the element can shrink to. See [Size].
§

fn max_width(self, maximum_width: impl Into<Size>) -> Self

Set the maximum width the element can grow to. See [Size].
§

fn max_height(self, maximum_height: impl Into<Size>) -> Self

Set the maximum height the element can grow to. See [Size].
§

fn visible_width(self, visible_width: impl Into<VisibleSize>) -> Self

Set how much of the measured width is actually used in layout. See [VisibleSize].
§

fn visible_height(self, visible_height: impl Into<VisibleSize>) -> Self

Set how much of the measured height is actually used in layout. See [VisibleSize].
Source§

impl EffectExt for SvgViewer

Source§

fn get_effect(&mut self) -> &mut EffectData

Returns a mutable reference to the element’s effect data.
§

fn effect(self, effect: EffectData) -> Self

Replace all of the element’s effect data at once. See [EffectData].
§

fn overflow(self, overflow: impl Into<Overflow>) -> Self

Set whether content overflowing the element’s bounds is clipped. See [Overflow].
§

fn blur(self, blur: impl Into<f32>) -> Self

Apply a gaussian blur of the given radius to the element.
§

fn rotation(self, rotation: impl Into<f32>) -> Self

Rotate the element by the given angle in degrees.
§

fn opacity(self, opacity: impl Into<f32>) -> Self

Set the element’s opacity, from 0.0 (transparent) to 1.0 (opaque).
§

fn scale(self, scale: impl Into<Scale>) -> Self

Scale the element. See [Scale].
§

fn transform_origin(self, transform_origin: impl Into<TransformOrigin>) -> Self

Set the point that the scale and rotation effects pivot around. Read more
Source§

impl EventHandlersExt for SvgViewer

Source§

fn get_event_handlers(&mut self) -> &mut FxHashMap<EventName, EventHandlerType>

Returns a mutable reference to the element’s event handler map.
§

fn with_event_handlers( self, event_handlers: HashMap<EventName, EventHandlerType, FxBuildHasher>, ) -> Self

Replace all of this element’s event handlers with the given map.
§

fn on_mouse_down( self, on_mouse_down: impl Into<EventHandler<Event<MouseEventData>>>, ) -> Self

Fires when a mouse button is pressed down over the element.
§

fn on_mouse_up( self, on_mouse_up: impl Into<EventHandler<Event<MouseEventData>>>, ) -> Self

Fires when a mouse button is released over the element.
§

fn on_mouse_move( self, on_mouse_move: impl Into<EventHandler<Event<MouseEventData>>>, ) -> Self

Fires when the cursor moves over the element.
§

fn on_global_pointer_press( self, on_global_pointer_press: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) is pressed anywhere, even outside the element.
§

fn on_global_pointer_down( self, on_global_pointer_down: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) goes down anywhere, even outside the element.
§

fn on_global_pointer_move( self, on_global_pointer_move: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) moves anywhere, even outside the element.
§

fn on_capture_global_pointer_move( self, on_capture_global_pointer_move: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Like on_global_pointer_move, but fires during the top-down capture phase.
§

fn on_capture_global_pointer_press( self, on_capture_global_pointer_press: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Like on_global_pointer_press, but fires during the top-down capture phase.
§

fn on_key_down( self, on_key_down: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is pressed down while the element is focused.
§

fn on_key_up( self, on_key_up: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is released while the element is focused.
§

fn on_global_key_down( self, on_global_key_down: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is pressed down, regardless of which element is focused.
§

fn on_global_key_up( self, on_global_key_up: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is released, regardless of which element is focused.
§

fn on_wheel( self, on_wheel: impl Into<EventHandler<Event<WheelEventData>>>, ) -> Self

Fires when the scroll wheel is used over the element.
§

fn on_touch_cancel( self, on_touch_cancel: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when an ongoing touch is cancelled by the system.
§

fn on_touch_start( self, on_touch_start: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when a touch point is placed on the element.
§

fn on_touch_move( self, on_touch_move: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when a touch point moves across the element.
§

fn on_touch_end( self, on_touch_end: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when a touch point is lifted from the element.
§

fn on_pointer_press( self, on_pointer_press: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when the element is pressed and released by a pointer (mouse or touch).
§

fn on_pointer_down( self, on_pointer_down: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) goes down over the element.
§

fn on_pointer_move( self, on_pointer_move: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) moves over the element.
§

fn on_pointer_enter( self, on_pointer_enter: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer enters the element.
§

fn on_pointer_leave( self, on_pointer_leave: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer leaves the element.
§

fn on_pointer_over( self, on_pointer_over: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer is over the element, including over its children.
§

fn on_pointer_out( self, on_pointer_out: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer leaves the element or one of its children.
§

fn on_file_drop( self, on_file_drop: impl Into<EventHandler<Event<FileEventData>>>, ) -> Self

Fires when a file is dropped onto the element.
§

fn on_global_file_hover( self, on_global_file_hover: impl Into<EventHandler<Event<FileEventData>>>, ) -> Self

Fires when a dragged file hovers anywhere over the window.
§

fn on_global_file_hover_cancelled( self, on_global_file_hover_cancelled: impl Into<EventHandler<Event<FileEventData>>>, ) -> Self

Fires when a dragged file stops hovering over the window.
§

fn on_ime_preedit( self, on_ime_preedit: impl Into<EventHandler<Event<ImePreeditEventData>>>, ) -> Self

Fires while text is being composed through an input method editor (IME).
§

fn on_sized( self, on_sized: impl Into<EventHandler<Event<SizedEventData>>>, ) -> Self
where Self: LayoutExt,

Fires when the element’s measured size or position changes.
§

fn on_press( self, on_press: impl Into<EventHandler<Event<PressEventData>>>, ) -> Self

This is generally the best event in which to run “press” logic, this might be called onClick, onActivate, or onConnect in other platforms. Read more
§

fn on_secondary_down( self, on_secondary_down: impl Into<EventHandler<Event<PressEventData>>>, ) -> Self

Also called the context menu click in other platforms. Gets triggered when: Read more
§

fn on_all_press( self, on_press: impl Into<EventHandler<Event<PressEventData>>>, ) -> Self

Gets triggered when: Read more
§

fn on_focus_press( self, on_focus_press: impl Into<EventHandler<Event<FocusPressEventData>>>, ) -> Self

Gets triggered when: Read more
Source§

impl ImageExt for SvgViewer

Source§

fn get_image_data(&mut self) -> &mut ImageData

Returns a mutable reference to the element’s image data.
§

fn image_data(self, image_data: ImageData) -> Self

Replace all of the element’s image data at once. See [ImageData].
§

fn sampling_mode(self, sampling_mode: SamplingMode) -> Self

Set the filtering used when the image is scaled. See [SamplingMode].
§

fn aspect_ratio(self, aspect_ratio: AspectRatio) -> Self

Set how the image is scaled to fit its bounds. See [AspectRatio].
§

fn image_cover(self, image_cover: ImageCover) -> Self

Set how the image is positioned within its bounds. See [ImageCover].
Source§

impl KeyExt for SvgViewer

Source§

fn write_key(&mut self) -> &mut DiffKey

Returns a mutable reference to the element’s diff key.
§

fn key(self, key: impl Hash) -> Self

Assign a key derived from any hashable value, used to reconcile elements in dynamic lists.
Source§

impl LayoutExt for SvgViewer

Source§

fn get_layout(&mut self) -> &mut LayoutData

Returns a mutable reference to the element’s layout data.
§

fn layout(self, layout: LayoutData) -> Self

Replace all of the element’s layout data at once. See [LayoutData].
Source§

impl PartialEq for SvgViewer

Source§

fn eq(&self, other: &SvgViewer) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl SvgThemeExt for SvgViewer

Source§

fn theme_color(self) -> Self

Source§

fn theme_accent_color(self) -> Self

Source§

fn theme_fill(self) -> Self

Source§

fn theme_stroke(self) -> Self

Source§

fn theme_accent_fill(self) -> Self

Source§

fn theme_accent_stroke(self) -> Self

Source§

impl StructuralPartialEq for SvgViewer

Auto Trait Implementations§

Blanket Implementations§

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

impl<T> ComponentKey for T
where T: Component,

§

fn default_key(&self) -> DiffKey

§

impl<T> ComponentProps for T
where T: Any + PartialEq,

§

fn changed(&self, other: &(dyn ComponentProps + 'static)) -> bool

§

impl<T> ContainerPositionExt for T
where T: ContainerExt,

§

fn position(self, position: impl Into<Position>) -> Self

Set how the element is placed relative to its parent or the window. See [Position].
§

impl<T> ContainerSizeExt for T
where T: ContainerExt,

§

fn width(self, width: impl Into<Size>) -> Self

Set the element’s width. See [Size].
§

fn height(self, height: impl Into<Size>) -> Self

Set the element’s height. See [Size].
§

fn expanded(self) -> Self

Expand both width and height using [Size::fill()].
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

impl<T> IntoElement for T
where T: Into<Element>,

§

fn into_element(self) -> Element

§

impl<T> IntoReadable<T> for T
where T: 'static + PartialEq,

§

fn into_readable(self) -> Readable<T>

§

impl<T> MaybeExt for T
where T: Component,

§

fn maybe(self, bool: impl Into<bool>, then: impl FnOnce(Self) -> Self) -> Self

Apply then to the element only when the condition is true.
§

fn map<T>(self, data: Option<T>, then: impl FnOnce(Self, T) -> Self) -> Self

Apply then to the element only when the Option is Some, passing the inner value.
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. 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.
§

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
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,

Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,