From 341fed83d687c5285dd074d15356e68982822903 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 7 Mar 2021 01:21:07 -0500 Subject: simplify, add some more methods --- src/lib.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 7f9aac4..486597d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,6 +7,9 @@ pub mod r#async; #[cfg(feature = "async")] pub use r#async::Textmode; +const INIT: &[u8] = b"\x1b7\x1b[?47h\x1b[2J\x1b[H\x1b[?25h"; +const DEINIT: &[u8] = b"\x1b[?47l\x1b8\x1b[?25h"; + mod private { pub trait TextmodeImpl { fn cur(&self) -> &vt100::Parser; @@ -74,6 +77,10 @@ pub trait TextmodeExt: private::TextmodeImpl { self.write(b"\x1b["); self.write_u8(30 + i); self.write(b"m"); + } else if i < 16 { + self.write(b"\x1b["); + self.write_u8(82 + i); + self.write(b"m"); } else { self.write(b"\x1b[38;5;"); self.write_u8(i); @@ -102,6 +109,10 @@ pub trait TextmodeExt: private::TextmodeImpl { self.write(b"\x1b["); self.write_u8(40 + i); self.write(b"m"); + } else if i < 16 { + self.write(b"\x1b["); + self.write_u8(92 + i); + self.write(b"m"); } else { self.write(b"\x1b[48;5;"); self.write_u8(i); @@ -119,4 +130,36 @@ pub trait TextmodeExt: private::TextmodeImpl { } } } + + fn set_bold(&mut self, bold: bool) { + if bold { + self.write(b"\x1b[1m"); + } else { + self.write(b"\x1b[22m"); + } + } + + fn set_italic(&mut self, italic: bool) { + if italic { + self.write(b"\x1b[3m"); + } else { + self.write(b"\x1b[23m"); + } + } + + fn set_underline(&mut self, underline: bool) { + if underline { + self.write(b"\x1b[4m"); + } else { + self.write(b"\x1b[24m"); + } + } + + fn set_inverse(&mut self, inverse: bool) { + if inverse { + self.write(b"\x1b[7m"); + } else { + self.write(b"\x1b[27m"); + } + } } -- cgit v1.2.3-54-g00ecf