1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/// This trait is used by the parser to handle extra escape sequences that
/// don't have an impact on the terminal screen directly.
pub trait Callbacks {
/// This callback is called when the terminal requests an audible bell
/// (typically with `^G`).
fn audible_bell(&mut self, _: &mut crate::Screen) {}
/// This callback is called when the terminal requests a visual bell
/// (typically with `\eg`).
fn visual_bell(&mut self, _: &mut crate::Screen) {}
/// This callback is called when the terminal requests a resize
/// (typically with `\e[8;<rows>;<cols>t`).
fn resize(&mut self, _: &mut crate::Screen, _request: (u16, u16)) {}
/// This callback is called when the terminal requests the window title
/// to be set (typically with `\e]1;<icon_name>\a`)
fn set_window_icon_name(
&mut self,
_: &mut crate::Screen,
_icon_name: &[u8],
) {
}
/// This callback is called when the terminal requests the window title
/// to be set (typically with `\e]2;<title>\a`)
fn set_window_title(&mut self, _: &mut crate::Screen, _title: &[u8]) {}
/// This callback is called when the terminal requests data to be copied
/// to the system clipboard (typically with `\e]52;<ty>;<data>\a`). Note
/// that `data` will be encoded as base64.
fn copy_to_clipboard(
&mut self,
_: &mut crate::Screen,
_ty: &[u8],
_data: &[u8],
) {
}
/// This callback is called when the terminal requests data to be pasted
/// from the system clipboard (typically with `\e]52;<ty>;?\a`).
fn paste_from_clipboard(&mut self, _: &mut crate::Screen, _ty: &[u8]) {}
/// This callback is called when the terminal receives an escape sequence
/// which is otherwise not implemented.
fn unhandled_char(&mut self, _: &mut crate::Screen, _c: char) {}
/// This callback is called when the terminal receives a control
/// character which is otherwise not implemented.
fn unhandled_control(&mut self, _: &mut crate::Screen, _b: u8) {}
/// This callback is called when the terminal receives an escape sequence
/// which is otherwise not implemented.
fn unhandled_escape(
&mut self,
_: &mut crate::Screen,
_i1: Option<u8>,
_i2: Option<u8>,
_b: u8,
) {
}
/// This callback is called when the terminal receives a CSI sequence
/// (`\e[`) which is otherwise not implemented.
fn unhandled_csi(
&mut self,
_: &mut crate::Screen,
_i1: Option<u8>,
_i2: Option<u8>,
_params: &[&[u16]],
_c: char,
) {
}
/// This callback is called when the terminal receives a OSC sequence
/// (`\e]`) which is otherwise not implemented.
fn unhandled_osc(&mut self, _: &mut crate::Screen, _params: &[&[u8]]) {}
}
impl Callbacks for () {}