diff options
| author | 2022-11-03 05:15:32 +0100 | |
|---|---|---|
| committer | 2022-11-03 05:15:32 +0100 | |
| commit | d8045e2dc30633553e087ad6f7748235223017d7 (patch) | |
| tree | f1e5d3610f00f4d7d8571fbb8517c263b2439b4c /graphics/src/gradient | |
| parent | 921c94162e50b09604fafeeb319c4a424d64be0e (diff) | |
| download | iced-d8045e2dc30633553e087ad6f7748235223017d7.tar.gz iced-d8045e2dc30633553e087ad6f7748235223017d7.tar.bz2 iced-d8045e2dc30633553e087ad6f7748235223017d7.zip  | |
Move `Position` and `Location` to `gradient` module
Diffstat (limited to 'graphics/src/gradient')
| -rw-r--r-- | graphics/src/gradient/linear.rs | 86 | 
1 files changed, 3 insertions, 83 deletions
diff --git a/graphics/src/gradient/linear.rs b/graphics/src/gradient/linear.rs index 439e848e..9928c1eb 100644 --- a/graphics/src/gradient/linear.rs +++ b/graphics/src/gradient/linear.rs @@ -1,6 +1,6 @@  //! Linear gradient builder & definition. -use crate::gradient::{ColorStop, Gradient}; -use crate::{Color, Point, Size}; +use crate::gradient::{ColorStop, Gradient, Position}; +use crate::{Color, Point};  /// A linear gradient that can be used in the style of [`super::Fill`] or [`super::Stroke`].  #[derive(Debug, Clone, PartialEq)] @@ -13,87 +13,6 @@ pub struct Linear {      pub color_stops: Vec<ColorStop>,  } -#[derive(Debug)] -/// The position of the gradient within its bounds. -pub enum Position { -    /// The gradient will be positioned with respect to two points. -    Absolute { -        /// The starting point of the gradient. -        start: Point, -        /// The ending point of the gradient. -        end: Point, -    }, -    /// The gradient will be positioned relative to the provided bounds. -    Relative { -        /// The top left position of the bounds. -        top_left: Point, -        /// The width & height of the bounds. -        size: Size, -        /// The start [Location] of the gradient. -        start: Location, -        /// The end [Location] of the gradient. -        end: Location, -    }, -} - -impl From<(Point, Point)> for Position { -    fn from((start, end): (Point, Point)) -> Self { -        Self::Absolute { start, end } -    } -} - -#[derive(Debug)] -/// The location of a relatively-positioned gradient. -pub enum Location { -    /// Top left. -    TopLeft, -    /// Top. -    Top, -    /// Top right. -    TopRight, -    /// Right. -    Right, -    /// Bottom right. -    BottomRight, -    /// Bottom. -    Bottom, -    /// Bottom left. -    BottomLeft, -    /// Left. -    Left, -} - -impl Location { -    fn to_absolute(&self, top_left: Point, size: Size) -> Point { -        match self { -            Location::TopLeft => top_left, -            Location::Top => { -                Point::new(top_left.x + size.width / 2.0, top_left.y) -            } -            Location::TopRight => { -                Point::new(top_left.x + size.width, top_left.y) -            } -            Location::Right => Point::new( -                top_left.x + size.width, -                top_left.y + size.height / 2.0, -            ), -            Location::BottomRight => { -                Point::new(top_left.x + size.width, top_left.y + size.height) -            } -            Location::Bottom => Point::new( -                top_left.x + size.width / 2.0, -                top_left.y + size.height, -            ), -            Location::BottomLeft => { -                Point::new(top_left.x, top_left.y + size.height) -            } -            Location::Left => { -                Point::new(top_left.x, top_left.y + size.height / 2.0) -            } -        } -    } -} -  /// A [`Linear`] builder.  #[derive(Debug)]  pub struct Builder { @@ -175,6 +94,7 @@ impl Builder {      }  } +/// An error that happened when building a [`Linear`] gradient.  #[derive(Debug, thiserror::Error)]  pub enum BuilderError {      #[error("Gradients must contain at least one color stop.")]  | 
