From 2c3317cf73a27831805f0f780abc2b3ae36bac73 Mon Sep 17 00:00:00 2001 From: Peterjah Date: Mon, 31 Mar 2025 18:02:00 +0200 Subject: [PATCH] tmp commit --- cmd/massastation/main.go | 10 ++++++ int/systray/systray.go | 70 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/cmd/massastation/main.go b/cmd/massastation/main.go index 70cceff32..383e4b7d5 100644 --- a/cmd/massastation/main.go +++ b/cmd/massastation/main.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "os" + "runtime" "github.com/massalabs/station/int/api" "github.com/massalabs/station/int/config" @@ -105,5 +106,14 @@ func main() { utils.OpenURL(&stationGUI, fmt.Sprintf("https://%s", config.MassaStationURL)) }) + if runtime.GOOS == "darwin" { + stationGUI.Lifecycle().SetOnEnteredForeground(func() { + fmt.Println(">>>>>>>YOOYO>>>>>>MassaStation is in the foreground") + logger.Debugf(">>>>>>>>>>>>>Dock icon clicked211111112") + + utils.OpenURL(&stationGUI, fmt.Sprintf("https://%s", config.MassaStationURL)) + }) + } + stationGUI.Run() } diff --git a/int/systray/systray.go b/int/systray/systray.go index 74b5a2818..25455a861 100644 --- a/int/systray/systray.go +++ b/int/systray/systray.go @@ -2,6 +2,7 @@ package systray import ( "fmt" + "os/exec" "fyne.io/fyne/v2" //nolint:goimports,nolintlint @@ -17,6 +18,8 @@ func MakeGUI() (fyne.App, *fyne.Menu) { stationGUI := app.New() menu := fyne.NewMenu("MassaStation") + msURL := fmt.Sprintf("https://%s", config.MassaStationURL) + if desk, ok := stationGUI.(desktop.App); ok { icon := fyne.NewStaticResource("logo", embedded.Logo) titleMenu := fyne.NewMenuItem("MassaStation", nil) @@ -32,7 +35,7 @@ func MakeGUI() (fyne.App, *fyne.Menu) { } homeShortCutMenu.Action = func() { - utils.OpenURL(&stationGUI, fmt.Sprintf("https://%s", config.MassaStationURL)) + utils.OpenURL(&stationGUI, msURL) } menu.Items = append(menu.Items, @@ -46,5 +49,70 @@ func MakeGUI() (fyne.App, *fyne.Menu) { desk.SetSystemTrayMenu(menu) } + // Set up macOS dock click handler + // if runtime.GOOS == "darwin" { + + // fmt.Println(">>>>>>>>>>>>>MassaStation is running on macOS") + // stationGUI.Lifecycle().SetOnEnteredForeground(func() { + // fmt.Println(">>>>>>>>>>>>>MassaStation is in the foreground") + // logger.Debugf(">>>>>>>>>>>>>Dock icon clicked211111112") + + // openURL(msURL) + // utils.OpenURL(&stationGUI, msURL) + // }) + // go handleMacDockClick() + // } + + stationGUI.Run() return stationGUI, menu } + +func openURL(url string) { + cmd := exec.Command("open", url) + + if err := cmd.Start(); err != nil { + println("Error opening URL:", err.Error()) + } +} + +// 🖥 macOS: Detect Dock icon click +// func handleMacDockClick() { + +// macos.RunApp(func(app appkit.Application, delegate *appkit.ApplicationDelegate) { +// // app.SetActivationPolicy(appkit.ApplicationActivationPolicyRegular) +// // app.ActivateIgnoringOtherApps(true) + +// // Set the delegate to handle the application lifecycle +// delegate.SetApplicationShouldHandleReopenHasVisibleWindows(func(app appkit.Application, _ bool) bool { +// // Handle the Dock icon click +// // This is where you can open the URL or perform any action +// // openURL("https://example.com") +// fmt.Println(">>>>SetApplicationShouldHandleReopenHasVisibleWindows>>>>>>>>>>>>>Dock icon clicked") +// openURL("https://www.google.com") +// return true +// }) + +// delegate.SetApplicationDidBecomeActive(func(notification foundation.Notification) { +// logger.Debugf("Dock icon clicked222") + +// fmt.Println(">>>>>SetApplicationDidBecomeActive