diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 8bc49ab..2ce2fb3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -26,10 +26,10 @@ sysinfo = "0.27" regex = "1" winapi-util = "0.1.8" filesize = "0.2.0" -tauri-plugin-dialog = "2" -tauri-plugin-shell = "2" -tauri-plugin-clipboard-manager = "2.2.0" -tauri-plugin-opener = "2.2.2" +tauri-plugin-dialog = "2.2" +tauri-plugin-shell = "2.2" +tauri-plugin-clipboard-manager = "2.2" +tauri-plugin-opener = "2.2" [features] # This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!! diff --git a/src-tauri/src/frontend_utils.rs b/src-tauri/src/frontend_utils.rs index 0555ccf..5420fa1 100644 --- a/src-tauri/src/frontend_utils.rs +++ b/src-tauri/src/frontend_utils.rs @@ -1,5 +1,3 @@ -//use tauri::menu::Menu; - use std::{fs, path::Path}; // ファイルorディレクトリを削除する @@ -20,84 +18,3 @@ pub async fn remove_file_or_directory(path: String) -> Result<(), String> { } } } - -/* -// メニューを生成する -pub fn generate_menu(app_name: String) -> Menu { - #[allow(unused_mut)] - let mut menu = Menu::new(); - - let menus = Menu::with_items(app, &[&visible])?; - - #[cfg(not(target_os = "windows"))] - { - use tauri::menu::{MenuItem, Submenu}; - - #[cfg(target_os = "macos")] - { - use tauri::menu::AboutMetadata; - - menu = menu.add_submenu(Submenu::new( - app_name.clone(), // アプリケーション名 - Menu::new() - .add_native_item(MenuItem::About( - app_name, // アプリケーション名 - AboutMetadata::default(), - )) - .add_native_item(MenuItem::Separator) - .add_native_item(MenuItem::Services) - .add_native_item(MenuItem::Separator) - .add_native_item(MenuItem::Hide) - .add_native_item(MenuItem::HideOthers) - .add_native_item(MenuItem::ShowAll) - .add_native_item(MenuItem::Separator) - .add_native_item(MenuItem::Quit), - )); - } - - #[cfg(target_os = "linux")] - { - let mut file_menu = Menu::new(); - file_menu = file_menu.add_native_item(MenuItem::Quit); - menu = menu.add_submenu(Submenu::new("File", file_menu)); - } - - #[cfg(target_os = "macos")] - { - let mut edit_menu = Menu::new(); - /* - edit_menu = edit_menu.add_native_item(MenuItem::Undo); - edit_menu = edit_menu.add_native_item(MenuItem::Redo); - edit_menu = edit_menu.add_native_item(MenuItem::Separator); - */ - edit_menu = edit_menu.add_native_item(MenuItem::Cut); - edit_menu = edit_menu.add_native_item(MenuItem::Copy); - edit_menu = edit_menu.add_native_item(MenuItem::Paste); - edit_menu = edit_menu.add_native_item(MenuItem::SelectAll); - menu = menu.add_submenu(Submenu::new("Edit", edit_menu)); - - /* - menu = menu.add_submenu(Submenu::new( - "View", - Menu::new().add_native_item(MenuItem::EnterFullScreen), - )); - */ - } - - let mut window_menu = Menu::new(); - window_menu = window_menu.add_native_item(MenuItem::Minimize); - /* - #[cfg(target_os = "macos")] - { - window_menu = window_menu.add_native_item(MenuItem::Zoom); - } - */ - window_menu = window_menu.add_native_item(MenuItem::Separator); - window_menu = window_menu.add_native_item(MenuItem::CloseWindow); - - menu = menu.add_submenu(Submenu::new("Window", window_menu)); - } - - return menu; -} -*/ diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 15f6379..33a7997 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -7,6 +7,7 @@ mod progress; mod utils; mod walk_manager; +use tauri::menu::{AboutMetadata, Menu, SubmenuBuilder}; use tauri::Manager; use crate::frontend_utils::remove_file_or_directory; @@ -111,15 +112,43 @@ fn abort(state: tauri::State<'_, WalkManager>) { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { - // コンテキストを生成 - let context = tauri::generate_context!(); - // メニューを生成 - //let menu = generate_menu(context.package_info().name.clone()); - tauri::Builder::default() - .setup(|app| { + .setup(move |app| { let walk_manager = WalkManager::new(); app.manage(walk_manager); + + let menu = Menu::new(app)?; + + let mut submenu = SubmenuBuilder::new(app, "File") + .about(Some(AboutMetadata::default())) + .separator() + .quit() + .build()?; + + menu.append(&submenu)?; + + submenu = SubmenuBuilder::new(app, "Edit") + .undo() + .redo() + .separator() + .cut() + .copy() + .paste() + .select_all() + .build()?; + + menu.append(&submenu)?; + + submenu = SubmenuBuilder::new(app, "Window") + .minimize() + .separator() + .close_window() + .build()?; + + menu.append(&submenu)?; + + app.set_menu(menu)?; + Ok(()) }) .plugin(tauri_plugin_shell::init()) @@ -131,8 +160,6 @@ pub fn run() { abort, remove_file_or_directory, ]) - // メニューバーをカスタマイズ - //.menu(menu) - .run(context) + .run(tauri::generate_context!()) .expect("error while running tauri application"); }