重构: App拆分10域文件+并发安全+结构化日志+依赖升级
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/wailsapp/wails/v3/pkg/application"
|
||||
)
|
||||
|
||||
// ========== 窗口控制方法 ==========
|
||||
|
||||
// WindowMinimize 最小化窗口
|
||||
func (a *App) WindowMinimize() {
|
||||
if a.mainWindow != nil {
|
||||
a.mainWindow.Minimise()
|
||||
}
|
||||
}
|
||||
|
||||
// WindowMaximize 最大化/还原窗口
|
||||
func (a *App) WindowMaximize() {
|
||||
if a.mainWindow == nil {
|
||||
return
|
||||
}
|
||||
if a.mainWindow.IsMaximised() {
|
||||
a.mainWindow.UnMaximise()
|
||||
} else {
|
||||
a.mainWindow.Maximise()
|
||||
}
|
||||
}
|
||||
|
||||
// WindowClose 关闭窗口
|
||||
func (a *App) WindowClose() {
|
||||
application.Get().Quit()
|
||||
}
|
||||
|
||||
// WindowIsMaximized 检查窗口是否最大化
|
||||
func (a *App) WindowIsMaximized() bool {
|
||||
if a.mainWindow != nil {
|
||||
return a.mainWindow.IsMaximised()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// WindowToggleAlwaysOnTop 切换窗口置顶
|
||||
func (a *App) WindowToggleAlwaysOnTop() bool {
|
||||
if a.mainWindow == nil {
|
||||
return false
|
||||
}
|
||||
a.mu.Lock()
|
||||
a.isAlwaysOnTop = !a.isAlwaysOnTop
|
||||
a.mu.Unlock()
|
||||
a.mainWindow.SetAlwaysOnTop(a.isAlwaysOnTop)
|
||||
return a.isAlwaysOnTop
|
||||
}
|
||||
|
||||
// SetWindowTitleBarColor 设置原生标题栏颜色 + 主题模式(0x00BBGGRR 格式)
|
||||
func (a *App) SetWindowTitleBarColor(color uint32, isDark bool) {
|
||||
if a.mainWindow == nil {
|
||||
return
|
||||
}
|
||||
hwnd := uintptr(a.mainWindow.NativeWindow())
|
||||
if hwnd == 0 {
|
||||
return
|
||||
}
|
||||
setWindowTitleBar(hwnd, color, isDark)
|
||||
}
|
||||
|
||||
// Reload 重新加载窗口(用于菜单项)
|
||||
func (a *App) Reload() {
|
||||
if a.mainWindow != nil {
|
||||
a.mainWindow.Reload()
|
||||
}
|
||||
}
|
||||
|
||||
// ClearCache 清理本地缓存(用于菜单项)
|
||||
func (a *App) ClearCache() {
|
||||
if a.mainWindow != nil {
|
||||
a.mainWindow.EmitEvent("clear-cache")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user