separate dev and production instances and add visual indicators of dev mode
This commit is contained in:
@ -7,27 +7,74 @@ use tauri::{
|
||||
use tauri::menu::{
|
||||
MenuBuilder,
|
||||
MenuEvent,
|
||||
MenuItem,
|
||||
MenuItemBuilder,
|
||||
PredefinedMenuItem,
|
||||
};
|
||||
|
||||
use crate::app;
|
||||
use crate::state::AppState;
|
||||
|
||||
|
||||
pub struct MenuItems {
|
||||
pub status: MenuItem<tauri::Wry>,
|
||||
pub show_hide: MenuItem<tauri::Wry>,
|
||||
}
|
||||
|
||||
impl MenuItems {
|
||||
pub fn after_show(&self) -> tauri::Result<()> {
|
||||
self.show_hide.set_text("Hide")
|
||||
}
|
||||
|
||||
pub fn after_hide(&self) -> tauri::Result<()> {
|
||||
self.show_hide.set_text("Show")
|
||||
}
|
||||
|
||||
pub fn after_lock(&self) -> tauri::Result<()> {
|
||||
if cfg!(debug_assertions) {
|
||||
self.status.set_text("Creddy (dev): Locked")
|
||||
}
|
||||
else {
|
||||
self.status.set_text("Creddy: Locked")
|
||||
}
|
||||
}
|
||||
|
||||
pub fn after_unlock(&self) -> tauri::Result<()> {
|
||||
if cfg!(debug_assertions) {
|
||||
self.status.set_text("Creddy (dev): Unlocked")
|
||||
}
|
||||
else {
|
||||
self.status.set_text("Creddy: Unlocked")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pub fn setup(app: &App) -> tauri::Result<()> {
|
||||
let status_text =
|
||||
if cfg!(debug_assertions) {
|
||||
"Creddy (dev): Locked"
|
||||
}
|
||||
else {
|
||||
"Creddy: Locked"
|
||||
};
|
||||
|
||||
let status = MenuItemBuilder::with_id("status", status_text)
|
||||
.enabled(false)
|
||||
.build(app)?;
|
||||
let sep = PredefinedMenuItem::separator(app)?;
|
||||
let show_hide = MenuItemBuilder::with_id("show_hide", "Show").build(app)?;
|
||||
let exit = MenuItemBuilder::with_id("exit", "Exit").build(app)?;
|
||||
|
||||
let menu = MenuBuilder::new(app)
|
||||
.items(&[&show_hide, &exit])
|
||||
.build()?;
|
||||
.items(&[&status, &sep, &show_hide, &exit]);
|
||||
|
||||
let tray = app.tray_by_id("main").unwrap();
|
||||
tray.set_menu(Some(menu))?;
|
||||
tray.set_menu(Some(menu.build()?))?;
|
||||
tray.on_menu_event(handle_event);
|
||||
|
||||
// stash this so we can find it later to change the text
|
||||
app.manage(show_hide);
|
||||
// stash these so we can find them later to change the text
|
||||
app.manage(MenuItems { status, show_hide });
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user