diff options
Diffstat (limited to 'alacritty_terminal/src/event.rs')
-rw-r--r-- | alacritty_terminal/src/event.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/alacritty_terminal/src/event.rs b/alacritty_terminal/src/event.rs index 1ddf820b..9e5031a0 100644 --- a/alacritty_terminal/src/event.rs +++ b/alacritty_terminal/src/event.rs @@ -3,7 +3,7 @@ use std::fmt::{self, Debug, Formatter}; use std::sync::Arc; use crate::term::color::Rgb; -use crate::term::{ClipboardType, SizeInfo}; +use crate::term::ClipboardType; /// Terminal event. /// @@ -38,6 +38,9 @@ pub enum Event { /// Write some text to the PTY. PtyWrite(String), + /// Request to write the text area size. + TextAreaSizeRequest(Arc<dyn Fn(WindowSize) -> String + Sync + Send + 'static>), + /// Cursor blinking state has changed. CursorBlinkingChange, @@ -56,6 +59,7 @@ impl Debug for Event { match self { Event::ClipboardStore(ty, text) => write!(f, "ClipboardStore({:?}, {})", ty, text), Event::ClipboardLoad(ty, _) => write!(f, "ClipboardLoad({:?})", ty), + Event::TextAreaSizeRequest(_) => write!(f, "TextAreaSizeRequest"), Event::ColorRequest(index, _) => write!(f, "ColorRequest({})", index), Event::PtyWrite(text) => write!(f, "PtyWrite({})", text), Event::Title(title) => write!(f, "Title({})", title), @@ -77,9 +81,17 @@ pub trait Notify { fn notify<B: Into<Cow<'static, [u8]>>>(&self, _: B); } +#[derive(Copy, Clone, Debug)] +pub struct WindowSize { + pub num_lines: u16, + pub num_cols: u16, + pub cell_width: u16, + pub cell_height: u16, +} + /// Types that are interested in when the display is resized. pub trait OnResize { - fn on_resize(&mut self, size: &SizeInfo); + fn on_resize(&mut self, window_size: WindowSize); } /// Event Loop for notifying the renderer about terminal events. |