aboutsummaryrefslogtreecommitdiffstats
path: root/src/grid.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-10-31 14:33:05 -0400
committerJesse Luehrs <doy@tozt.net>2019-10-31 14:33:05 -0400
commit91726d4e0695ac4914885aada3304992e51bfb7f (patch)
tree26c44c77dbbba329a7633b3bfa6b5bd21628bafa /src/grid.rs
parent4ca747a83a82612f8fcd4e762ef701993e55b95c (diff)
downloadvt100-rust-91726d4e0695ac4914885aada3304992e51bfb7f.tar.gz
vt100-rust-91726d4e0695ac4914885aada3304992e51bfb7f.zip
implement window_contents_formatted
Diffstat (limited to 'src/grid.rs')
-rw-r--r--src/grid.rs18
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) {