From 53a183fe0d6aed460fbb8155ac9541757277aab3 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector@hecrj.dev>
Date: Fri, 22 Mar 2024 01:35:14 +0100
Subject: Restore `canvas::Frame` API

---
 examples/arc/src/main.rs                  |  2 +-
 examples/bezier_tool/src/main.rs          | 10 ++++------
 examples/clock/src/main.rs                |  4 +---
 examples/color_palette/src/main.rs        |  2 +-
 examples/game_of_life/src/main.rs         |  8 +++-----
 examples/layout/src/main.rs               |  6 ++----
 examples/loading_spinners/src/circular.rs |  2 +-
 examples/multitouch/src/main.rs           |  2 --
 examples/sierpinski_triangle/src/main.rs  |  2 --
 examples/solar_system/src/main.rs         |  1 -
 examples/vectorial_text/src/main.rs       |  2 --
 11 files changed, 13 insertions(+), 28 deletions(-)

(limited to 'examples')

diff --git a/examples/arc/src/main.rs b/examples/arc/src/main.rs
index 0aba82a9..4576404f 100644
--- a/examples/arc/src/main.rs
+++ b/examples/arc/src/main.rs
@@ -2,7 +2,7 @@ use std::{f32::consts::PI, time::Instant};
 
 use iced::mouse;
 use iced::widget::canvas::{
-    self, stroke, Cache, Canvas, Frame, Geometry, Path, Stroke,
+    self, stroke, Cache, Canvas, Geometry, Path, Stroke,
 };
 use iced::{Element, Length, Point, Rectangle, Renderer, Subscription, Theme};
 
