| //! A terminal related ANSI escape sequences. |
| |
| sequence!( |
| /// Resizes the text area to the given width and height in characters. |
| /// |
| /// # Examples |
| /// |
| /// ```no_run |
| /// use std::io::{stdout, Write}; |
| /// use anes::ResizeTextArea; |
| /// |
| /// let mut stdout = stdout(); |
| /// // Resize the terminal to 80x25 |
| /// write!(stdout, "{}", ResizeTextArea(80, 25)); |
| /// ``` |
| struct ResizeTextArea(u16, u16) => |
| |this, f| write!(f, csi!("8;{};{}t"), this.1, this.0) |
| ); |
| |
| sequence!( |
| /// Tells the terminal to start reporting mouse events. |
| /// |
| /// Mouse events are not reported by default. |
| struct EnableMouseEvents => concat!( |
| csi!("?1000h"), |
| csi!("?1002h"), |
| csi!("?1015h"), |
| csi!("?1006h") |
| ) |
| ); |
| |
| sequence!( |
| /// Tells the terminal to stop reporting mouse events. |
| struct DisableMouseEvents => concat!( |
| csi!("?1006l"), |
| csi!("?1015l"), |
| csi!("?1002l"), |
| csi!("?1000l") |
| ) |
| ); |
| |
| #[cfg(test)] |
| test_sequences!( |
| resize_text_area( |
| ResizeTextArea(80, 25) => "\x1B[8;25;80t", |
| ResizeTextArea(1, 1) => "\x1B[8;1;1t", |
| ), |
| enable_mouse_events( |
| EnableMouseEvents => "\x1B[?1000h\x1B[?1002h\x1B[?1015h\x1B[?1006h", |
| ), |
| disable_mouse_events( |
| DisableMouseEvents => "\x1B[?1006l\x1B[?1015l\x1B[?1002l\x1B[?1000l", |
| ) |
| ); |