use tauri::menu::{AboutMetadata, Menu, MenuBuilder, MenuItem, SubmenuBuilder};
use tauri::{App, Wry};
pub fn build(app: &App) -> tauri::Result<Menu<Wry>> {
let app_menu = SubmenuBuilder::new(app, "FastPack")
.about(Some(AboutMetadata {
name: Some("FastPack".into()),
version: Some(env!("CARGO_PKG_VERSION").into()),
..Default::default()
}))
.separator()
.hide()
.hide_others()
.show_all()
.separator()
.quit()
.build()?;
let file_menu = SubmenuBuilder::new(app, "File")
.item(&MenuItem::with_id(
app,
"new_project",
"New Project",
true,
Some("CmdOrCtrl+N"),
)?)
.item(&MenuItem::with_id(
app,
"new_window",
"New Window",
true,
Some("CmdOrCtrl+Shift+N"),
)?)
.item(&MenuItem::with_id(
app,
"open_project",
"Open Project\u{2026}",
true,
Some("CmdOrCtrl+O"),
)?)
.separator()
.item(&MenuItem::with_id(
app,
"save_project",
"Save",
true,
Some("CmdOrCtrl+S"),
)?)
.item(&MenuItem::with_id(
app,
"save_project_as",
"Save As\u{2026}",
true,
Some("CmdOrCtrl+Shift+S"),
)?)
.separator()
.close_window()
.build()?;
let edit_menu = SubmenuBuilder::new(app, "Edit")
.undo()
.redo()
.separator()
.cut()
.copy()
.paste()
.select_all()
.build()?;
let view_menu = SubmenuBuilder::new(app, "View")
.item(&MenuItem::with_id(
app,
"toggle_theme",
"Toggle Theme",
true,
None::<&str>,
)?)
.separator()
.item(&MenuItem::with_id(
app,
"preferences",
"Preferences\u{2026}",
true,
Some("CmdOrCtrl+,"),
)?)
.build()?;
let window_menu = SubmenuBuilder::new(app, "Window")
.minimize()
.maximize()
.separator()
.fullscreen()
.build()?;
let help_menu = SubmenuBuilder::new(app, "Help").build()?;
MenuBuilder::new(app)
.item(&app_menu)
.item(&file_menu)
.item(&edit_menu)
.item(&view_menu)
.item(&window_menu)
.item(&help_menu)
.build()
}