tastty-core 0.1.0

Sans-IO core of the tastty terminal session library: VT parser, screen buffer, and byte encoders.
use super::super::{Screen, ScreenEvent};

pub(in crate::screen) fn handle_set_title_and_icon(screen: &mut Screen, params: &[&[u8]]) {
    if let Some(text) = params.get(1) {
        let s = String::from_utf8_lossy(text).into_owned();
        screen.title = s.clone();
        screen.icon_name = s;
        screen.pending_events.push(ScreenEvent::TitleChanged);
    }
}

pub(in crate::screen) fn handle_set_icon_name(screen: &mut Screen, params: &[&[u8]]) {
    if let Some(text) = params.get(1) {
        screen.icon_name = String::from_utf8_lossy(text).into_owned();
        screen.pending_events.push(ScreenEvent::TitleChanged);
    }
}

pub(in crate::screen) fn handle_set_window_title(screen: &mut Screen, params: &[&[u8]]) {
    if let Some(text) = params.get(1) {
        screen.title = String::from_utf8_lossy(text).into_owned();
        screen.pending_events.push(ScreenEvent::TitleChanged);
    }
}