mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-03 10:11:15 +02:00
58 lines
1.4 KiB
Rust
58 lines
1.4 KiB
Rust
// Copyright 2019-2021 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
#![cfg_attr(
|
|
all(not(debug_assertions), target_os = "windows"),
|
|
windows_subsystem = "windows"
|
|
)]
|
|
|
|
mod cmd;
|
|
mod menu;
|
|
|
|
use serde::Serialize;
|
|
use tauri::{CustomMenuItem, Manager, SystemTrayMenuItem};
|
|
|
|
#[derive(Serialize)]
|
|
struct Reply {
|
|
data: String,
|
|
}
|
|
|
|
fn main() {
|
|
tauri::Builder::default()
|
|
.on_page_load(|window, _| {
|
|
let window_ = window.clone();
|
|
window.listen("js-event", move |event| {
|
|
println!("got js-event with message '{:?}'", event.payload());
|
|
let reply = Reply {
|
|
data: "something else".to_string(),
|
|
};
|
|
|
|
window_
|
|
.emit("rust-event", Some(reply))
|
|
.expect("failed to emit");
|
|
});
|
|
})
|
|
.menu(menu::get_menu())
|
|
.on_menu_event(|event| {
|
|
println!("{:?}", event.menu_item_id());
|
|
})
|
|
.system_tray(vec![SystemTrayMenuItem::Custom(CustomMenuItem::new(
|
|
"toggle".into(),
|
|
"Toggle",
|
|
))])
|
|
.on_system_tray_event(|app, event| {
|
|
if event.menu_item_id() == "toggle" {
|
|
let window = app.get_window("main").unwrap();
|
|
// TODO: window.is_visible API
|
|
window.hide().unwrap();
|
|
}
|
|
})
|
|
.invoke_handler(tauri::generate_handler![
|
|
cmd::log_operation,
|
|
cmd::perform_request
|
|
])
|
|
.run(tauri::generate_context!())
|
|
.expect("error while running tauri application");
|
|
}
|