mirror of
https://github.com/AynaLivePlayer/AynaLivePlayer.git
synced 2025-12-09 11:48:13 +08:00
106 lines
2.9 KiB
Go
106 lines
2.9 KiB
Go
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)
|
|
})
|
|
|
|
MainWindow.SetFixedSize(true)
|
|
if config.General.ShowSystemTray {
|
|
setupSysTray()
|
|
}
|
|
}
|
|
|
|
//
|
|
//func checkUpdate() {
|
|
// l().Info("checking updates...")
|
|
// err := API.App().CheckUpdate()
|
|
// if err != nil {
|
|
// showDialogIfError(err)
|
|
// l().Warnf("check update failed", err)
|
|
// return
|
|
// }
|
|
// l().Infof("latest version: v%s", API.App().LatestVersion().Version)
|
|
// if API.App().LatestVersion().Version > API.App().Version().Version {
|
|
// l().Info("new update available")
|
|
// dialog.ShowCustom(
|
|
// i18n.T("gui.update.new_version"),
|
|
// "OK",
|
|
// widget.NewRichTextFromMarkdown(API.App().LatestVersion().Info),
|
|
// MainWindow)
|
|
// }
|
|
//}
|