106 lines
2.3 KiB
Rust
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 }
|
|
}
|
|
}
|