mirror of
https://github.com/Mikescher/kpsync.git
synced 2025-08-25 08:38:03 +02:00
59 lines
945 B
Go
59 lines
945 B
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.trayReady = true
|
|
}
|
|
|
|
systray.Run(trayOnReady, nil)
|
|
}
|
|
|
|
func (app *Application) setTrayState(txt string, icon []byte) func() {
|
|
if !app.trayReady {
|
|
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 {
|
|
return
|
|
}
|
|
|
|
systray.SetIcon(assets.IconDefault)
|
|
systray.SetTooltip("Sleeping...")
|
|
}
|
|
|
|
return fin
|
|
}
|
|
|
|
func (app *Application) setTrayStateDirect(txt string, icon []byte) {
|
|
if !app.trayReady {
|
|
return
|
|
}
|
|
|
|
app.masterLock.Lock()
|
|
defer app.masterLock.Unlock()
|
|
|
|
systray.SetIcon(icon)
|
|
systray.SetTooltip(txt)
|
|
}
|