Files
zoeae/src/message.rs
T

76 lines
1.7 KiB
Rust
Raw Normal View History

use std::{fmt::Display, path::PathBuf};
2026-01-24 19:53:46 -06:00
use iced::{widget::text_editor, window};
2026-01-24 19:53:46 -06:00
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum FileAction {
2026-01-25 17:26:40 -06:00
New,
Save,
SaveAs,
Open,
Close(Option<usize>),
2026-01-24 19:53:46 -06:00
}
impl FileAction {
2026-01-25 17:26:40 -06:00
pub const ALL: &'static [FileAction] = &[
FileAction::New,
FileAction::Save,
FileAction::SaveAs,
FileAction::Open,
FileAction::Close(None),
];
2026-01-24 19:53:46 -06:00
}
impl Display for FileAction {
2026-01-25 17:26:40 -06:00
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
FileAction::New => write!(f, "New file"),
FileAction::Save => write!(f, "Save"),
FileAction::SaveAs => write!(f, "Save as... "),
FileAction::Open => write!(f, "Open"),
FileAction::Close(_) => write!(f, "Close"),
2026-01-24 19:53:46 -06:00
}
2026-01-25 17:26:40 -06:00
}
2026-01-24 19:53:46 -06:00
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ViewAction {
2026-01-25 17:26:40 -06:00
Increase,
Decrease,
Reset,
TogglePreview,
2026-01-24 19:53:46 -06:00
}
impl ViewAction {
2026-01-25 17:26:40 -06:00
pub const ALL: &'static [ViewAction] = &[
ViewAction::Increase,
ViewAction::Decrease,
ViewAction::Reset,
ViewAction::TogglePreview,
];
2026-01-24 19:53:46 -06:00
}
impl Display for ViewAction {
2026-01-25 17:26:40 -06:00
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ViewAction::Decrease => write!(f, "Decrease font"),
ViewAction::Increase => write!(f, "Increase font"),
ViewAction::Reset => write!(f, "Reset font"),
ViewAction::TogglePreview => write!(f, "Toggle preview"),
2026-01-24 19:53:46 -06:00
}
2026-01-25 17:26:40 -06:00
}
2026-01-24 19:53:46 -06:00
}
#[derive(Debug, Clone)]
pub enum Message {
WindowOpened(window::Id),
WindowClosed(window::Id),
2026-01-25 17:26:40 -06:00
Edit(text_editor::Action),
FileActionSelected(FileAction),
ViewActionSelected(ViewAction),
SwitchTab(usize),
LinkClicked(String),
FileOpened(Result<(PathBuf, String), String>),
FileSaved(Result<PathBuf, String>),
2026-01-24 19:53:46 -06:00
}