| 1 | // Copyright © SixtyFPS GmbH <info@slint.dev> |
| 2 | // SPDX-License-Identifier: MIT |
| 3 | |
| 4 | use crate::ui::*; |
| 5 | use chrono::prelude::*; |
| 6 | use slint::*; |
| 7 | |
| 8 | pub fn setup(window: &MainWindow) -> Timer { |
| 9 | let update_timer: Timer = Timer::default(); |
| 10 | update_timer.start(mode:slint::TimerMode::Repeated, interval:std::time::Duration::from_millis(300), { |
| 11 | let weak_window: Weak = window.as_weak(); |
| 12 | |
| 13 | move || { |
| 14 | update(&weak_window.unwrap().global::<HeaderAdapter>()); |
| 15 | } |
| 16 | }); |
| 17 | |
| 18 | update_timer |
| 19 | } |
| 20 | |
| 21 | fn update(header_adapter: &HeaderAdapter) { |
| 22 | let now: DateTime = Local::now(); |
| 23 | |
| 24 | header_adapter.set_date(slint::format!(" {}" , now.format("%A %e %B %Y" ))); |
| 25 | header_adapter.set_time(slint::format!(" {}" , now.format("%I:%M" ))); |
| 26 | header_adapter.set_time_suffix(slint::format!(" {}" , now.format("%p" ))); |
| 27 | } |
| 28 | |