pub struct ImageItem { /* private fields */ }Expand description
A raster image in a local-coord rectangle.
The image is referenced by a string key into the Canvas image registry.
Place the item in the scene via Scene::add_item; the key must resolve
to a registered image at paint time.
Implementations§
Source§impl ImageItem
impl ImageItem
Sourcepub fn new(local_bounds: Rect, name: impl Into<String>) -> Self
pub fn new(local_bounds: Rect, name: impl Into<String>) -> Self
An image item of the given size in local coordinates,
referencing the image registered under name. The name is
the Canvas-image-registry identifier — not a user-visible
string, so it is not localized.
Sourcepub fn access_label(self, label: impl Into<LocalizedString>) -> Self
pub fn access_label(self, label: impl Into<LocalizedString>) -> Self
Override the AT name announced for this item. Accepts
anything convertible into LocalizedString — most
commonly tr!(...) for translated labels, or any plain
string (which auto-converts via From<String>).
Sourcepub fn access_description(self, description: impl Into<LocalizedString>) -> Self
pub fn access_description(self, description: impl Into<LocalizedString>) -> Self
Long-form context appended to the item’s announcement.
Sourcepub fn access_role(self, role: Role) -> Self
pub fn access_role(self, role: Role) -> Self
Override the AccessKit role for this item.
Hide this item from the AT tree.
Sourcepub fn access_subtree(self, mode: AccessSubtreeMode) -> Self
pub fn access_subtree(self, mode: AccessSubtreeMode) -> Self
Set the AT subtree mode. Merge collapses descendants
into this item’s AT node; Exclude prunes them; the
default Inherit lets them emit normally.
Sourcepub fn access_merge_subtree(self) -> Self
pub fn access_merge_subtree(self) -> Self
Convenience: collapse all descendants into this item’s AT node so the subtree reads as one element.
Sourcepub fn access_exclude_subtree(self) -> Self
pub fn access_exclude_subtree(self) -> Self
Convenience: prune all descendants from the AT tree.
Sourcepub fn access_value(self, value: impl Into<LocalizedString>) -> Self
pub fn access_value(self, value: impl Into<LocalizedString>) -> Self
Announce a string value for this item (e.g. a formatted data
reading like "42 %"). Mirrors the widget-tier .access_value.
Sourcepub fn access_numeric_value(self, value: f64) -> Self
pub fn access_numeric_value(self, value: f64) -> Self
Announce a numeric value for this item, for slider/gauge-like data
marks whose magnitude assistive tech should describe. Pair with
access_numeric_range /
access_numeric_step for full
range semantics.
Sourcepub fn access_numeric_range(self, min: f64, max: f64) -> Self
pub fn access_numeric_range(self, min: f64, max: f64) -> Self
Announce the numeric min/max bounds for this item.
Sourcepub fn access_numeric_step(self, step: f64) -> Self
pub fn access_numeric_step(self, step: f64) -> Self
Announce the numeric step (per-arrow increment) for this item.
Trait Implementations§
Source§impl SceneItem for ImageItem
impl SceneItem for ImageItem
Source§fn local_bounds(&self) -> Rect
fn local_bounds(&self) -> Rect
scene_transform to compute its scene-space AABB for the
spatial index.Source§fn set_local_bounds(&mut self, bounds: Rect)
fn set_local_bounds(&mut self, bounds: Rect)
Scene::set_local_bounds
when the bounds change. Implementations update their stored
bounds field; geometry-bearing items (e.g. crate::PathItem)
must keep their geometry consistent with the new bounds.Source§fn paint(&self, canvas: &mut Canvas, _ctx: &SceneItemPaintContext<'_>)
fn paint(&self, canvas: &mut Canvas, _ctx: &SceneItemPaintContext<'_>)
scene_transform (parent chain × view) pushed, so
coordinates are in local item space — (0, 0) is the
item’s anchor. Read moreSource§fn label(&self) -> Option<String>
fn label(&self) -> Option<String>
SceneItem::accessibility impl as
the AT name when an item author hasn’t overridden it via the
per-item .access_label(...) chain.Source§fn initial_flags(&self) -> ItemFlags
fn initial_flags(&self) -> ItemFlags
ItemFlags::default() — visible, enabled,
selectable. Built-ins read their accumulated builder state
(e.g. .draggable(true) flips IS_DRAGGABLE); custom items
override this to opt into hover acceptance, focus, clipping,
or IGNORES_TRANSFORMATIONS. Read moreSource§fn access_subtree_mode(&self) -> AccessSubtreeMode
fn access_subtree_mode(&self) -> AccessSubtreeMode
Source§fn accessibility(
&self,
builder: &mut AccessNodeBuilder,
_ctx: &SceneItemA11yContext,
)
fn accessibility( &self, builder: &mut AccessNodeBuilder, _ctx: &SceneItemA11yContext, )
Role::GraphicsObject] plus the SceneItem::label as the
AT name if set. The per-item .access_* builder chain layers
overrides on top of whatever this method writes.Source§fn set_fill(&mut self, fill: Option<ColorProp>) -> bool
fn set_fill(&mut self, fill: Option<ColorProp>) -> bool
true if this item kind has
a fill slot that accepted the change. Backs
SceneModel::set_item_fill /
clear_item_fill. Rectangles,
paths, and groups set their fill; text items map it onto their
foreground colour (so a None is rejected — text always has a colour);
image items have no fill and return false. Default: no-op.Source§fn set_stroke(&mut self, stroke: Option<(ColorProp, StrokeStyle)>) -> bool
fn set_stroke(&mut self, stroke: Option<(ColorProp, StrokeStyle)>) -> bool
StrokeStyle]), returning true if this
item kind has a stroke slot that accepted the change. Backs
SceneModel::set_item_stroke /
clear_item_stroke. Rectangles,
paths, and groups accept it; text and image items return false.
Default: no-op.Source§fn shape_contains(&self, local_pt: Point) -> bool
fn shape_contains(&self, local_pt: Point) -> bool
SceneItem::local_bounds. Path-based items
override this to do per-segment distance checks so users can
click along a stroke even when the AABB is huge.Source§fn clone_shape_test(&self) -> Box<dyn Fn(Point, f32) -> bool + 'static>
fn clone_shape_test(&self) -> Box<dyn Fn(Point, f32) -> bool + 'static>
Fn(Point, f32) -> bool that closes over
whatever state this item needs to answer shape_contains
without retaining a borrow on self. The
SceneView snapshots one of these for
every item at layout time and consults it on every pointer
event — direct calls to shape_contains(&self, ...) can’t
be cached because &dyn SceneItem is not Clone. Read moreSource§fn thumbnail_color(&self) -> Color
fn thumbnail_color(&self) -> Color
RectItem
returns its fill, PathItem
returns stroke or fill, ImageItem
returns the image’s dominant tint placeholder. Read moreSource§fn cache_mode(&self) -> CacheMode
fn cache_mode(&self) -> CacheMode
CacheMode::None: the
item’s paint runs every frame. Read moreSource§fn register_bindings(&self, _ctx: &mut BuildContext<'_>, _view_id: WidgetId)
fn register_bindings(&self, _ctx: &mut BuildContext<'_>, _view_id: WidgetId)
SceneView::build for every item in
the scene, with the SceneView’s WidgetId as view_id. Items
with signal-bound state bind their signals here at the
appropriate BindingLevel.Auto Trait Implementations§
impl !RefUnwindSafe for ImageItem
impl !Send for ImageItem
impl !Sync for ImageItem
impl !UnwindSafe for ImageItem
impl Freeze for ImageItem
impl Unpin for ImageItem
impl UnsafeUnpin for ImageItem
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§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> ErasedDestructor for Twhere
T: 'static,
§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> 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