diff --git a/examples/bezier_tool/src/main.rs b/examples/bezier_tool/src/main.rs
index 31d1e29c..289c919b 100644
--- a/examples/bezier_tool/src/main.rs
+++ b/examples/bezier_tool/src/main.rs
@@ -52,9 +52,7 @@ impl Example {
 mod bezier {
     use iced::mouse;
     use iced::widget::canvas::event::{self, Event};
-    use iced::widget::canvas::{
-        self, frame, Canvas, Frame, Geometry, Path, Stroke,
-    };
+    use iced::widget::canvas::{self, Canvas, Frame, Geometry, Path, Stroke};
     use iced::{Element, Length, Point, Rectangle, Renderer, Theme};
 
     #[derive(Default)]
@@ -184,7 +182,7 @@ mod bezier {
     }
 
     impl Curve {
-        fn draw_all(curves: &[Curve], frame: &mut impl Frame) {
+        fn draw_all(curves: &[Curve], frame: &mut Frame) {
             let curves = Path::new(|p| {
                 for curve in curves {
                     p.move_to(curve.from);
@@ -209,7 +207,7 @@ mod bezier {
             bounds: Rectangle,
             cursor: mouse::Cursor,
         ) -> Geometry {
-            let mut frame = frame(renderer, bounds.size());
+            let mut frame = Frame::new(renderer, bounds.size());
 
             if let Some(cursor_position) = cursor.position_in(bounds) {
                 match *self {
@@ -229,7 +227,7 @@ mod bezier {
                 };
             }
 
-            frame.into()
+            frame.into_geometry()
         }
     }
 }
diff --git a/examples/clock/src/main.rs b/examples/clock/src/main.rs
index 468443bc..897f8f1b 100644
--- a/examples/clock/src/main.rs
+++ b/examples/clock/src/main.rs
@@ -1,8 +1,6 @@
 use iced::alignment;
 use iced::mouse;
-use iced::widget::canvas::{
-    stroke, Cache, Frame, Geometry, LineCap, Path, Stroke,
-};
+use iced::widget::canvas::{stroke, Cache, Geometry, LineCap, Path, Stroke};
 use iced::widget::{canvas, container};
 use iced::{
     Degrees, Element, Font, Length, Point, Rectangle, Renderer, Subscription,
diff --git a/examples/color_palette/src/main.rs b/examples/color_palette/src/main.rs
index 81ad6e41..d9325edb 100644
--- a/examples/color_palette/src/main.rs
+++ b/examples/color_palette/src/main.rs
@@ -156,7 +156,7 @@ impl Theme {
             .into()
     }
 
-    fn draw(&self, frame: &mut impl Frame, text_color: Color) {
+    fn draw(&self, frame: &mut Frame, text_color: Color) {
         let pad = 20.0;
 
         let box_size = Size {
diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs
index a3d385f3..0716b2a4 100644
--- a/examples/game_of_life/src/main.rs
+++ b/examples/game_of_life/src/main.rs
@@ -193,9 +193,7 @@ mod grid {
     use iced::touch;
     use iced::widget::canvas;
     use iced::widget::canvas::event::{self, Event};
-    use iced::widget::canvas::{
-        frame, Cache, Canvas, Frame, Geometry, Path, Text,
-    };
+    use iced::widget::canvas::{Cache, Canvas, Frame, Geometry, Path, Text};
     use iced::{
         Color, Element, Length, Point, Rectangle, Renderer, Size, Theme, Vector,
     };
@@ -548,7 +546,7 @@ mod grid {
             });
 
             let overlay = {
-                let mut frame = frame(renderer, bounds.size());
+                let mut frame = Frame::new(renderer, bounds.size());
 
                 let hovered_cell = cursor.position_in(bounds).map(|position| {
                     Cell::at(self.project(position, frame.size()))
@@ -601,7 +599,7 @@ mod grid {
                     ..text
                 });
 
-                frame.into()
+                frame.into_geometry()
             };
 
             if self.scaling >= 0.2 && self.show_lines {
diff --git a/examples/layout/src/main.rs b/examples/layout/src/main.rs
index 35d2d3ba..713e2b70 100644
--- a/examples/layout/src/main.rs
+++ b/examples/layout/src/main.rs
@@ -297,9 +297,7 @@ fn square<'a>(size: impl Into<Length> + Copy) -> Element<'a, Message> {
             bounds: Rectangle,
             _cursor: mouse::Cursor,
         ) -> Vec<canvas::Geometry> {
-            use canvas::Frame;
-
-            let mut frame = canvas::frame(renderer, bounds.size());
+            let mut frame = canvas::Frame::new(renderer, bounds.size());
 
             let palette = theme.extended_palette();
 
@@ -309,7 +307,7 @@ fn square<'a>(size: impl Into<Length> + Copy) -> Element<'a, Message> {
                 palette.background.strong.color,
             );
 
-            vec![frame.into()]
+            vec![frame.into_geometry()]
         }
     }
 
diff --git a/examples/loading_spinners/src/circular.rs b/examples/loading_spinners/src/circular.rs
index 306988af..cdc6b7ac 100644
--- a/examples/loading_spinners/src/circular.rs
+++ b/examples/loading_spinners/src/circular.rs
@@ -6,7 +6,7 @@ use iced::advanced::{self, Clipboard, Layout, Shell, Widget};
 use iced::event;
 use iced::mouse;
 use iced::time::Instant;
-use iced::widget::canvas::{self, Frame};
+use iced::widget::canvas;
 use iced::window::{self, RedrawRequest};
 use iced::{
     Background, Color, Element, Event, Length, Radians, Rectangle, Renderer,
diff --git a/examples/multitouch/src/main.rs b/examples/multitouch/src/main.rs
index 6d9039fa..2453c7f5 100644
--- a/examples/multitouch/src/main.rs
+++ b/examples/multitouch/src/main.rs
@@ -88,8 +88,6 @@ impl canvas::Program<Message> for Multitouch {
         bounds: Rectangle,
         _cursor: mouse::Cursor,
     ) -> Vec<Geometry> {
-        use canvas::Frame;
-
         let fingerweb = self.cache.draw(renderer, bounds.size(), |frame| {
             if self.fingers.len() < 2 {
                 return;
diff --git a/examples/sierpinski_triangle/src/main.rs b/examples/sierpinski_triangle/src/main.rs
index 409bc718..9cd6237f 100644
--- a/examples/sierpinski_triangle/src/main.rs
+++ b/examples/sierpinski_triangle/src/main.rs
@@ -112,8 +112,6 @@ impl canvas::Program<Message> for SierpinskiGraph {
         bounds: Rectangle,
         _cursor: mouse::Cursor,
     ) -> Vec<Geometry> {
-        use canvas::Frame;
-
         let geom = self.cache.draw(renderer, bounds.size(), |frame| {
             frame.stroke(
                 &canvas::Path::rectangle(Point::ORIGIN, frame.size()),
diff --git a/examples/solar_system/src/main.rs b/examples/solar_system/src/main.rs
index e8f94ed0..deb211d8 100644
--- a/examples/solar_system/src/main.rs
+++ b/examples/solar_system/src/main.rs
@@ -131,7 +131,6 @@ impl<Message> canvas::Program<Message> for State {
         bounds: Rectangle,
         _cursor: mouse::Cursor,
     ) -> Vec<Geometry> {
-        use canvas::Frame;
         use std::f32::consts::PI;
 
         let background =
diff --git a/examples/vectorial_text/src/main.rs b/examples/vectorial_text/src/main.rs
index 9b605d23..a7391e23 100644
--- a/examples/vectorial_text/src/main.rs
+++ b/examples/vectorial_text/src/main.rs
@@ -129,8 +129,6 @@ impl<Message> canvas::Program<Message> for State {
         bounds: Rectangle,
         _cursor: mouse::Cursor,
     ) -> Vec<canvas::Geometry> {
-        use canvas::Frame;
-
         let geometry = self.cache.draw(renderer, bounds.size(), |frame| {
             let palette = theme.palette();
             let center = bounds.center();
-- 
cgit