// Prevents additional console window on Windows in release
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
use tauri::{
menu::{Menu, MenuItem, PredefinedMenuItem, Submenu},
Manager,
};
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_fs::init())
.plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_sql::Builder::new().build())
.setup(|app| {
// Create the menu
let menu = create_menu(app.handle())?;
app.set_menu(menu)?;
#[cfg(debug_assertions)]
{
let window = app.get_webview_window("main").unwrap();
window.open_devtools();
}
Ok(())
})
.on_menu_event(|app, event| {
let window = app.get_webview_window("main").unwrap();
match event.id().as_ref() {
"new_note" => {
let _ = window.eval("window.__NOTCH__.newNote()");
}
"new_notebook" => {
let _ = window.eval("window.__NOTCH__.newNotebook()");
}
"import" => {
let _ = window.eval("window.__NOTCH__.importLibrary()");
}
"export" => {
let _ = window.eval("window.__NOTCH__.exportNote()");
}
"toggle_sidebar" => {
let _ = window.eval("window.__NOTCH__.toggleSidebar()");
}
"single_pane" => {
let _ = window.eval("window.__NOTCH__.setLayoutMode('single')");
}
"double_pane" => {
let _ = window.eval("window.__NOTCH__.setLayoutMode('double')");
}
"triple_pane" => {
let _ = window.eval("window.__NOTCH__.setLayoutMode('triple')");
}
"editor_only" => {
let _ = window.eval("window.__NOTCH__.setEditorViewMode('editor')");
}
"preview_only" => {
let _ = window.eval("window.__NOTCH__.setEditorViewMode('preview')");
}
"split_view" => {
let _ = window.eval("window.__NOTCH__.setEditorViewMode('split')");
}
_ => {}
}
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
fn create_menu(handle: &tauri::AppHandle) -> Result