From ae691b8e524629329d9ab4a642bec0716274a9a3 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sat, 10 Jun 2023 10:19:33 +1000 Subject: [PATCH] [v3 windows] Small icon updates --- v3/STATUS.md | 36 ++++++++++++++++------ v3/pkg/application/application.go | 2 +- v3/pkg/application/application_windows.go | 27 ++++++++-------- v3/pkg/application/systemtray_windows.go | 12 ++++---- v3/pkg/icons/ApplicationDarkMode-256.png | Bin 2994 -> 4176 bytes v3/pkg/icons/ApplicationLightMode-256.png | Bin 3328 -> 4138 bytes v3/pkg/icons/icon.ico | Bin 0 -> 21677 bytes v3/pkg/icons/icons.go | 3 ++ v3/pkg/w32/icon.go | 30 ++++++++++++++++-- v3/pkg/w32/window.go | 5 +++ 10 files changed, 82 insertions(+), 33 deletions(-) create mode 100644 v3/pkg/icons/icon.ico diff --git a/v3/STATUS.md b/v3/STATUS.md index 3b35a554..e600dce2 100644 --- a/v3/STATUS.md +++ b/v3/STATUS.md @@ -2,6 +2,15 @@ Status of features in v3. Incomplete - please add as you see fit. + +## Major Blockers + +- [ ] Dev Support - What will it look like? +- [ ] Translucency on Windows doesn't work right +- [ ] Events - cross-platform events, simplified event handling? +- [ ] Error handling - needs to be revised. Centralised system error handling? +- [ ] Documentation - needs to be written + ## Application Application interface methods @@ -14,7 +23,7 @@ Application interface methods | name() string | | | Y | | | getCurrentWindowID() uint | Y | | Y | | | showAboutDialog(name string, description string, icon []byte) | | | Y | | -| setIcon(icon []byte) | | | Y | | +| setIcon(icon []byte) | - | | Y | | | on(id uint) | | | Y | | | dispatchOnMainThread(fn func()) | Y | | Y | | | hide() | Y | | Y | | @@ -162,7 +171,7 @@ An 'X' indicates that the option is not supported by the platform. | Width | Y | | | | | Height | Y | | | | | AlwaysOnTop | Y | | | | -| URL | | | | | +| URL | Y | | | | | DisableResize | Y | | | | | Frameless | Y | | | | | MinWidth | Y | | | | @@ -173,9 +182,9 @@ An 'X' indicates that the option is not supported by the platform. | Mac | - | - | | | | BackgroundType | | | | Acrylic seems to work but the others don't | | BackgroundColour | Y | | | | -| HTML | | | | | -| JS | | | | | -| CSS | | | | | +| HTML | Y | | | | +| JS | Y | | | | +| CSS | Y | | | | | X | Y | | | | | Y | Y | | | | | HideOnClose | Y | | | | @@ -277,16 +286,21 @@ Built-in plugin support: | Start at login | | | Y | | | Server | | | | | + +TODO: + +- Ensure each plugin has a JS wrapper that can be injected into the window. + ## Packaging | | Windows | Linux | Mac | Notes | |-----------------|---------|-------|-----|-------| -| Icon Generation | | | Y | | -| Icon Embedding | | | Y | | +| Icon Generation | Y | | Y | | +| Icon Embedding | Y | | Y | | | Info.plist | - | | Y | | | NSIS Installer | | | - | | -| Mac bundle | | | Y | | -| Windows exe | | | - | | +| Mac bundle | - | | Y | | +| Windows exe | Y | | - | | ## Frameless Windows @@ -308,10 +322,11 @@ Built-in plugin support: | TitleBar | | Standard window decorations by default | | Appearance | DefaultAppearance | | | InvisibleTitleBarHeight | 0 | Creates an invisible title bar for frameless windows | +| DisableShadow | false | Disables the window drop shadow | ## Windows Specific -- [x] Translucency +- [ ] Translucency - [x] Custom Themes ### Windows Options @@ -348,3 +363,4 @@ Built-in plugin support: | window | | | | | windowjs | | | | | wml | | | | + diff --git a/v3/pkg/application/application.go b/v3/pkg/application/application.go index 7508afda..0fdda3a1 100644 --- a/v3/pkg/application/application.go +++ b/v3/pkg/application/application.go @@ -391,8 +391,8 @@ func (a *App) Run() error { // set the application menu if runtime.GOOS == "darwin" { a.impl.setApplicationMenu(a.ApplicationMenu) - a.impl.setIcon(a.options.Icon) } + a.impl.setIcon(a.options.Icon) err := a.impl.run() if err != nil { diff --git a/v3/pkg/application/application_windows.go b/v3/pkg/application/application_windows.go index 9a2bd1c8..1c32e54b 100644 --- a/v3/pkg/application/application_windows.go +++ b/v3/pkg/application/application_windows.go @@ -22,7 +22,8 @@ var windowClassName = lo.Must(syscall.UTF16PtrFromString("WailsWebviewWindow")) type windowsApp struct { parent *App - instance w32.HINSTANCE + windowClass w32.WNDCLASSEX + instance w32.HINSTANCE windowMap map[w32.HWND]*windowsWebviewWindow windowMapLock sync.RWMutex @@ -182,22 +183,20 @@ func (m *windowsApp) init() { icon := w32.LoadIconWithResourceID(m.instance, w32.IDI_APPLICATION) - var wc w32.WNDCLASSEX - wc.Size = uint32(unsafe.Sizeof(wc)) - wc.Style = w32.CS_HREDRAW | w32.CS_VREDRAW - wc.WndProc = syscall.NewCallback(m.wndProc) - wc.Instance = m.instance - wc.Background = w32.COLOR_BTNFACE + 1 - wc.Icon = icon - wc.Cursor = w32.LoadCursorWithResourceID(0, w32.IDC_ARROW) - wc.ClassName = windowClassName - wc.MenuName = nil - wc.IconSm = icon + m.windowClass.Size = uint32(unsafe.Sizeof(m.windowClass)) + m.windowClass.Style = w32.CS_HREDRAW | w32.CS_VREDRAW + m.windowClass.WndProc = syscall.NewCallback(m.wndProc) + m.windowClass.Instance = m.instance + m.windowClass.Background = w32.COLOR_BTNFACE + 1 + m.windowClass.Icon = icon + m.windowClass.Cursor = w32.LoadCursorWithResourceID(0, w32.IDC_ARROW) + m.windowClass.ClassName = windowClassName + m.windowClass.MenuName = nil + m.windowClass.IconSm = icon - if ret := w32.RegisterClassEx(&wc); ret == 0 { + if ret := w32.RegisterClassEx(&m.windowClass); ret == 0 { panic(syscall.GetLastError()) } - m.isDarkMode = w32.IsCurrentlyDarkMode() } diff --git a/v3/pkg/application/systemtray_windows.go b/v3/pkg/application/systemtray_windows.go index 827081ff..16abd727 100644 --- a/v3/pkg/application/systemtray_windows.go +++ b/v3/pkg/application/systemtray_windows.go @@ -71,14 +71,14 @@ func (s *windowsSystemTray) run() { } if s.parent.icon != nil { - s.lightModeIcon = lo.Must(w32.CreateHIconFromImage(s.parent.icon)) + s.lightModeIcon = lo.Must(w32.CreateSmallHIconFromImage(s.parent.icon)) } else { - s.lightModeIcon = lo.Must(w32.CreateHIconFromImage(icons.SystrayLight)) + s.lightModeIcon = lo.Must(w32.CreateSmallHIconFromImage(icons.SystrayLight)) } if s.parent.darkModeIcon != nil { - s.darkModeIcon = lo.Must(w32.CreateHIconFromImage(s.parent.darkModeIcon)) + s.darkModeIcon = lo.Must(w32.CreateSmallHIconFromImage(s.parent.darkModeIcon)) } else { - s.darkModeIcon = lo.Must(w32.CreateHIconFromImage(icons.SystrayDark)) + s.darkModeIcon = lo.Must(w32.CreateSmallHIconFromImage(icons.SystrayDark)) } s.uid = nid.UID @@ -149,7 +149,7 @@ func (s *windowsSystemTray) newNotifyIconData() w32.NOTIFYICONDATA { func (s *windowsSystemTray) setIcon(icon []byte) { var err error - s.lightModeIcon, err = w32.CreateHIconFromImage(icon) + s.lightModeIcon, err = w32.CreateSmallHIconFromImage(icon) if err != nil { panic(syscall.GetLastError()) } @@ -161,7 +161,7 @@ func (s *windowsSystemTray) setIcon(icon []byte) { } func (s *windowsSystemTray) setDarkModeIcon(icon []byte) { var err error - s.darkModeIcon, err = w32.CreateHIconFromImage(icon) + s.darkModeIcon, err = w32.CreateSmallHIconFromImage(icon) if err != nil { panic(syscall.GetLastError()) } diff --git a/v3/pkg/icons/ApplicationDarkMode-256.png b/v3/pkg/icons/ApplicationDarkMode-256.png index 10959272ace1737d2020b399578a2744c8bb69c7..68e5e7666cf23c4b4b8cd634956c828ebcd5b223 100644 GIT binary patch literal 4176 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 literal 2994 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 Oe!QovpUXO@geCy@O;g4I literal 3328 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 diff --git a/v3/pkg/icons/icon.ico b/v3/pkg/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bfa0690b7f8aea8d793026b51f9fc4eed2e00af7 GIT binary patch literal 21677 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