app: add upgrade configuration to settings page
This commit is contained in:
@@ -47,6 +47,34 @@ func (t *winTray) initMenus() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *winTray) ClearUpdateAvailable() error {
|
||||
if t.updateNotified {
|
||||
slog.Debug("clearing update notification and menu items")
|
||||
if err := t.removeMenuItem(updateSeparatorMenuID, 0); err != nil {
|
||||
return fmt.Errorf("unable to remove menu entries %w", err)
|
||||
}
|
||||
if err := t.removeMenuItem(updateAvailableMenuID, 0); err != nil {
|
||||
return fmt.Errorf("unable to remove menu entries %w", err)
|
||||
}
|
||||
if err := t.removeMenuItem(updateMenuID, 0); err != nil {
|
||||
return fmt.Errorf("unable to remove menu entries %w", err)
|
||||
}
|
||||
if err := t.removeMenuItem(separatorMenuID, 0); err != nil {
|
||||
return fmt.Errorf("unable to remove menu entries %w", err)
|
||||
}
|
||||
iconFilePath, err := iconBytesToFilePath(wt.normalIcon)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to write icon data to temp file: %w", err)
|
||||
}
|
||||
if err := t.setIcon(iconFilePath); err != nil {
|
||||
return fmt.Errorf("unable to set icon: %w", err)
|
||||
}
|
||||
t.updateNotified = false
|
||||
t.pendingUpdate = false
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *winTray) UpdateAvailable(ver string) error {
|
||||
if !t.updateNotified {
|
||||
slog.Debug("updating menu and sending notification for new update")
|
||||
|
||||
@@ -369,24 +369,24 @@ func (t *winTray) addSeparatorMenuItem(menuItemId, parentId uint32) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// func (t *winTray) hideMenuItem(menuItemId, parentId uint32) error {
|
||||
// const ERROR_SUCCESS syscall.Errno = 0
|
||||
func (t *winTray) removeMenuItem(menuItemId, parentId uint32) error {
|
||||
const ERROR_SUCCESS syscall.Errno = 0
|
||||
|
||||
// t.muMenus.RLock()
|
||||
// menu := uintptr(t.menus[parentId])
|
||||
// t.muMenus.RUnlock()
|
||||
// res, _, err := pRemoveMenu.Call(
|
||||
// menu,
|
||||
// uintptr(menuItemId),
|
||||
// MF_BYCOMMAND,
|
||||
// )
|
||||
// if res == 0 && err.(syscall.Errno) != ERROR_SUCCESS {
|
||||
// return err
|
||||
// }
|
||||
// t.delFromVisibleItems(parentId, menuItemId)
|
||||
t.muMenus.RLock()
|
||||
menu := uintptr(t.menus[parentId])
|
||||
t.muMenus.RUnlock()
|
||||
res, _, err := pRemoveMenu.Call(
|
||||
menu,
|
||||
uintptr(menuItemId),
|
||||
MF_BYCOMMAND,
|
||||
)
|
||||
if res == 0 && err.(syscall.Errno) != ERROR_SUCCESS {
|
||||
return err
|
||||
}
|
||||
t.delFromVisibleItems(parentId, menuItemId)
|
||||
|
||||
// return nil
|
||||
// }
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *winTray) showMenu() error {
|
||||
p := point{}
|
||||
|
||||
@@ -30,6 +30,7 @@ var (
|
||||
pPostQuitMessage = u32.NewProc("PostQuitMessage")
|
||||
pRegisterClass = u32.NewProc("RegisterClassExW")
|
||||
pRegisterWindowMessage = u32.NewProc("RegisterWindowMessageW")
|
||||
pRemoveMenu = u32.NewProc("RemoveMenu")
|
||||
pSendMessage = u32.NewProc("SendMessageW")
|
||||
pSetForegroundWindow = u32.NewProc("SetForegroundWindow")
|
||||
pSetMenuInfo = u32.NewProc("SetMenuInfo")
|
||||
|
||||
Reference in New Issue
Block a user