Skip to main content

Image

Struct Image 

Source
pub struct Image { /* private fields */ }
Available on crate features image or svg or canvas only.
Expand description

A raster image widget, loaded from a path

If your image source is not a path, use Sprite instead. Note also that since image-loading can be CPU- and IO-intensive, if images get reloaded frequently, you might benefit from using Sprite over a custom image loader with a cache.

Size is inferred from the loaded image. By default, scaling is limited to integer multiples of the source image size.

May be default constructed (result is empty).

Implementations§

Source§

impl Image

Source

pub fn new(path: impl Into<PathBuf>) -> Image

Construct with a given path

The image will be loaded when the widget is configured.

Source

pub fn clear(&mut self, cx: &mut ConfigCx<'_>)

Remove image (set empty)

Source

pub fn set(&mut self, cx: &mut ConfigCx<'_>, path: &Path)

Set path and load image

Source

pub fn set_logical_size(&mut self, size: impl Into<LogicalSize>)

Set size in logical pixels

This enables fractional scaling of the image with a fixed aspect ratio.

Source

pub fn with_logical_size(self, size: impl Into<LogicalSize>) -> Image

Set size in logical pixels (inline)

This enables fractional scaling of the image with a fixed aspect ratio.

Source

pub fn with_margin_style(self, style: MarginStyle) -> Image

Set the margin style (inline)

By default, this is MarginStyle::Large.

Source

pub fn with_fixed_aspect_ratio(self, fixed: bool) -> Image

Control whether the aspect ratio is fixed (inline)

This is only applicable when using fractional scaling (see Self::set_logical_size) since integer scaling always uses a fixed aspect ratio. By default this is enabled.

Source

pub fn with_stretch(self, stretch: Stretch) -> Image

Set the stretch factor (inline)

By default this is Stretch::None. Particular to this widget, Stretch::None will avoid stretching of content, aligning instead.

Trait Implementations§

Source§

impl Debug for Image

Source§

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

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

impl Default for Image

Source§

fn default() -> Image

Returns the “default value” for a type. Read more
Source§

impl Events for Image

Source§

fn configure(&mut self, cx: &mut ConfigCx<'_>)

Configure self Read more
Source§

fn handle_messages(&mut self, cx: &mut EventCx<'_>, _: &<Image as Widget>::Data)

Handler for messages from children/descendants Read more
Source§

fn handle_event( &mut self, _: &mut EventCx<'_>, _: &<Image as Widget>::Data, _: Event<'_>, ) -> IsUsed

Handle an Event Read more
Source§

const REDRAW_ON_MOUSE_OVER: bool = false

Does this widget have a different appearance on mouse over? Read more
Source§

fn mouse_over_icon(&self) -> Option<CursorIcon>

The mouse pointer icon to use on mouse over Read more
Source§

fn make_child_id(&mut self, index: usize) -> Id

Make an identifier for a child Read more
Source§

fn probe(&self, coord: Coord) -> Id

Probe a coordinate for a widget’s Id Read more
Source§

fn post_configure(&mut self, cx: &mut ConfigCx<'_>)

Configure self (post-child-configuration actions) Read more
Source§

fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Update self using input data Read more
Source§

fn recurse_indices(&self) -> ChildIndices

Recursion control Read more
Source§

fn handle_mouse_over(&mut self, cx: &mut EventCx<'_>, state: bool)

Mouse focus handler Read more
Source§

fn child_nav_focus(&mut self, cx: &mut EventCx<'_>, id: Id)

Notification that a child received navigation focus Read more
Source§

fn handle_resize( &mut self, cx: &mut ConfigCx<'_>, data: &Self::Data, ) -> Option<ActionResize>

Handler for resize requests Read more
Source§

fn handle_scroll( &mut self, cx: &mut EventCx<'_>, data: &Self::Data, scroll: Scroll, )

Handler for scrolling Read more
Source§

impl Layout for Image

Source§

fn rect(&self) -> Rect

Get the widget’s region Read more
Source§

fn size_rules(&mut self, cx: &mut SizeCx<'_>, axis: AxisInfo) -> SizeRules

Calculate size requirements for an axis Read more
Source§

fn set_rect(&mut self, cx: &mut SizeCx<'_>, rect: Rect, hints: AlignHints)

Set size and position Read more
Source§

fn draw(&self, draw: DrawCx<'_>)

Draw a widget and its children Read more
Source§

impl MacroDefinedLayout for Image

Source§

fn rect(&self) -> Rect

Get the widget’s region
Source§

fn size_rules(&mut self, cx: &mut SizeCx<'_>, axis: AxisInfo) -> SizeRules

Get size rules for the given axis
Source§

fn set_rect(&mut self, cx: &mut SizeCx<'_>, rect: Rect, hints: AlignHints)

Set size and position
Source§

fn draw(&self, draw: DrawCx<'_>)

Draw a widget and its children
Source§

impl Tile for Image

Source§

fn role(&self, _: &mut dyn RoleCx) -> Role<'_>

Describe the widget’s role Read more
Source§

fn as_tile(&self) -> &dyn Tile

Get as a dyn Tile Read more
Source§

fn id_ref(&self) -> &Id

Get a reference to the widget’s identifier Read more
Source§

fn identify(&self) -> IdentifyWidget<'_>

Return a Display-able widget identifier Read more
Source§

fn get_child(&self, index: usize) -> Option<&dyn Tile>

Access a child as a dyn Tile, if available Read more
Source§

fn child_indices(&self) -> ChildIndices

Get child indices available to recursion Read more
Source§

fn try_probe(&self, coord: Coord) -> Option<Id>

Probe a coordinate for a widget’s Id Read more
Source§

fn nav_next(&self, reverse: bool, from: Option<usize>) -> Option<usize>

Navigation in spatial order Read more
Source§

fn id(&self) -> Id

Get the widget’s identifier Read more
Source§

fn navigable(&self) -> bool

Whether this widget supports navigation focus Read more
Source§

fn tooltip(&self) -> Option<&str>

Tooltip Read more
Source§

fn role_child_properties(&self, cx: &mut dyn RoleCx, index: usize)

Specify additional role properties for child index Read more
Source§

fn find_child_index(&self, id: &Id) -> Option<usize>

Find the child which is an ancestor of this id, if any Read more
Source§

fn translation(&self, index: usize) -> Offset

Get translation of child index relative to this widget Read more
Source§

impl Widget for Image

Source§

type Data = ()

Input data type Read more
Source§

fn as_node<'__a>( &'__a mut self, data: &'__a <Image as Widget>::Data, ) -> Node<'__a>

Erase type Read more
Source§

fn child_node<'__n>( &'__n mut self, data: &'__n <Image as Widget>::Data, index: usize, ) -> Option<Node<'__n>>

Access a child as a Node, if available Read more

Auto Trait Implementations§

§

impl Freeze for Image

§

impl RefUnwindSafe for Image

§

impl !Send for Image

§

impl !Sync for Image

§

impl Unpin for Image

§

impl UnwindSafe for Image

Blanket Implementations§

Source§

impl<W> AdaptWidget for W
where W: Widget,

Source§

fn align(self, hints: AlignHints) -> Align<Self>

Apply an alignment hint Read more
Source§

fn pack(self, hints: AlignHints) -> Pack<Self>

Apply an alignment hint, squash and align the result Read more
Source§

fn with_stretch( self, horiz: impl Into<Option<Stretch>>, vert: impl Into<Option<Stretch>>, ) -> WithStretch<Self>

Adjust stretch policy Read more
Source§

fn with_margin_style(self, style: MarginStyle) -> WithMarginStyle<Self>

Set the margin style Read more
Source§

fn map<A, F>(self, f: F) -> Map<A, Self, F>
where F: for<'a> Fn(&'a A) -> &'a Self::Data,

Map data type via a function Read more
Source§

fn on_configure<F>(self, f: F) -> AdaptEvents<Self>
where F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self) + 'static,

Call the given closure on Events::configure Read more
Source§

fn on_update<F>(self, f: F) -> AdaptEvents<Self>
where F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self, &Self::Data) + 'static,

Call the given closure on Events::update Read more
Source§

fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
where M: Debug + 'static, H: Fn(&mut AdaptEventCx<'_, '_>, &mut Self, M) + 'static,

Add a handler on message of type M Read more
Source§

fn map_message<M, N, H>(self, handler: H) -> AdaptEvents<Self>
where M: Debug + 'static, N: Debug + 'static, H: Fn(usize, M) -> N + 'static,

Add a child handler to map messages of type M to N Read more
Source§

fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
where H: Fn(&mut AdaptEventCx<'_, '_>, &mut Self, &Self::Data) + 'static,

Add a generic message handler Read more
Source§

fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>

Construct a wrapper, setting minimum size in pixels Read more
Source§

fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>

Construct a wrapper, setting minimum size in Em Read more
Source§

fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>

Construct a wrapper widget adding a label Read more
Source§

fn with_hidden_label<T>(self, label: T) -> WithHiddenLabel<Self>
where T: ToString,

Construct a wrapper widget adding a hidden label Read more
Source§

fn with_state<A>(self, state: Self::Data) -> Adapt<A, Self>

Construct an Adapt widget over input
Source§

impl<W> AdaptWidgetAny for W
where W: Widget<Data = ()>,

Source§

fn map_any<A>(self) -> MapAny<A, Self>

Map any input data to () Read more
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
Source§

impl<S, T> Cast<T> for S
where T: Conv<S>,

Source§

fn cast(self) -> T

Cast from Self to T Read more
Source§

fn try_cast(self) -> Result<T, Error>

Try converting from Self to T Read more
Source§

impl<S, T> CastApprox<T> for S
where T: ConvApprox<S>,

Source§

fn try_cast_approx(self) -> Result<T, Error>

Try approximate conversion from Self to T Read more
Source§

fn cast_approx(self) -> T

Cast approximately from Self to T Read more
Source§

impl<S, T> CastFloat<T> for S
where T: ConvFloat<S>,

Source§

fn cast_trunc(self) -> T

Cast to integer, truncating Read more
Source§

fn cast_nearest(self) -> T

Cast to the nearest integer Read more
Source§

fn cast_floor(self) -> T

Cast the floor to an integer Read more
Source§

fn cast_ceil(self) -> T

Cast the ceiling to an integer Read more
Source§

fn try_cast_trunc(self) -> Result<T, Error>

Try converting to integer with truncation Read more
Source§

fn try_cast_nearest(self) -> Result<T, Error>

Try converting to the nearest integer Read more
Source§

fn try_cast_floor(self) -> Result<T, Error>

Try converting the floor to an integer Read more
Source§

fn try_cast_ceil(self) -> Result<T, Error>

Try convert the ceiling to an integer Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

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

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

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

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> 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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<W> TileExt for W
where W: Tile + ?Sized,

Source§

fn is_configured(&self) -> bool

Check whether this widget has been configured Read more
Source§

fn is_sized(&self) -> bool

Check whether this widget has been sized Read more
Source§

fn eq_id<T>(&self, rhs: T) -> bool
where Id: PartialEq<T>,

Test widget identifier for equality Read more
Source§

fn is_ancestor_of(&self, id: &Id) -> bool

Check whether id is self or a descendant Read more
Source§

fn is_strict_ancestor_of(&self, id: &Id) -> bool

Check whether id is not self and is a descendant Read more
Source§

fn children(&self) -> impl Iterator<Item = &dyn Tile>

Return an iterator over visible children Read more
Source§

fn find_tile(&self, id: &Id) -> Option<&dyn Tile>

Find the descendant with this id, if any Read more
Source§

fn find_tile_rect(&self, id: &Id) -> Option<(Rect, Offset)>

Find the Rect of the descendant with this id, if any 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> 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