mirror of
https://github.com/Mikescher/kpsync.git
synced 2025-08-25 08:38:03 +02:00
67 lines
1.1 KiB
Go
67 lines
1.1 KiB
Go
package app
|
|
|
|
import (
|
|
"fyne.io/systray"
|
|
"mikescher.com/kpsync/assets"
|
|
)
|
|
|
|
func (app *Application) initTray() {
|
|
|
|
trayOnReady := func() {
|
|
|
|
systray.SetIcon(assets.IconInit)
|
|
systray.SetTitle("KeepassXC Sync")
|
|
systray.SetTooltip("Initializing...")
|
|
|
|
app.LogDebug("SysTray initialized")
|
|
app.LogLine()
|
|
|
|
app.trayReady.Set(true)
|
|
}
|
|
|
|
systray.Run(trayOnReady, nil)
|
|
|
|
app.LogDebug("SysTray stopped")
|
|
app.LogLine()
|
|
|
|
app.trayReady.Set(false)
|
|
}
|
|
|
|
func (app *Application) setTrayState(txt string, icon []byte) func() {
|
|
if !app.trayReady.Get() {
|
|
return func() {}
|
|
}
|
|
|
|
app.masterLock.Lock()
|
|
defer app.masterLock.Unlock()
|
|
|
|
systray.SetIcon(icon)
|
|
systray.SetTooltip(txt)
|
|
|
|
fin := func() {
|
|
app.masterLock.Lock()
|
|
defer app.masterLock.Unlock()
|
|
|
|
if !app.trayReady.Get() {
|
|
return
|
|
}
|
|
|
|
systray.SetIcon(assets.IconDefault)
|
|
systray.SetTooltip("Sleeping...")
|
|
}
|
|
|
|
return fin
|
|
}
|
|
|
|
func (app *Application) setTrayStateDirect(txt string, icon []byte) {
|
|
if !app.trayReady.Get() {
|
|
return
|
|
}
|
|
|
|
app.masterLock.Lock()
|
|
defer app.masterLock.Unlock()
|
|
|
|
systray.SetIcon(icon)
|
|
systray.SetTooltip(txt)
|
|
}
|