diff options
| author | 2023-03-03 04:57:55 +0100 | |
|---|---|---|
| committer | 2023-03-03 04:57:55 +0100 | |
| commit | 6cc48b5c62bac287b8f9f1c79c1fb7486c51b18f (patch) | |
| tree | 7a9d57f52e3bee9f4d910c89178dc3e2917957a1 /graphics/src/geometry/fill.rs | |
| parent | d13d19ba3569560edd67f20b48f37548d10ceee9 (diff) | |
| download | iced-6cc48b5c62bac287b8f9f1c79c1fb7486c51b18f.tar.gz iced-6cc48b5c62bac287b8f9f1c79c1fb7486c51b18f.tar.bz2 iced-6cc48b5c62bac287b8f9f1c79c1fb7486c51b18f.zip  | |
Move `Canvas` and `QRCode` to `iced` crate
Rename `canvas` modules to `geometry` in graphics subcrates
Diffstat (limited to 'graphics/src/geometry/fill.rs')
| -rw-r--r-- | graphics/src/geometry/fill.rs | 63 | 
1 files changed, 63 insertions, 0 deletions
diff --git a/graphics/src/geometry/fill.rs b/graphics/src/geometry/fill.rs new file mode 100644 index 00000000..109d5e99 --- /dev/null +++ b/graphics/src/geometry/fill.rs @@ -0,0 +1,63 @@ +//! Fill [crate::widget::canvas::Geometry] with a certain style. +use crate::{Color, Gradient}; + +pub use crate::geometry::Style; + +/// The style used to fill geometry. +#[derive(Debug, Clone)] +pub struct Fill { +    /// The color or gradient of the fill. +    /// +    /// By default, it is set to [`Style::Solid`] with [`Color::BLACK`]. +    pub style: Style, + +    /// The fill rule defines how to determine what is inside and what is +    /// outside of a shape. +    /// +    /// See the [SVG specification][1] for more details. +    /// +    /// By default, it is set to `NonZero`. +    /// +    /// [1]: https://www.w3.org/TR/SVG/painting.html#FillRuleProperty +    pub rule: Rule, +} + +impl Default for Fill { +    fn default() -> Self { +        Self { +            style: Style::Solid(Color::BLACK), +            rule: Rule::NonZero, +        } +    } +} + +impl From<Color> for Fill { +    fn from(color: Color) -> Fill { +        Fill { +            style: Style::Solid(color), +            ..Fill::default() +        } +    } +} + +impl From<Gradient> for Fill { +    fn from(gradient: Gradient) -> Self { +        Fill { +            style: Style::Gradient(gradient), +            ..Default::default() +        } +    } +} + +/// The fill rule defines how to determine what is inside and what is outside of +/// a shape. +/// +/// See the [SVG specification][1]. +/// +/// [1]: https://www.w3.org/TR/SVG/painting.html#FillRuleProperty +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[allow(missing_docs)] +pub enum Rule { +    NonZero, +    EvenOdd, +}  | 
