diff options
author | rabite <rabite@posteo.de> | 2019-02-01 00:21:16 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-02-01 00:21:16 +0100 |
commit | b7bbcff2840f5b0b0b46f9188ae45be0075f9864 (patch) | |
tree | bc7dc7322403b4cd7c48e26bf8f77dc2a02f8171 /src/widget.rs | |
parent | 305d26d7b6ca2f4b3b289365d3f4d56bb2930d95 (diff) |
lots of stuff.
Diffstat (limited to 'src/widget.rs')
-rw-r--r-- | src/widget.rs | 66 |
1 files changed, 28 insertions, 38 deletions
diff --git a/src/widget.rs b/src/widget.rs index fb731ce..03d89c2 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -1,7 +1,6 @@ -use termion::event::{Key, MouseEvent, Event}; - -use crate::coordinates::{Coordinates, Size, Position}; +use termion::event::{Event, Key, MouseEvent}; +use crate::coordinates::{Coordinates, Position, Size}; pub trait Widget { fn render(&self) -> Vec<String>; @@ -13,7 +12,6 @@ pub trait Widget { fn set_coordinates(&mut self, coordinates: &Coordinates); fn render_header(&self) -> String; - fn on_event(&mut self, event: Event) { match event { Event::Key(Key::Char('q')) => panic!("It's your fault!"), @@ -25,25 +23,19 @@ pub trait Widget { fn on_key(&mut self, key: Key) { match key { - _ => { - self.bad(Event::Key(key)) - } + _ => self.bad(Event::Key(key)), } } fn on_mouse(&mut self, event: MouseEvent) { match event { - _ => { - self.bad(Event::Mouse(event)) - } + _ => self.bad(Event::Mouse(event)), } } fn on_wtf(&mut self, event: Vec<u8>) { match event { - _ => { - self.bad(Event::Unsupported(event)) - } + _ => self.bad(Event::Unsupported(event)), } } @@ -62,7 +54,7 @@ pub trait Widget { fn get_header_drawlist(&mut self) -> String { format!( "{}{}{}{:xsize$}", - crate::term::goto_xy(1,1), + crate::term::goto_xy(1, 1), crate::term::header_color(), self.render_header(), " ", @@ -74,38 +66,36 @@ pub trait Widget { let (xpos, ypos) = self.get_position().position(); let (xsize, ysize) = self.get_size().size(); - let mut clearcmd = String::from(""); - for line in ypos..ysize+2 { - clearcmd += &format!("{}{}{:xsize$}", - crate::term::reset(), - crate::term::goto_xy(xpos, line), - " ", - xsize=xsize as usize); - } - - clearcmd + (ypos..ysize + 2) + .map(|line| { + format!( + "{}{}{:xsize$}", + crate::term::reset(), + crate::term::goto_xy(xpos, line), + " ", + xsize = xsize as usize + ) + }) + .collect() } fn get_redraw_empty_list(&self, lines: usize) -> String { let (xpos, ypos) = self.get_position().position(); let (xsize, ysize) = self.get_size().size(); - let mut output = String::new(); - - if ysize as usize > lines { - let start_y = lines + ypos as usize; - for i in start_y..(ysize+2) as usize { - output += &format!("{}{:xsize$}", - crate::term::goto_xy(xpos,i as u16), - " ", - xsize = xsize as usize); - } - } - - output + let start_y = lines + ypos as usize; + (start_y..(ysize + 2) as usize) + .map(|i| { + format!( + "{}{:xsize$}", + crate::term::goto_xy(xpos, i as u16), + " ", + xsize = xsize as usize + ) + }) + .collect() } - fn refresh(&mut self); fn get_drawlist(&self) -> String; } |