diff options
author | Jesse Luehrs <doy@tozt.net> | 2016-04-27 23:36:23 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2016-04-27 23:36:23 -0400 |
commit | 0d34c6cc4ec8d710550c2a8bcf491be4face7280 (patch) | |
tree | f13b2d15a09c62b503781d18c41371e6f7e5deb4 | |
parent | 61df526acf4687b6b393b1e6c435e613a5dc7db3 (diff) | |
download | vt100-rust-0d34c6cc4ec8d710550c2a8bcf491be4face7280.tar.gz vt100-rust-0d34c6cc4ec8d710550c2a8bcf491be4face7280.zip |
a few more accessors
-rw-r--r-- | src/ffi.c | 50 | ||||
-rw-r--r-- | src/ffi.rs | 10 | ||||
-rw-r--r-- | src/screen.rs | 45 |
3 files changed, 105 insertions, 0 deletions
@@ -41,6 +41,56 @@ int vt100_wrapper_screen_bracketed_paste(struct vt100_screen *screen) return screen->bracketed_paste; } +int vt100_wrapper_screen_visual_bell(struct vt100_screen *screen) +{ + return screen->visual_bell; +} + +int vt100_wrapper_screen_audible_bell(struct vt100_screen *screen) +{ + return screen->audible_bell; +} + +int vt100_wrapper_screen_update_title(struct vt100_screen *screen) +{ + return screen->update_title; +} + +int vt100_wrapper_screen_update_icon_name(struct vt100_screen *screen) +{ + return screen->update_icon_name; +} + +int vt100_wrapper_screen_dirty(struct vt100_screen *screen) +{ + return screen->dirty; +} + +void vt100_wrapper_screen_clear_visual_bell(struct vt100_screen *screen) +{ + screen->visual_bell = 0; +} + +void vt100_wrapper_screen_clear_audible_bell(struct vt100_screen *screen) +{ + screen->audible_bell = 0; +} + +void vt100_wrapper_screen_clear_update_title(struct vt100_screen *screen) +{ + screen->update_title = 0; +} + +void vt100_wrapper_screen_clear_update_icon_name(struct vt100_screen *screen) +{ + screen->update_icon_name = 0; +} + +void vt100_wrapper_screen_clear_dirty(struct vt100_screen *screen) +{ + screen->dirty = 0; +} + int vt100_wrapper_cell_is_wide(struct vt100_cell *cell) { return cell->is_wide; @@ -46,6 +46,16 @@ extern "C" { pub fn vt100_wrapper_screen_mouse_reporting_button_motion(screen: *mut types::ScreenImpl) -> libc::c_int; pub fn vt100_wrapper_screen_mouse_reporting_sgr_mode(screen: *mut types::ScreenImpl) -> libc::c_int; pub fn vt100_wrapper_screen_bracketed_paste(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_visual_bell(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_audible_bell(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_update_title(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_update_icon_name(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_dirty(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_clear_visual_bell(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_clear_audible_bell(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_clear_update_title(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_clear_update_icon_name(screen: *mut types::ScreenImpl) -> libc::c_int; + pub fn vt100_wrapper_screen_clear_dirty(screen: *mut types::ScreenImpl) -> libc::c_int; pub fn vt100_wrapper_cell_is_wide(cell: *mut types::CellImpl) -> libc::c_int; pub fn vt100_wrapper_cell_attrs_bold(cell: *mut types::CellAttrs) -> libc::c_int; pub fn vt100_wrapper_cell_attrs_italic(cell: *mut types::CellAttrs) -> libc::c_int; diff --git a/src/screen.rs b/src/screen.rs index 2251506..0a41a2d 100644 --- a/src/screen.rs +++ b/src/screen.rs @@ -291,6 +291,51 @@ impl Screen { ffi::vt100_wrapper_screen_bracketed_paste(screen_impl) != 0 } } + + pub fn check_visual_bell(&self) -> bool { + let Screen(screen_impl) = *self; + unsafe { + let state = ffi::vt100_wrapper_screen_visual_bell(screen_impl) != 0; + ffi::vt100_wrapper_screen_clear_visual_bell(screen_impl); + state + } + } + + pub fn check_audible_bell(&self) -> bool { + let Screen(screen_impl) = *self; + unsafe { + let state = ffi::vt100_wrapper_screen_audible_bell(screen_impl) != 0; + ffi::vt100_wrapper_screen_clear_audible_bell(screen_impl); + state + } + } + + pub fn check_update_title(&self) -> bool { + let Screen(screen_impl) = *self; + unsafe { + let state = ffi::vt100_wrapper_screen_update_title(screen_impl) != 0; + ffi::vt100_wrapper_screen_clear_update_title(screen_impl); + state + } + } + + pub fn check_update_icon_name(&self) -> bool { + let Screen(screen_impl) = *self; + unsafe { + let state = ffi::vt100_wrapper_screen_update_icon_name(screen_impl) != 0; + ffi::vt100_wrapper_screen_clear_update_icon_name(screen_impl); + state + } + } + + pub fn check_dirty(&self) -> bool { + let Screen(screen_impl) = *self; + unsafe { + let state = ffi::vt100_wrapper_screen_dirty(screen_impl) != 0; + ffi::vt100_wrapper_screen_clear_dirty(screen_impl); + state + } + } } impl Drop for Screen { |