use std::time::Duration;
use crate::host_reply::ModeStatus;
use super::modes::TerminalMode;
use super::types::CursorStyle;
#[doc(alias = "OSC 133")]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[non_exhaustive]
pub enum SemanticPrompt {
PromptStart,
PromptEnd,
OutputStart,
OutputEnd {
exit_code: Option<i32>,
},
}
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ClipboardTarget {
Clipboard,
Primary,
Secondary,
Select,
CutBuffer(u8),
}
#[derive(Clone, Debug, PartialEq, Eq)]
#[non_exhaustive]
pub enum ScreenEvent {
ClipboardWrite {
targets: Vec<ClipboardTarget>,
data: Vec<u8>,
},
ClipboardQuery {
targets: Vec<ClipboardTarget>,
},
ClipboardClear {
targets: Vec<ClipboardTarget>,
},
ClipboardWriteRejected {
targets: Vec<ClipboardTarget>,
decoded_len: usize,
},
#[doc(alias = "kitty keyboard")]
KittyFlagsChanged(u8),
Da1,
Da2,
Da3,
Decrqm {
mode: u16,
status: ModeStatus,
},
AnsiModeReport {
mode: u16,
status: ModeStatus,
},
DsrStatus,
DsrCursorPosition {
row: u16,
col: u16,
},
Xtversion,
XtGetTcap {
entries: Vec<XtGetTcapEntry>,
},
Decrqss {
query: Vec<u8>,
response: Option<Vec<u8>>,
},
ColorQuery {
target: ColorTarget,
color: crate::attrs::Color,
},
#[doc(alias = "CSI ? u")]
#[doc(alias = "kitty keyboard")]
KittyKeyboardQuery {
flags: u8,
},
XtWinOpsReport(XtWinOpsReport),
TitleChanged,
WorkingDirectoryChanged,
#[doc(alias = "OSC 133")]
ShellIntegration {
mark: SemanticPrompt,
},
#[doc(alias = "OSC 9")]
#[doc(alias = "OSC 777")]
DesktopNotification {
title: String,
body: String,
},
#[doc(alias = "OSC 9 ; 1")]
Sleep {
duration: Duration,
},
#[doc(alias = "OSC 9 ; 4")]
ProgressReport {
state: ProgressState,
value: u8,
},
#[doc(alias = "OSC 22")]
MousePointerShape {
name: String,
},
Bell,
CursorStyleChanged(CursorStyle),
ScreenCleared,
ModeChanged {
mode: TerminalMode,
enabled: bool,
},
ColorSet {
target: ColorTarget,
color: crate::attrs::Color,
},
PaletteColorSet {
index: u8,
color: crate::attrs::Color,
},
ColorReset(ColorTarget),
PaletteColorReset {
index: Option<u8>,
},
SelectionInvalidated,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct XtGetTcapEntry {
pub key_hex: String,
pub value_hex: Option<String>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum XtWinOpsReport {
TextAreaPixels {
height_pixels: u32,
width_pixels: u32,
},
CellPixels {
height: u16,
width: u16,
},
TextAreaCells {
rows: u16,
cols: u16,
},
}
#[doc(alias = "OSC 4")]
#[doc(alias = "OSC 10")]
#[doc(alias = "OSC 11")]
#[doc(alias = "OSC 12")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum ColorTarget {
Foreground,
Background,
CursorColor,
Palette(u8),
}
#[doc(alias = "OSC 9 ; 4")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum ProgressState {
Remove,
Set,
Error,
Indeterminate,
Warning,
}