//go:build windows

package main

// Sistem tepsisi simgesi. Menü: durum (bilgi), Ayarlar, Kapat.

import (
	_ "embed"
	"os"
	"os/exec"
	"sync"

	"github.com/getlantern/systray"
)

//go:embed tray.ico
var trayIkon []byte

var (
	trayMu        sync.Mutex
	trayDurumItem *systray.MenuItem
)

// trayDurumAyarla: menüdeki durum satırını ve ipucunu günceller.
func trayDurumAyarla(metin string) {
	trayMu.Lock()
	defer trayMu.Unlock()
	if trayDurumItem != nil {
		trayDurumItem.SetTitle(metin)
	}
	systray.SetTooltip("FikoYT Dosya Sunucusu — " + metin)
}

// trayBaslat: tepsiyi kurar ve "Kapat" seçilene kadar bloklar.
func trayBaslat(ilkMetin string, ayarlar func()) {
	systray.Run(func() {
		systray.SetIcon(trayIkon)
		systray.SetTitle("FikoYT Dosya Sunucusu")
		systray.SetTooltip("FikoYT Dosya Sunucusu — " + ilkMetin)

		trayMu.Lock()
		trayDurumItem = systray.AddMenuItem(ilkMetin, "")
		trayDurumItem.Disable()
		trayMu.Unlock()

		systray.AddSeparator()
		mAyar := systray.AddMenuItem("Ayarlar", "Ayar sayfasını aç")
		mKapat := systray.AddMenuItem("Kapat", "Sunucuyu durdur ve çık")

		go func() {
			for {
				select {
				case <-mAyar.ClickedCh:
					ayarlar()
				case <-mKapat.ClickedCh:
					systray.Quit()
					return
				}
			}
		}()
	}, func() {
		os.Exit(0)
	})
}

// tarayicidaAc: adresi varsayılan tarayıcıda açar (yalnızca yerel ayar sayfası).
func tarayicidaAc(adres string) {
	_ = exec.Command("rundll32", "url.dll,FileProtocolHandler", adres).Start()
}
