package gui import ( "AynaLivePlayer/core/events" "AynaLivePlayer/core/model" "AynaLivePlayer/global" "AynaLivePlayer/pkg/config" "AynaLivePlayer/pkg/event" "AynaLivePlayer/pkg/i18n" "AynaLivePlayer/resource" "fmt" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/widget" _logger "AynaLivePlayer/pkg/logger" ) var App fyne.App var MainWindow fyne.Window var playerWindow fyne.Window var playerWindowHandle uintptr var logger _logger.ILogger = nil func black_magic() { widget.RichTextStyleStrong.TextStyle.Bold = false } func Initialize() { logger = global.Logger.WithPrefix("GUI") black_magic() logger.Info("Initializing GUI") //os.Setenv("FYNE_FONT", config.GetAssetPath("msyh.ttc")) App = app.NewWithID(config.ProgramName) //App.Settings().SetTheme(&myTheme{}) MainWindow = App.NewWindow(fmt.Sprintf("%s Ver %s", config.ProgramName, model.Version(config.Version))) tabs := container.NewAppTabs( container.NewTabItem(i18n.T("gui.tab.player"), container.NewBorder(nil, createPlayControllerV2(), nil, nil, createPlaylist()), ), container.NewTabItem(i18n.T("gui.tab.search"), container.NewBorder(createSearchBar(), nil, nil, nil, createSearchList()), ), container.NewTabItem(i18n.T("gui.tab.room"), container.NewBorder(nil, nil, createRoomSelector(), nil, createRoomController()), ), container.NewTabItem(i18n.T("gui.tab.playlist"), container.NewBorder(nil, nil, createPlaylists(), nil, createPlaylistMedias()), ), container.NewTabItem(i18n.T("gui.tab.history"), container.NewBorder(nil, nil, nil, nil, createHistoryList()), ), container.NewTabItem(i18n.T("gui.tab.config"), createConfigLayout(), ), ) tabs.SetTabLocation(container.TabLocationTop) MainWindow.SetIcon(resource.ImageIcon) MainWindow.SetContent(tabs) //MainWindow.Resize(fyne.NewSize(1280, 720)) MainWindow.Resize(fyne.NewSize(config.General.Width, config.General.Height)) setupPlayerWindow() // register error global.EventManager.RegisterA( events.ErrorUpdate, "gui.show_error", func(e *event.Event) { err := e.Data.(events.ErrorUpdateEvent).Error logger.Warnf("gui received error event: %v, %v", err, err == nil) if err == nil { return } dialog.ShowError(err, MainWindow) }) checkUpdate() MainWindow.SetFixedSize(true) if config.General.ShowSystemTray { setupSysTray() } }