aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2016-04-27 23:36:23 -0400
committerJesse Luehrs <doy@tozt.net>2016-04-27 23:36:23 -0400
commit0d34c6cc4ec8d710550c2a8bcf491be4face7280 (patch)
treef13b2d15a09c62b503781d18c41371e6f7e5deb4
parent61df526acf4687b6b393b1e6c435e613a5dc7db3 (diff)
downloadvt100-rust-0d34c6cc4ec8d710550c2a8bcf491be4face7280.tar.gz
vt100-rust-0d34c6cc4ec8d710550c2a8bcf491be4face7280.zip
a few more accessors
-rw-r--r--src/ffi.c50
-rw-r--r--src/ffi.rs10
-rw-r--r--src/screen.rs45
3 files changed, 105 insertions, 0 deletions
diff --git a/src/ffi.c b/src/ffi.c
index 455d84f..61a4a20 100644
--- a/src/ffi.c
+++ b/src/ffi.c
@@ -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;
diff --git a/src/ffi.rs b/src/ffi.rs
index a939c0d..80a2d08 100644
--- a/src/ffi.rs
+++ b/src/ffi.rs
@@ -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 {