From 5b74711c377c6167c9c72d489fdbc47d43fe6e54 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Sep 2025 13:29:46 +0000 Subject: [PATCH 1/3] Initial plan From a2d5053d2190da1e00fcbe314ce383cfc9219a08 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Sep 2025 13:34:49 +0000 Subject: [PATCH 2/3] Fix PIMPL naming and const correctness in Windows platform code Co-authored-by: lijy91 <3889523+lijy91@users.noreply.github.com> --- src/platform/windows/window_manager_windows.cpp | 6 +++--- src/platform/windows/window_windows.cpp | 10 +++++----- src/window.h | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/platform/windows/window_manager_windows.cpp b/src/platform/windows/window_manager_windows.cpp index 1f86143..8baf687 100644 --- a/src/platform/windows/window_manager_windows.cpp +++ b/src/platform/windows/window_manager_windows.cpp @@ -29,7 +29,7 @@ class WindowManager::WindowManagerImpl { WindowManager* manager_; }; -WindowManager::WindowManager() : impl_(std::make_unique(this)) { +WindowManager::WindowManager() : pimpl_(std::make_unique(this)) { SetupEventMonitoring(); } @@ -38,11 +38,11 @@ WindowManager::~WindowManager() { } void WindowManager::SetupEventMonitoring() { - impl_->SetupEventMonitoring(); + pimpl_->SetupEventMonitoring(); } void WindowManager::CleanupEventMonitoring() { - impl_->CleanupEventMonitoring(); + pimpl_->CleanupEventMonitoring(); } void WindowManager::DispatchWindowEvent(const Event& event) { diff --git a/src/platform/windows/window_windows.cpp b/src/platform/windows/window_windows.cpp index 73bb269..5dfc94f 100644 --- a/src/platform/windows/window_windows.cpp +++ b/src/platform/windows/window_windows.cpp @@ -272,7 +272,7 @@ void Window::SetMinimumSize(Size size) { // This is a placeholder implementation } -Size Window::GetMinimumSize() { +Size Window::GetMinimumSize() const { // Placeholder implementation return Size{0, 0}; } @@ -282,7 +282,7 @@ void Window::SetMaximumSize(Size size) { // This is a placeholder implementation } -Size Window::GetMaximumSize() { +Size Window::GetMaximumSize() const { // Placeholder implementation return Size{0, 0}; } @@ -409,7 +409,7 @@ void Window::SetAlwaysOnTop(bool is_always_on_top) { } } -bool Window::IsAlwaysOnTop() { +bool Window::IsAlwaysOnTop() const { if (pimpl_->hwnd_) { LONG_PTR exStyle = GetWindowLongPtr(pimpl_->hwnd_, GWL_EXSTYLE); return (exStyle & WS_EX_TOPMOST) != 0; @@ -425,7 +425,7 @@ void Window::SetPosition(Point point) { } } -Point Window::GetPosition() { +Point Window::GetPosition() const { Point point = {0, 0}; if (pimpl_->hwnd_) { @@ -446,7 +446,7 @@ void Window::SetTitle(std::string title) { } } -std::string Window::GetTitle() { +std::string Window::GetTitle() const { if (pimpl_->hwnd_) { int length = GetWindowTextLength(pimpl_->hwnd_); if (length > 0) { diff --git a/src/window.h b/src/window.h index 498e9d5..f86b746 100644 --- a/src/window.h +++ b/src/window.h @@ -52,9 +52,9 @@ class Window { void SetContentSize(Size size); Size GetContentSize() const; void SetMinimumSize(Size size); - Size GetMinimumSize(); + Size GetMinimumSize() const; void SetMaximumSize(Size size); - Size GetMaximumSize(); + Size GetMaximumSize() const; void SetResizable(bool is_resizable); bool IsResizable() const; void SetMovable(bool is_movable); @@ -68,11 +68,11 @@ class Window { void SetClosable(bool is_closable); bool IsClosable() const; void SetAlwaysOnTop(bool is_always_on_top); - bool IsAlwaysOnTop(); + bool IsAlwaysOnTop() const; void SetPosition(Point point); - Point GetPosition(); + Point GetPosition() const; void SetTitle(std::string title); - std::string GetTitle(); + std::string GetTitle() const; void SetHasShadow(bool has_shadow); bool HasShadow() const; void SetOpacity(float opacity); From 831b5fd584915d91871ac97353f30e0cadb807a6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Sep 2025 13:37:43 +0000 Subject: [PATCH 3/3] Fix PIMPL class naming and add missing library pragmas for Windows Co-authored-by: lijy91 <3889523+lijy91@users.noreply.github.com> --- src/platform/windows/accessibility_manager_windows.cpp | 2 ++ src/platform/windows/tray_icon_windows.cpp | 3 +++ src/platform/windows/tray_manager_windows.cpp | 2 ++ src/platform/windows/tray_windows.cpp | 3 +++ src/platform/windows/window_manager_windows.cpp | 8 ++++---- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/platform/windows/accessibility_manager_windows.cpp b/src/platform/windows/accessibility_manager_windows.cpp index 4ac6b36..2889d65 100644 --- a/src/platform/windows/accessibility_manager_windows.cpp +++ b/src/platform/windows/accessibility_manager_windows.cpp @@ -3,6 +3,8 @@ #include #include +#pragma comment(lib, "oleacc.lib") + namespace nativeapi { void AccessibilityManager::Enable() { diff --git a/src/platform/windows/tray_icon_windows.cpp b/src/platform/windows/tray_icon_windows.cpp index 86755f8..6e3eca5 100644 --- a/src/platform/windows/tray_icon_windows.cpp +++ b/src/platform/windows/tray_icon_windows.cpp @@ -5,6 +5,9 @@ #include #include #include + +#pragma comment(lib, "shell32.lib") + #include "../../tray_icon.h" #include "../../menu.h" #include "../../tray_icon_event.h" diff --git a/src/platform/windows/tray_manager_windows.cpp b/src/platform/windows/tray_manager_windows.cpp index e8848cb..0cfc2a7 100644 --- a/src/platform/windows/tray_manager_windows.cpp +++ b/src/platform/windows/tray_manager_windows.cpp @@ -3,6 +3,8 @@ #include #include +#pragma comment(lib, "shell32.lib") + #include "../../tray_icon.h" #include "../../tray_manager.h" diff --git a/src/platform/windows/tray_windows.cpp b/src/platform/windows/tray_windows.cpp index bf84684..290d5be 100644 --- a/src/platform/windows/tray_windows.cpp +++ b/src/platform/windows/tray_windows.cpp @@ -5,6 +5,9 @@ #include #include #include + +#pragma comment(lib, "shell32.lib") + #include "../../tray.h" #include "../../menu.h" diff --git a/src/platform/windows/window_manager_windows.cpp b/src/platform/windows/window_manager_windows.cpp index 8baf687..6d63d5e 100644 --- a/src/platform/windows/window_manager_windows.cpp +++ b/src/platform/windows/window_manager_windows.cpp @@ -12,10 +12,10 @@ namespace nativeapi { // Private implementation for Windows (stub for now) -class WindowManager::WindowManagerImpl { +class WindowManager::Impl { public: - WindowManagerImpl(WindowManager* manager) : manager_(manager) {} - ~WindowManagerImpl() {} + Impl(WindowManager* manager) : manager_(manager) {} + ~Impl() {} void SetupEventMonitoring() { // TODO: Implement Windows-specific event monitoring @@ -29,7 +29,7 @@ class WindowManager::WindowManagerImpl { WindowManager* manager_; }; -WindowManager::WindowManager() : pimpl_(std::make_unique(this)) { +WindowManager::WindowManager() : pimpl_(std::make_unique(this)) { SetupEventMonitoring(); }