diff options
author | Jesse Luehrs <doy@tozt.net> | 2016-04-27 03:53:47 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2016-04-27 03:53:47 -0400 |
commit | cf1692f0950329279b8b4d9d3d8cc46f974c496e (patch) | |
tree | b5a5779d1ce94ba9a90a62f58ade64b3cbc0e224 | |
parent | 8307c66d8c698dc3ff285e8dc60efd1968e9275f (diff) | |
download | vt100-rust-cf1692f0950329279b8b4d9d3d8cc46f974c496e.tar.gz vt100-rust-cf1692f0950329279b8b4d9d3d8cc46f974c496e.zip |
accessors for current screen character attributes
-rw-r--r-- | src/screen.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/screen.rs b/src/screen.rs index 7b6e2a2..4205451 100644 --- a/src/screen.rs +++ b/src/screen.rs @@ -195,6 +195,46 @@ impl Screen { let attrs = unsafe { &(*prefix).attrs }; color::Color::new(&attrs.bgcolor) } + + pub fn bold(&self) -> bool { + let Screen(screen_impl) = *self; + let prefix: *mut ScreenPrefix = unsafe { + std::mem::transmute(screen_impl) + }; + unsafe { + ffi::vt100_wrapper_cell_attrs_bold(&mut (*prefix).attrs) != 0 + } + } + + pub fn italic(&self) -> bool { + let Screen(screen_impl) = *self; + let prefix: *mut ScreenPrefix = unsafe { + std::mem::transmute(screen_impl) + }; + unsafe { + ffi::vt100_wrapper_cell_attrs_italic(&mut (*prefix).attrs) != 0 + } + } + + pub fn underline(&self) -> bool { + let Screen(screen_impl) = *self; + let prefix: *mut ScreenPrefix = unsafe { + std::mem::transmute(screen_impl) + }; + unsafe { + ffi::vt100_wrapper_cell_attrs_underline(&mut (*prefix).attrs) != 0 + } + } + + pub fn inverse(&self) -> bool { + let Screen(screen_impl) = *self; + let prefix: *mut ScreenPrefix = unsafe { + std::mem::transmute(screen_impl) + }; + unsafe { + ffi::vt100_wrapper_cell_attrs_inverse(&mut (*prefix).attrs) != 0 + } + } } impl Drop for Screen { |