新增: 相册展示模块(左侧幻灯片+进度条+目录选择)

- 左侧固定卡片展示照片幻灯片,淡入淡出切换
- 进度条动画显示当前照片剩余时间
- 设置窗口支持选择图片目录和切换间隔(5/10/15/20/30/60秒)
- Win32 SHBrowseForFolderW 目录选择对话框
- Go 端管理幻灯片状态,按间隔推送照片 data URI
This commit is contained in:
2026-05-26 04:45:58 +08:00
parent eed461e325
commit 8e7ec8424d
7 changed files with 378 additions and 0 deletions

View File

@@ -138,6 +138,8 @@ func openSettingsWindow() {
"imagePath": cfg.ImagePath,
"showSeconds": cfg.ShowSeconds,
"ainewsCard": !cfg.HideAINews,
"photoDir": cfg.PhotoDir,
"photoInterval": cfg.PhotoInterval,
})
return string(data)
})
@@ -364,6 +366,40 @@ func openSettingsWindow() {
return ""
})
w.Bind("pickPhotoDir", func() string {
hwnd := uintptr(w.Window())
dir := browseForFolderDialog(hwnd)
if dir == "" {
return ""
}
cfg := loadConfig()
cfg.PhotoDir = dir
if cfg.PhotoInterval <= 0 {
cfg.PhotoInterval = 15
}
saveConfig(cfg)
restartPhotoLoop()
return dir
})
w.Bind("clearPhotoDir", func() string {
cfg := loadConfig()
cfg.PhotoDir = ""
saveConfig(cfg)
restartPhotoLoop()
return ""
})
w.Bind("savePhotoInterval", func(val int) string {
cfg := loadConfig()
cfg.PhotoInterval = val
saveConfig(cfg)
if cfg.PhotoDir != "" {
restartPhotoLoop()
}
return ""
})
w.SetHtml(settingsHTML)
hwnd := uintptr(w.Window())