diff options
Diffstat (limited to 'examples/clock/src/main.rs')
-rw-r--r-- | examples/clock/src/main.rs | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/examples/clock/src/main.rs b/examples/clock/src/main.rs index 325ccc1a..8818fb54 100644 --- a/examples/clock/src/main.rs +++ b/examples/clock/src/main.rs @@ -1,7 +1,9 @@ +use iced::executor; +use iced::widget::canvas::{Cache, Cursor, Geometry, LineCap, Path, Stroke}; +use iced::widget::{canvas, container}; use iced::{ - canvas::{self, Cache, Canvas, Cursor, Geometry, LineCap, Path, Stroke}, - executor, Application, Color, Command, Container, Element, Length, Point, - Rectangle, Settings, Subscription, Vector, + Application, Color, Command, Element, Length, Point, Rectangle, Settings, + Subscription, Theme, Vector, }; pub fn main() -> iced::Result { @@ -22,8 +24,9 @@ enum Message { } impl Application for Clock { - type Executor = executor::Default; type Message = Message; + type Theme = Theme; + type Executor = executor::Default; type Flags = (); fn new(_flags: ()) -> (Self, Command<Message>) { @@ -65,10 +68,12 @@ impl Application for Clock { }) } - fn view(&mut self) -> Element<Message> { - let canvas = Canvas::new(self).width(Length::Fill).height(Length::Fill); + fn view(&self) -> Element<Message> { + let canvas = canvas(self as &Self) + .width(Length::Fill) + .height(Length::Fill); - Container::new(canvas) + container(canvas) .width(Length::Fill) .height(Length::Fill) .padding(20) @@ -76,8 +81,16 @@ impl Application for Clock { } } -impl canvas::Program<Message> for Clock { - fn draw(&self, bounds: Rectangle, _cursor: Cursor) -> Vec<Geometry> { +impl<Message> canvas::Program<Message> for Clock { + type State = (); + + fn draw( + &self, + _state: &Self::State, + _theme: &Theme, + bounds: Rectangle, + _cursor: Cursor, + ) -> Vec<Geometry> { let clock = self.clock.draw(bounds.size(), |frame| { let center = frame.center(); let radius = frame.width().min(frame.height()) / 2.0; |