diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-10-31 14:33:05 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-10-31 14:33:05 -0400 |
commit | 91726d4e0695ac4914885aada3304992e51bfb7f (patch) | |
tree | 26c44c77dbbba329a7633b3bfa6b5bd21628bafa /src/grid.rs | |
parent | 4ca747a83a82612f8fcd4e762ef701993e55b95c (diff) | |
download | vt100-rust-91726d4e0695ac4914885aada3304992e51bfb7f.tar.gz vt100-rust-91726d4e0695ac4914885aada3304992e51bfb7f.zip |
implement window_contents_formatted
Diffstat (limited to 'src/grid.rs')
-rw-r--r-- | src/grid.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/grid.rs b/src/grid.rs index 8b03dac..0d5a071 100644 --- a/src/grid.rs +++ b/src/grid.rs @@ -86,12 +86,20 @@ impl Grid { pub fn window_contents_formatted( &self, - _row_start: u16, - _col_start: u16, - _row_end: u16, - _col_end: u16, + row_start: u16, + col_start: u16, + row_end: u16, + col_end: u16, ) -> String { - unimplemented!() + let mut contents = String::new(); + let mut prev_attrs = crate::attrs::Attrs::default(); + for row in row_start..=(row_end.min(self.size.rows - 1)) { + let (new_contents, new_attrs) = &self.rows[row as usize] + .contents_formatted(col_start, col_end, prev_attrs); + contents += new_contents; + prev_attrs = *new_attrs; + } + contents } pub fn erase_all(&mut self) { |