summaryrefslogtreecommitdiffstats
path: root/graphics/src/widget/canvas/stroke.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-05-11 16:45:08 +0200
committerLibravatar GitHub <noreply@github.com>2023-05-11 16:45:08 +0200
commit669f7cc74b2e7918e86a8197916f503f2d3d9b93 (patch)
treeacb365358235be6ce115b50db9404d890b6e77a6 /graphics/src/widget/canvas/stroke.rs
parentbc62013b6cde52174bf4c4286939cf170bfa7760 (diff)
parent63d3fc6996b848e10e77e6924bfebdf6ba82852e (diff)
downloadiced-669f7cc74b2e7918e86a8197916f503f2d3d9b93.tar.gz
iced-669f7cc74b2e7918e86a8197916f503f2d3d9b93.tar.bz2
iced-669f7cc74b2e7918e86a8197916f503f2d3d9b93.zip
Merge pull request #1830 from iced-rs/advanced-text
Advanced text
Diffstat (limited to 'graphics/src/widget/canvas/stroke.rs')
-rw-r--r--graphics/src/widget/canvas/stroke.rs116
1 files changed, 0 insertions, 116 deletions
diff --git a/graphics/src/widget/canvas/stroke.rs b/graphics/src/widget/canvas/stroke.rs
deleted file mode 100644
index 49f5701c..00000000
--- a/graphics/src/widget/canvas/stroke.rs
+++ /dev/null
@@ -1,116 +0,0 @@
-//! Create lines from a [crate::widget::canvas::Path] and assigns them various attributes/styles.
-pub use crate::widget::canvas::Style;
-
-use iced_native::Color;
-
-/// The style of a stroke.
-#[derive(Debug, Clone)]
-pub struct Stroke<'a> {
- /// The color or gradient of the stroke.
- ///
- /// By default, it is set to a [`Style::Solid`] with [`Color::BLACK`].
- pub style: Style,
- /// The distance between the two edges of the stroke.
- pub width: f32,
- /// The shape to be used at the end of open subpaths when they are stroked.
- pub line_cap: LineCap,
- /// The shape to be used at the corners of paths or basic shapes when they
- /// are stroked.
- pub line_join: LineJoin,
- /// The dash pattern used when stroking the line.
- pub line_dash: LineDash<'a>,
-}
-
-impl<'a> Stroke<'a> {
- /// Sets the color of the [`Stroke`].
- pub fn with_color(self, color: Color) -> Self {
- Stroke {
- style: Style::Solid(color),
- ..self
- }
- }
-
- /// Sets the width of the [`Stroke`].
- pub fn with_width(self, width: f32) -> Self {
- Stroke { width, ..self }
- }
-
- /// Sets the [`LineCap`] of the [`Stroke`].
- pub fn with_line_cap(self, line_cap: LineCap) -> Self {
- Stroke { line_cap, ..self }
- }
-
- /// Sets the [`LineJoin`] of the [`Stroke`].
- pub fn with_line_join(self, line_join: LineJoin) -> Self {
- Stroke { line_join, ..self }
- }
-}
-
-impl<'a> Default for Stroke<'a> {
- fn default() -> Self {
- Stroke {
- style: Style::Solid(Color::BLACK),
- width: 1.0,
- line_cap: LineCap::default(),
- line_join: LineJoin::default(),
- line_dash: LineDash::default(),
- }
- }
-}
-
-/// The shape used at the end of open subpaths when they are stroked.
-#[derive(Debug, Clone, Copy, Default)]
-pub enum LineCap {
- /// The stroke for each sub-path does not extend beyond its two endpoints.
- #[default]
- Butt,
- /// At the end of each sub-path, the shape representing the stroke will be
- /// extended by a square.
- Square,
- /// At the end of each sub-path, the shape representing the stroke will be
- /// extended by a semicircle.
- Round,
-}
-
-impl From<LineCap> for lyon::tessellation::LineCap {
- fn from(line_cap: LineCap) -> lyon::tessellation::LineCap {
- match line_cap {
- LineCap::Butt => lyon::tessellation::LineCap::Butt,
- LineCap::Square => lyon::tessellation::LineCap::Square,
- LineCap::Round => lyon::tessellation::LineCap::Round,
- }
- }
-}
-
-/// The shape used at the corners of paths or basic shapes when they are
-/// stroked.
-#[derive(Debug, Clone, Copy, Default)]
-pub enum LineJoin {
- /// A sharp corner.
- #[default]
- Miter,
- /// A round corner.
- Round,
- /// A bevelled corner.
- Bevel,
-}
-
-impl From<LineJoin> for lyon::tessellation::LineJoin {
- fn from(line_join: LineJoin) -> lyon::tessellation::LineJoin {
- match line_join {
- LineJoin::Miter => lyon::tessellation::LineJoin::Miter,
- LineJoin::Round => lyon::tessellation::LineJoin::Round,
- LineJoin::Bevel => lyon::tessellation::LineJoin::Bevel,
- }
- }
-}
-
-/// The dash pattern used when stroking the line.
-#[derive(Debug, Clone, Copy, Default)]
-pub struct LineDash<'a> {
- /// The alternating lengths of lines and gaps which describe the pattern.
- pub segments: &'a [f32],
-
- /// The offset of [`LineDash::segments`] to start the pattern.
- pub offset: usize,
-}