From aedff3ffa7259b7daefa4d1ec96e75015edd4e96 Mon Sep 17 00:00:00 2001 From: Akshay Date: Sat, 15 Feb 2020 18:21:09 +0530 Subject: rework views --- src/views/countview.rs | 92 -------------------------------------------------- 1 file changed, 92 deletions(-) delete mode 100644 src/views/countview.rs (limited to 'src/views/countview.rs') diff --git a/src/views/countview.rs b/src/views/countview.rs deleted file mode 100644 index d906acb..0000000 --- a/src/views/countview.rs +++ /dev/null @@ -1,92 +0,0 @@ -use cursive::direction::Direction; -use cursive::event::{Event, EventResult, Key}; -use cursive::theme::{BaseColor, Color, Style}; -use cursive::view::View; -use cursive::{Printer, Vec2}; - -use chrono::prelude::*; -use chrono::{Local, NaiveDate}; - -use crate::habit::Habit; - -pub struct CountView { - habit: Habit, - future_chr: char, - - view_width: u32, - view_height: u32, - // color config -} - -impl CountView { - pub fn new(habit: Habit) -> Self { - return CountView { - habit, - future_chr: 'ยท', - view_width: 21, - view_height: 9, - }; - } - pub fn get_title(&self) -> String { - return self.habit.get_name().to_owned(); - } -} - -impl View for CountView { - fn draw(&self, printer: &Printer) { - let now = Local::now(); - let year = now.year(); - let month = now.month(); - - let goal_reached_style = Style::from(Color::Dark(BaseColor::Cyan)); - let not_reached_style = Style::from(Color::Dark(BaseColor::Magenta)); - let future_style = Style::from(Color::Light(BaseColor::Black)); - - for i in 1..=31 { - let day = NaiveDate::from_ymd_opt(year, month, i); - let day_style; - - if let Some(d) = day { - let coords = ((i % 7) * 3, i / 7 + 2); - let mut day_count = self.habit.get_by_date(d).unwrap_or(&0).to_string(); - - if d <= now.naive_utc().date() { - if self.habit.reached_goal(d) { - day_style = goal_reached_style; - } else { - day_style = not_reached_style; - } - } else { - day_count = format!("{:^3}", self.future_chr); - day_style = future_style; - } - - printer.with_style(day_style, |p| { - p.print(coords, &format!("{:^3}", day_count)); - }); - } - } - } - - fn required_size(&mut self, _: Vec2) -> Vec2 { - (self.view_width, self.view_height).into() - } - - fn take_focus(&mut self, _: Direction) -> bool { - true - } - - fn on_event(&mut self, e: Event) -> EventResult { - match e { - Event::Key(Key::Enter) | Event::Char('n') => { - self.habit.increment(Local::now().naive_utc().date()); - return EventResult::Consumed(None); - } - Event::Key(Key::Backspace) | Event::Char('p') => { - self.habit.decrement(Local::now().naive_utc().date()); - return EventResult::Consumed(None); - } - _ => return EventResult::Ignored, - } - } -} -- cgit v1.2.3