diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index e8ae4bc..7172ffc 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -1,3 +1,6 @@
+pub mod menu;
+pub mod tray;
+
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_log::Builder::new().build())
@@ -41,6 +44,15 @@ pub fn run() {
])
.setup(|app| {
log::info!("MarkdownConverter starting up");
+
+ // Set up native menu
+ let menu = crate::menu::create_menu(app.handle())?;
+ app.set_menu(menu)?;
+ app.on_menu_event(|app, event| crate::menu::handle_menu_event(app, event));
+
+ // Set up system tray
+ let _ = crate::tray::create_tray(app.handle());
+
Ok(())
})
.on_window_event(|window, event| {
@@ -50,4 +62,4 @@ pub fn run() {
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
-}
+}
\ No newline at end of file
diff --git a/src-tauri/src/menu.rs b/src-tauri/src/menu.rs
new file mode 100644
index 0000000..4b5b47b
--- /dev/null
+++ b/src-tauri/src/menu.rs
@@ -0,0 +1,168 @@
+use tauri::{AppHandle, Emitter, menu::{Menu, MenuItem, Submenu, PredefinedMenuItem}};
+
+pub fn create_menu(app: &AppHandle) -> tauri::Result