pub struct Image(/* private fields */);Expand description
W Image presenter.
This widget loads a still image from a variety of sources and presents it.
Implementations§
Source§impl Image
impl Image
Sourcepub fn img_scale(&self, scale: impl IntoVar<Factor2d>)
pub fn img_scale(&self, scale: impl IntoVar<Factor2d>)
P Sets the scale applied to all inner images.
The scaling is applied after img_scale_density if active.
By default not scaling is done.
Source§impl Image
impl Image
Sourcepub fn img_scale_factor(&self, enabled: impl IntoVar<bool>)
pub fn img_scale_factor(&self, enabled: impl IntoVar<bool>)
P Sets if the image desired size is scaled by the screen scale factor.
The image desired size is its original size after img_crop, it is a pixel value, but widgets are layout using
device independent pixels that automatically scale in higher definition displays, when this property is enabled
the image size is also scaled so that the image will take the same screen space in all devices.
This is enabled by default.
See also img_scale_density, for physical scaling in calibrated monitors.
Source§impl Image
impl Image
Sourcepub fn img_scale_density(&self, enabled: impl IntoVar<bool>)
pub fn img_scale_density(&self, enabled: impl IntoVar<bool>)
P Sets if the image desired size is scaled considering the image and monitor pixel density.
The image desired size is its original size, after img_crop, and it can be in pixels or scaled considering
the image pixel density, monitor pixel density and scale factor.
By default this is false, if true the image is scaled in a attempt to recreate the original physical dimensions, this
only works if the image and monitor pixel density are set correctly. The monitor pixel density can be set using the MONITORS service.
This value supersedes img_scale_factor, this this enabled the scale factor is ignored.
Source§impl Image
impl Image
Sourcepub fn img_align(&self, align: impl IntoVar<Align>)
pub fn img_align(&self, align: impl IntoVar<Align>)
P Sets the Align of all inner images within each image widget area.
If the image is smaller then the widget area it is aligned like normal, if it is larger the “viewport” it is aligned to clip,
for example, alignment BOTTOM_RIGHT makes a smaller image sit at the bottom-right of the widget and makes
a larger image bottom-right fill the widget, clipping the rest.
By default the alignment is CENTER. The BASELINE alignment is treaded the same as BOTTOM.
Source§impl Image
impl Image
Sourcepub fn img_offset(&self, offset: impl IntoVar<Vector>)
pub fn img_offset(&self, offset: impl IntoVar<Vector>)
P Sets a Point that is an offset applied to all inner images within each image widget area.
Relative values are calculated from the widget final size. Note that this is different the applying the
offset property on the widget itself, the widget is not moved just the image within the widget area.
This property sets the IMAGE_OFFSET_VAR. By default no offset is applied.
Source§impl Image
impl Image
Sourcepub fn img_crop(&self, crop: impl IntoVar<Rect>)
pub fn img_crop(&self, crop: impl IntoVar<Rect>)
P Sets a Rect that is a clip applied to all inner images before their layout.
Relative values are calculated from the image pixel size, the img_scale_density is only considered after.
Note that more complex clipping can be applied after to the full widget, this property exists primarily to
render selections of a texture atlas.
By default no cropping is done.
Source§impl Image
impl Image
Sourcepub fn img_repeat(&self, repeat: impl IntoVar<ImageRepeat>)
pub fn img_repeat(&self, repeat: impl IntoVar<ImageRepeat>)
P Sets the ImageRepeat of all inner images.
Note that repeat converts from bool so you can set this property to img_repeat = true; to
enable repeat in all inner images.
See also img_repeat_spacing to control the space between repeated tiles.
This property sets the IMAGE_REPEAT_VAR.
Source§impl Image
impl Image
Sourcepub fn img_repeat_spacing(&self, spacing: impl IntoVar<Size>)
pub fn img_repeat_spacing(&self, spacing: impl IntoVar<Size>)
P Sets the spacing between copies of the image if it is repeated.
Relative lengths are computed on the size of a single repeated tile image, so 100.pct() is skips
an entire image of space. The leftover size is set to the space taken by tile images that do not fully
fit inside the clip area, 1.lft() will insert space to cause only fully visible tiles to remain on screen.
This property sets the IMAGE_REPEAT_SPACING_VAR.
Source§impl Image
impl Image
Sourcepub fn img_rendering(&self, rendering: impl IntoVar<ImageRendering>)
pub fn img_rendering(&self, rendering: impl IntoVar<ImageRendering>)
P Sets the ImageRendering of all inner images.
If the image layout size is not the same as the source pixel size the image must be re-scaled
during rendering, this property selects what algorithm is used to do this re-scaling.
Note that the algorithms used in the renderer value performance over quality and do a good enough job for small or temporary changes in scale only. If the image stays at a very different scale after a short time a CPU re-scale task is automatically started to generate a better quality re-scaling.
If the image is an app resource known during build time you should consider pre-scaling it to match the screen size at different DPIs using mipmaps.
This is ImageRendering::Auto by default.
Source§impl Image
impl Image
Sourcepub fn img_cache(&self, enabled: impl IntoVar<bool>)
pub fn img_cache(&self, enabled: impl IntoVar<bool>)
P Sets the cache mode of all inner images.
Sets if the source is cached.
By default this is true, meaning the image is loaded from cache and if not present it is inserted into
the cache, the cache lives for the app in the IMAGES service, the image can be manually removed from cache.
If set to false the image is always loaded and decoded on init or when source updates and is dropped when
the widget is deinited or dropped.
Source§impl Image
impl Image
Sourcepub fn img_limits(&self, limits: impl IntoVar<Option<ImageLimits>>)
pub fn img_limits(&self, limits: impl IntoVar<Option<ImageLimits>>)
P Sets custom image load and decode limits.
If not set or set to None the IMAGES.limits is used.
See also img_downscale for a way to still display unexpected large images.
Source§impl Image
impl Image
Sourcepub fn img_downscale(&self, downscale: impl IntoVar<Option<ImageDownscale>>)
pub fn img_downscale(&self, downscale: impl IntoVar<Option<ImageDownscale>>)
P Custom pixel resize applied during image load/decode.
Note that this resize affects the image actual pixel size directly when it is loading to force the image pixels to be within an expected size.
This property primary use is as error recover before the img_limits error happens, you set the limits to the size that should not even
be processed and set this property to the maximum size expected.
Changing this value after an image is already loaded or loading will cause the image to reload, image cache allocates different entries for different downscale values, this means that this property should never be used for responsive resize,use the widget size and other properties to efficiently resize an image on screen.
Source§impl Image
impl Image
Sourcepub fn is_error(&self, state: impl IntoVar<bool>)
pub fn is_error(&self, state: impl IntoVar<bool>)
P If the CONTEXT_IMAGE_VAR is an error.
Source§impl Image
impl Image
Sourcepub fn is_loaded(&self, state: impl IntoVar<bool>)
pub fn is_loaded(&self, state: impl IntoVar<bool>)
P If the CONTEXT_IMAGE_VAR has successfully loaded.
Source§impl Image
impl Image
Sourcepub fn get_img_layout_size(&self, state: impl IntoVar<Size2D<Px, Px>>)
pub fn get_img_layout_size(&self, state: impl IntoVar<Size2D<Px, Px>>)
P Gets the CONTEXT_IMAGE_VAR ideal size.
Source§impl Image
impl Image
Sourcepub fn img_error_fn(&self, wgt_fn: impl IntoVar<WidgetFn<ImgErrorArgs>>)
pub fn img_error_fn(&self, wgt_fn: impl IntoVar<WidgetFn<ImgErrorArgs>>)
P Sets the wgt_fn! that is used to create a content for the error message.
Source§impl Image
impl Image
Sourcepub fn img_loading_fn(&self, wgt_fn: impl IntoVar<WidgetFn<ImgLoadingArgs>>)
pub fn img_loading_fn(&self, wgt_fn: impl IntoVar<WidgetFn<ImgLoadingArgs>>)
P Sets the wgt_fn! that is used to create a content for the loading message.
Source§impl Image
impl Image
Sourcepub fn on_error(
&self,
handler: Box<dyn FnMut(&ImgErrorArgs) -> HandlerResult + Send>,
)
pub fn on_error( &self, handler: Box<dyn FnMut(&ImgErrorArgs) -> HandlerResult + Send>, )
P Image load or decode error event.
This property calls handler every time the CONTEXT_IMAGE_VAR updates with a different error or on the first update
after init if the image is already in error on init.
§Handlers
This property accepts any Handler, including the async handlers. Use one of the handler macros, hn!,
hn_once!, async_hn! or async_hn_once!, to declare a handler closure.
§Route
This property is not routed, it works only inside a widget that loads images. There is also no preview event.
Source§impl Image
impl Image
Sourcepub fn on_load(
&self,
handler: Box<dyn FnMut(&ImgLoadArgs) -> HandlerResult + Send>,
)
pub fn on_load( &self, handler: Box<dyn FnMut(&ImgLoadArgs) -> HandlerResult + Send>, )
P Image loaded event.
This property calls handler every time the CONTEXT_IMAGE_VAR updates with a successfully loaded image or on the first
update after init if the image is already loaded on init.
§Handlers
This property accepts any Handler, including the async handlers. Use one of the handler macros, hn!,
hn_once!, async_hn! or async_hn_once!, to declare a handler closure.
§Route
This property is not routed, it works only inside a widget that loads images. There is also no preview event.
Source§impl Image
impl Image
Sourcepub fn img_block_window_load(&self, enabled: impl IntoValue<BlockWindowLoad>)
pub fn img_block_window_load(&self, enabled: impl IntoValue<BlockWindowLoad>)
P Block window load until image is loaded.
If the image widget is in the initial window content a WindowLoadingHandle is used to delay the window
visually opening until the source loads, fails to load or a timeout elapses. By default true sets the timeout to 1 second.
Source§impl Image
impl Image
Sourcepub fn widget_new() -> Image
pub fn widget_new() -> Image
Start building a new instance.
Sourcepub fn widget_type() -> WidgetType
pub fn widget_type() -> WidgetType
Gets the widget type info.
Methods from Deref<Target = WidgetBase>§
Sourcepub fn widget_builder(&mut self) -> &mut WidgetBuilder
pub fn widget_builder(&mut self) -> &mut WidgetBuilder
Returns a mutable reference to the widget builder.
Sourcepub fn widget_when(&mut self) -> Option<&mut WhenInfo>
pub fn widget_when(&mut self) -> Option<&mut WhenInfo>
Returns a mutable reference to the when block if called inside a when block.
Sourcepub fn widget_take(&mut self) -> WidgetBuilder
pub fn widget_take(&mut self) -> WidgetBuilder
Takes the widget builder, finishing the widget macro build.
After this call trying to set a property using self will panic,
the returned builder can still be manipulated directly.
Sourcepub fn widget_build(&mut self) -> UiNode
pub fn widget_build(&mut self) -> UiNode
Build the widget.
After this call trying to set a property will panic.
Sourcepub fn widget_importance(&mut self) -> &mut Importance
pub fn widget_importance(&mut self) -> &mut Importance
Returns a mutable reference to the importance of the next property assigns, unsets or when blocks.
Note that during the widget_intrinsic call this is Importance::WIDGET and after it is Importance::INSTANCE.
Sourcepub fn start_when_block(
&mut self,
inputs: Box<[WhenInput]>,
state: Var<bool>,
expr: &'static str,
location: SourceLocation,
)
pub fn start_when_block( &mut self, inputs: Box<[WhenInput]>, state: Var<bool>, expr: &'static str, location: SourceLocation, )
Start building a when block, all properties set after this call are pushed in the when block.
Sourcepub fn end_when_block(&mut self)
pub fn end_when_block(&mut self)
End the current when block, all properties set after this call are pushed in the widget.
Trait Implementations§
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<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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more