Add calendar, refactor more
This commit is contained in:
+13
-4
@@ -4,6 +4,7 @@ use crate::{
|
||||
buffer::BufferView,
|
||||
color::Color,
|
||||
fonts::FontMap,
|
||||
state::Event,
|
||||
widgets::{Geometry, Widget},
|
||||
};
|
||||
|
||||
@@ -19,7 +20,8 @@ pub struct Date {
|
||||
impl Date {
|
||||
pub fn new(font: &'static str, size: f32) -> Date {
|
||||
Date {
|
||||
font, size,
|
||||
font,
|
||||
size,
|
||||
dirty: true,
|
||||
geometry: Default::default(),
|
||||
}
|
||||
@@ -27,9 +29,6 @@ impl Date {
|
||||
}
|
||||
|
||||
impl<'a> Widget for Date {
|
||||
fn set_dirty(&mut self, dirty: bool) {
|
||||
self.dirty = dirty;
|
||||
}
|
||||
fn get_dirty(&self) -> bool {
|
||||
self.dirty
|
||||
}
|
||||
@@ -38,6 +37,15 @@ impl<'a> Widget for Date {
|
||||
self.geometry
|
||||
}
|
||||
|
||||
fn event(&mut self, event: &Event) {
|
||||
match event {
|
||||
Event::NewMinute => {
|
||||
self.dirty = true;
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
fn draw(&mut self, fonts: &mut FontMap, view: &mut BufferView) -> Geometry {
|
||||
let time = Local::now().naive_local();
|
||||
let fg = Color::new(1., 1., 1., 1.);
|
||||
@@ -57,6 +65,7 @@ impl<'a> Widget for Date {
|
||||
),
|
||||
)
|
||||
.unwrap();
|
||||
self.dirty = false;
|
||||
self.geometry
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user