78 lines
1.6 KiB
Go
78 lines
1.6 KiB
Go
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")
|
|
}
|
|
}
|