diff options
Diffstat (limited to 'src/screen.rs')
-rw-r--r-- | src/screen.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/screen.rs b/src/screen.rs index da96a6a..d3e026f 100644 --- a/src/screen.rs +++ b/src/screen.rs @@ -1,6 +1,7 @@ use libc; use std; +use cell; use ffi; use types; @@ -91,6 +92,17 @@ impl Screen { }.to_vec(); std::string::String::from_utf8(rust_plaintext).unwrap() } + + pub fn cell(&self, row: i32, col: i32) -> Option<cell::Cell> { + let Screen(screen_impl) = *self; + if row < 0 || row >= self.rows() || col < 0 || col >= self.cols() { + return None + } + let cell_impl = unsafe { + ffi::vt100_screen_cell_at(screen_impl, row, col) + }; + Some(cell::Cell::new(cell_impl)) + } } impl Drop for Screen { |