able-editor/src/menu.rs

106 lines
2.3 KiB
Rust

use fltk::{
app,
enums::{Color, Shortcut},
menu,
prelude::{MenuExt, WidgetExt},
};
use crate::Message;
pub struct Menu {
_menu: menu::SysMenuBar,
}
impl Menu {
pub fn new(s: &app::Sender<Message>) -> Self {
let mut menu = menu::SysMenuBar::default().with_size(800, 35);
menu.set_text_color(Color::White);
menu.set_color(Color::Black);
menu.add_emit(
"&File/New...\t",
Shortcut::Ctrl | 'n',
menu::MenuFlag::Normal,
*s,
Message::New,
);
menu.add_emit(
"&File/Open...\t",
Shortcut::Ctrl | 'o',
menu::MenuFlag::Normal,
*s,
Message::Open,
);
menu.add_emit(
"&File/Save\t",
Shortcut::Ctrl | 's',
menu::MenuFlag::Normal,
*s,
Message::Save,
);
menu.add_emit(
"&File/Save as...\t",
Shortcut::Ctrl | 'w',
menu::MenuFlag::Normal,
*s,
Message::SaveAs,
);
menu.add_emit(
"&File/Quit\t",
Shortcut::Ctrl | 'q',
menu::MenuFlag::Normal,
*s,
Message::Quit,
);
menu.add_emit(
"&Edit/Cut\t",
Shortcut::Ctrl | 'x',
menu::MenuFlag::Normal,
*s,
Message::Cut,
);
menu.add_emit(
"&Edit/Copy\t",
Shortcut::Ctrl | 'c',
menu::MenuFlag::Normal,
*s,
Message::Copy,
);
menu.add_emit(
"&Edit/Paste\t",
Shortcut::Ctrl | 'v',
menu::MenuFlag::Normal,
*s,
Message::Paste,
);
/*
menu.add_emit(
"&Tools/Config\t",
Shortcut::Ctrl | '/',
menu::MenuFlag::Normal,
*s,
Message::Config,
);
menu.add_emit(
"&Tools/Terminal\t",
Shortcut::Ctrl | 't',
menu::MenuFlag::Normal,
*s,
Message::Config,
);
*/
if let Some(mut item) = menu.find_item("&File/Quit\t") {
item.set_label_color(Color::Red);
}
Self { _menu: menu }
}
}