Skip to main content

NineSlice

Struct NineSlice 

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

A source image paired with the insets that split it into nine patches.

Corners keep their natural size, the four edge patches stretch along one axis only, and the center patch stretches along both — so a bordered panel can be resized to any destination size without distorting its corners. The geometry itself lives on NineSliceInsets; this type only carries the image handle so it can be stored inside a deferred DrawCommand.

Implementations§

Source§

impl NineSlice

Implements image-backed nine-slice drawing and deferred recording.

Source

pub fn from_image(image: HtmlImageElement, border: f64) -> NineSlice

Creates a nine-slice from an image and uniform border insets.

§Arguments
  • HtmlImageElement - The source image containing the nine patches.
  • f64 - The border inset applied to all four edges, in source pixels.
§Returns
  • NineSlice - The new nine-slice.
Source

pub fn source_rects(&self) -> NineSliceRects

Returns the nine source sub-rectangles for the whole source image.

§Returns
  • NineSliceRects - The nine source sub-rectangles in reading order.
Source

pub fn dest_rects(&self, dest: Rect) -> NineSliceRects

Returns the nine destination sub-rectangles for a destination rect.

§Arguments
  • Rect - The destination rectangle to split.
§Returns
  • NineSliceRects - The nine destination sub-rectangles in reading order.
Source

pub fn draw_into(&self, context: &CanvasRenderingContext2d, dest: Rect)

Draws the nine-slice into a destination rectangle immediately.

Issues nine drawImage calls against the canvas context, pairing each source patch with its destination sub-rectangle. Uses the canvas transform already in effect, so the caller controls world positioning, rotation and scale.

§Arguments
  • &CanvasRenderingContext2d - The canvas context.
  • Rect - The destination rectangle in current canvas space.
Source

pub fn record( &self, list: &mut DrawList, dest_position: Vector2D, dest_width: f64, dest_height: f64, )

Records the nine-slice into a deferred draw list.

The command carries the image plus the insets rather than the nine resolved sub-rectangles, so the split is recomputed at replay time against whatever destination size the command was recorded with.

§Arguments
  • &mut DrawList - The draw list to record into.
  • Vector2D - The destination top-left position in world space.
  • f64 - The destination width in pixels.
  • f64 - The destination height in pixels.
Source§

impl NineSlice

Source

pub fn get_image(&self) -> HtmlImageElement

Source

pub fn get_mut_image(&mut self) -> &mut HtmlImageElement

Source

pub fn set_image(&mut self, val: HtmlImageElement) -> &mut Self

Source

pub fn get_insets(&self) -> NineSliceInsets

Source

pub fn get_mut_insets(&mut self) -> &mut NineSliceInsets

Source

pub fn set_insets(&mut self, val: NineSliceInsets) -> &mut Self

Source§

impl NineSlice

Source

pub fn new(image: HtmlImageElement, insets: NineSliceInsets) -> Self

Trait Implementations§

Source§

impl Clone for NineSlice

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NineSlice

Source§

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

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

impl PartialEq for NineSlice

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for NineSlice

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

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more