This commit is contained in:
aynakeya
2024-04-10 00:42:33 -07:00
parent 8d73a3c284
commit f926f15606
145 changed files with 2852 additions and 4296 deletions

View File

@@ -1,42 +1,42 @@
package gui
import (
"AynaLivePlayer/common/config"
"AynaLivePlayer/common/i18n"
"AynaLivePlayer/common/util"
"AynaLivePlayer/core/adapter"
"AynaLivePlayer/core/events"
"AynaLivePlayer/core/model"
"AynaLivePlayer/global"
config2 "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/driver/desktop"
"fyne.io/fyne/v2/widget"
_logger "AynaLivePlayer/pkg/logger"
)
var API adapter.IControlBridge
var App fyne.App
var MainWindow fyne.Window
var playerWindow fyne.Window
var playerWindowHandle uintptr
func l() adapter.ILogger {
return API.Logger().WithModule("GUI")
}
var logger _logger.ILogger = nil
func black_magic() {
widget.RichTextStyleStrong.TextStyle.Bold = false
}
func Initialize() {
logger = global.Logger.WithPrefix("GUI")
black_magic()
l().Info("Initializing GUI")
logger.Info("Initializing GUI")
//os.Setenv("FYNE_FONT", config.GetAssetPath("msyh.ttc"))
App = app.New()
App.Settings().SetTheme(&myTheme{})
MainWindow = App.NewWindow(fmt.Sprintf("%s Ver.%s", config.ProgramName, model.Version(config.Version)))
MainWindow = App.NewWindow(fmt.Sprintf("%s Ver %s", config2.ProgramName, model.Version(config2.Version)))
tabs := container.NewAppTabs(
container.NewTabItem(i18n.T("gui.tab.player"),
@@ -48,15 +48,15 @@ func Initialize() {
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(),
),
//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)
@@ -65,56 +65,41 @@ func Initialize() {
//MainWindow.Resize(fyne.NewSize(1280, 720))
MainWindow.Resize(fyne.NewSize(960, 480))
playerWindow = App.NewWindow("CorePlayerPreview")
playerWindow.Resize(fyne.NewSize(480, 240))
playerWindow.SetCloseIntercept(func() {
playerWindow.Hide()
})
MainWindow.SetOnClosed(func() {
playerWindow.Close()
})
playerWindow.Hide()
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.AutoCheckUpdate {
go checkUpdate()
}
//if config2.General.AutoCheckUpdate {
// go checkUpdate()
//}
}
func showPlayerWindow() {
playerWindow.Show()
if playerWindowHandle == 0 {
playerWindowHandle = util.GetWindowHandle("CorePlayerPreview")
l().Infof("video output window handle: %d", playerWindowHandle)
if playerWindowHandle != 0 {
_ = API.PlayControl().GetPlayer().SetWindowHandle(playerWindowHandle)
}
}
}
func addShortCut() {
key := &desktop.CustomShortcut{KeyName: fyne.KeyRight, Modifier: fyne.KeyModifierControl | fyne.KeyModifierShift}
MainWindow.Canvas().AddShortcut(key, func(shortcut fyne.Shortcut) {
l().Info("Shortcut pressed: Ctrl+Shift+Right")
API.PlayControl().PlayNext()
})
}
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)
}
}
//
//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)
// }
//}