Replace chrono with time in clock example
This commit is contained in:
parent
8f97619785
commit
aaf2444e9f
2 changed files with 14 additions and 11 deletions
|
|
@ -7,4 +7,4 @@ publish = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
iced = { path = "../..", features = ["canvas", "tokio", "debug"] }
|
iced = { path = "../..", features = ["canvas", "tokio", "debug"] }
|
||||||
chrono = "0.4"
|
time = { version = "0.3.5", features = ["local-offset"] }
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
canvas::{self, Cache, Canvas, Cursor, Geometry, LineCap, Path, Stroke},
|
canvas::{self, Cache, Canvas, Cursor, Geometry, LineCap, Path, Stroke},
|
||||||
executor, time, Application, Color, Command, Container, Element, Length,
|
executor, Application, Color, Command, Container, Element, Length, Point,
|
||||||
Point, Rectangle, Settings, Subscription, Vector,
|
Rectangle, Settings, Subscription, Vector,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -12,13 +12,13 @@ pub fn main() -> iced::Result {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Clock {
|
struct Clock {
|
||||||
now: chrono::DateTime<chrono::Local>,
|
now: time::OffsetDateTime,
|
||||||
clock: Cache,
|
clock: Cache,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
enum Message {
|
enum Message {
|
||||||
Tick(chrono::DateTime<chrono::Local>),
|
Tick(time::OffsetDateTime),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Application for Clock {
|
impl Application for Clock {
|
||||||
|
|
@ -29,7 +29,8 @@ impl Application for Clock {
|
||||||
fn new(_flags: ()) -> (Self, Command<Message>) {
|
fn new(_flags: ()) -> (Self, Command<Message>) {
|
||||||
(
|
(
|
||||||
Clock {
|
Clock {
|
||||||
now: chrono::Local::now(),
|
now: time::OffsetDateTime::now_local()
|
||||||
|
.unwrap_or_else(|_| time::OffsetDateTime::now_utc()),
|
||||||
clock: Default::default(),
|
clock: Default::default(),
|
||||||
},
|
},
|
||||||
Command::none(),
|
Command::none(),
|
||||||
|
|
@ -56,8 +57,12 @@ impl Application for Clock {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn subscription(&self) -> Subscription<Message> {
|
fn subscription(&self) -> Subscription<Message> {
|
||||||
time::every(std::time::Duration::from_millis(500))
|
iced::time::every(std::time::Duration::from_millis(500)).map(|_| {
|
||||||
.map(|_| Message::Tick(chrono::Local::now()))
|
Message::Tick(
|
||||||
|
time::OffsetDateTime::now_local()
|
||||||
|
.unwrap_or_else(|_| time::OffsetDateTime::now_utc()),
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn view(&mut self) -> Element<Message> {
|
fn view(&mut self) -> Element<Message> {
|
||||||
|
|
@ -77,8 +82,6 @@ impl Application for Clock {
|
||||||
|
|
||||||
impl canvas::Program<Message> for Clock {
|
impl canvas::Program<Message> for Clock {
|
||||||
fn draw(&self, bounds: Rectangle, _cursor: Cursor) -> Vec<Geometry> {
|
fn draw(&self, bounds: Rectangle, _cursor: Cursor) -> Vec<Geometry> {
|
||||||
use chrono::Timelike;
|
|
||||||
|
|
||||||
let clock = self.clock.draw(bounds.size(), |frame| {
|
let clock = self.clock.draw(bounds.size(), |frame| {
|
||||||
let center = frame.center();
|
let center = frame.center();
|
||||||
let radius = frame.width().min(frame.height()) / 2.0;
|
let radius = frame.width().min(frame.height()) / 2.0;
|
||||||
|
|
@ -126,7 +129,7 @@ impl canvas::Program<Message> for Clock {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn hand_rotation(n: u32, total: u32) -> f32 {
|
fn hand_rotation(n: u8, total: u8) -> f32 {
|
||||||
let turns = n as f32 / total as f32;
|
let turns = n as f32 / total as f32;
|
||||||
|
|
||||||
2.0 * std::f32::consts::PI * turns
|
2.0 * std::f32::consts::PI * turns
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue