Skip to main content

ShadowSpec

Struct ShadowSpec 

Source
pub struct ShadowSpec {
    pub offset_x: f32,
    pub offset_y: f32,
    pub blur: f32,
    pub spread: f32,
    pub color: Color,
    pub inset: bool,
}
Expand description

A box-shadow specification.

Fields§

§offset_x: f32

Horizontal offset in logical pixels.

§offset_y: f32

Vertical offset in logical pixels.

§blur: f32

Blur radius in logical pixels.

§spread: f32

Spread radius in logical pixels (grows the shadow before blurring).

§color: Color

Shadow colour (usually semi-transparent black).

§inset: bool

Whether the shadow is drawn inside the box (inset) rather than outside.

Implementations§

Source§

impl ShadowSpec

Source

pub const fn drop(offset_y: f32, blur: f32, color: Color) -> Self

A drop shadow (outset) with the given parameters.

Source

pub fn new( offset_x: f32, offset_y: f32, blur_radius: f32, color_rgba: [u8; 4], ) -> Self

Construct a shadow from explicit offset, blur, and RGBA byte array.

color_rgba is [r, g, b, a] where each channel is 0..=255. spread defaults to 0 and inset defaults to false.

Source

pub fn drop_shadow(offset_x: f32, offset_y: f32, blur: f32) -> Self

Construct a directional drop shadow with a default semi-transparent black colour.

Equivalent to ShadowSpec::new(offset_x, offset_y, blur, [0, 0, 0, 160]).

Source

pub fn with_spread(self, spread: f32) -> Self

Builder: set the spread radius (positive expands, negative contracts).

Source

pub fn with_inset(self, inset: bool) -> Self

Builder: set the inset flag.

Source

pub fn to_pixel_color(&self) -> u32

Encode the shadow colour as a packed 0xAARRGGBB u32.

§Example
let spec = ShadowSpec::new(0.0, 0.0, 0.0, [255, 0, 0, 128]);
assert_eq!(spec.to_pixel_color(), 0x80FF_0000);
Source

pub fn is_invisible(&self) -> bool

Returns true if this shadow would render nothing.

Trait Implementations§

Source§

impl Clone for ShadowSpec

Source§

fn clone(&self) -> ShadowSpec

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 ShadowSpec

Source§

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

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

impl PartialEq for ShadowSpec

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Copy for ShadowSpec

Source§

impl StructuralPartialEq for ShadowSpec

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 = 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.