Struct tauri::SystemTray
source · #[non_exhaustive]pub struct SystemTray {
pub id: String,
pub icon: Option<Icon>,
pub menu: Option<SystemTrayMenu>,
pub icon_as_template: bool,
pub menu_on_left_click: bool,
/* private fields */
}
system-tray
only.Expand description
Represents a System Tray instance.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.id: String
The tray identifier. Defaults to a random string.
icon: Option<Icon>
The tray icon.
The tray menu.
icon_as_template: bool
Whether the icon is a template icon or not.
Whether the menu should appear when the tray receives a left click. Defaults to true
Implementations§
source§impl SystemTray
impl SystemTray
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new system tray that only renders an icon.
§Examples
use tauri::SystemTray;
tauri::Builder::default()
.setup(|app| {
let tray_handle = SystemTray::new().build(app)?;
Ok(())
});
sourcepub fn with_id<I: Into<String>>(self, id: I) -> Self
pub fn with_id<I: Into<String>>(self, id: I) -> Self
Sets the tray identifier, used to retrieve its handle and to identify a tray event source.
§Examples
use tauri::SystemTray;
tauri::Builder::default()
.setup(|app| {
let tray_handle = SystemTray::new()
.with_id("tray-id")
.build(app)?;
Ok(())
});
sourcepub fn with_icon<I: TryInto<Icon>>(self, icon: I) -> Self
pub fn with_icon<I: TryInto<Icon>>(self, icon: I) -> Self
Sets the tray Icon
.
§Examples
use tauri::{Icon, SystemTray};
tauri::Builder::default()
.setup(|app| {
let tray_handle = SystemTray::new()
// dummy and invalid Rgba icon; see the Icon documentation for more information
.with_icon(Icon::Rgba { rgba: Vec::new(), width: 0, height: 0 })
.build(app)?;
Ok(())
});
sourcepub fn with_icon_as_template(self, is_template: bool) -> Self
pub fn with_icon_as_template(self, is_template: bool) -> Self
Sets the icon as a template.
Images you mark as template images should consist of only black and clear colors. You can use the alpha channel in the image to adjust the opacity of black content.
§Examples
use tauri::SystemTray;
tauri::Builder::default()
.setup(|app| {
let mut tray_builder = SystemTray::new();
#[cfg(target_os = "macos")]
{
tray_builder = tray_builder.with_icon_as_template(true);
}
let tray_handle = tray_builder.build(app)?;
Ok(())
});
Sets whether the menu should appear when the tray receives a left click. Defaults to true
.
§Examples
use tauri::SystemTray;
tauri::Builder::default()
.setup(|app| {
let mut tray_builder = SystemTray::new();
#[cfg(target_os = "macos")]
{
tray_builder = tray_builder.with_menu_on_left_click(false);
}
let tray_handle = tray_builder.build(app)?;
Ok(())
});
sourcepub fn with_title(self, title: &str) -> Self
pub fn with_title(self, title: &str) -> Self
Sets the menu title`
§Examples
use tauri::SystemTray;
tauri::Builder::default()
.setup(|app| {
let mut tray_builder = SystemTray::new();
#[cfg(target_os = "macos")]
{
tray_builder = tray_builder.with_title("My App");
}
let tray_handle = tray_builder.build(app)?;
Ok(())
});
sourcepub fn with_tooltip(self, tooltip: &str) -> Self
pub fn with_tooltip(self, tooltip: &str) -> Self
sourcepub fn on_event<F: Fn(SystemTrayEvent) + Send + Sync + 'static>(
self,
f: F
) -> Self
pub fn on_event<F: Fn(SystemTrayEvent) + Send + Sync + 'static>( self, f: F ) -> Self
Sets the event listener for this system tray.
§Examples
use tauri::{Icon, Manager, SystemTray, SystemTrayEvent};
tauri::Builder::default()
.setup(|app| {
let handle = app.handle();
let id = "tray-id";
SystemTray::new()
.with_id(id)
.on_event(move |event| {
let tray_handle = handle.tray_handle_by_id(id).unwrap();
match event {
// show window with id "main" when the tray is left clicked
SystemTrayEvent::LeftClick { .. } => {
let window = handle.get_window("main").unwrap();
window.show().unwrap();
window.set_focus().unwrap();
}
_ => {}
}
})
.build(app)?;
Ok(())
});
Sets the menu to show when the system tray is right clicked.
§Examples
use tauri::{CustomMenuItem, SystemTray, SystemTrayMenu};
tauri::Builder::default()
.setup(|app| {
let tray_handle = SystemTray::new()
.with_menu(
SystemTrayMenu::new()
.add_item(CustomMenuItem::new("quit", "Quit"))
.add_item(CustomMenuItem::new("open", "Open"))
)
.build(app)?;
Ok(())
});
sourcepub fn build<R: Runtime, M: Manager<R>>(
self,
manager: &M
) -> Result<SystemTrayHandle<R>>
pub fn build<R: Runtime, M: Manager<R>>( self, manager: &M ) -> Result<SystemTrayHandle<R>>
Builds and shows the system tray.
§Examples
use tauri::{CustomMenuItem, SystemTray, SystemTrayMenu};
tauri::Builder::default()
.setup(|app| {
let tray_handle = SystemTray::new()
.with_menu(
SystemTrayMenu::new()
.add_item(CustomMenuItem::new("quit", "Quit"))
.add_item(CustomMenuItem::new("open", "Open"))
)
.build(app)?;
tray_handle.get_item("quit").set_enabled(false);
Ok(())
});
Trait Implementations§
source§impl Clone for SystemTray
impl Clone for SystemTray
source§fn clone(&self) -> SystemTray
fn clone(&self) -> SystemTray
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more