kr580 2.0.0

Desktop KR580VM80 / Intel 8080 emulator.
Documentation
use iced::Task;

use super::{DesktopApp, Message};

impl DesktopApp {
    pub(crate) fn route_blocking_ui_message(&mut self, message: &Message) -> Option<Task<Message>> {
        if let Some(task) = self.dispatch_window_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_discard_modal_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_subprogram_modal_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_import_modal_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_export_modal_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_changelog_dialog_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_help_dialog_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_printer_setup_message(message) {
            return Some(task);
        }
        if let Some(task) = self.route_settings_modal_message(message) {
            return Some(task);
        }
        self.route_open_menu_message(message)
    }
}

pub(super) fn open_device_message(port: u8) -> Option<Message> {
    use crate::backend::IoBus;
    match port {
        IoBus::MONITOR_PORT => Some(Message::OpenMonitor),
        IoBus::FLOPPY_PORT => Some(Message::OpenFloppy),
        IoBus::HDD_PORT => Some(Message::OpenHdd),
        IoBus::NETWORK_PORT => Some(Message::OpenNetwork),
        IoBus::PRINTER_PORT => Some(Message::OpenPrinter),
        _ => None,
    }
}