From 5e6d46a9f7055163182b080f0daea063889bfbd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 1 Aug 2023 16:41:21 +0200 Subject: tests: Move NativeWindow helper class to shared header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick-to: 6.6 Change-Id: Ia7dc54aa761fdfde42d49a41475a4fbc74036aeb Reviewed-by: Christian Strømme Reviewed-by: Friedemann Kleint --- .../auto/gui/kernel/qwindow/tst_foreignwindow.cpp | 109 +-------------------- 1 file changed, 1 insertion(+), 108 deletions(-) (limited to 'tests/auto/gui/kernel/qwindow') diff --git a/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp index 1d78178977..dc82d8b833 100644 --- a/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp +++ b/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp @@ -7,114 +7,7 @@ #include #include -#if defined(Q_OS_MACOS) -# include -#elif defined(Q_OS_WIN) -# include -#endif - -Q_LOGGING_CATEGORY(lcTests, "qt.gui.tests") - -class NativeWindow -{ - Q_DISABLE_COPY(NativeWindow) -public: - NativeWindow(); - ~NativeWindow(); - - operator WId() const { return reinterpret_cast(m_handle); } - - void setGeometry(const QRect &rect); - QRect geometry() const; - -private: -#if defined(Q_OS_MACOS) - NSView *m_handle = nullptr; -#elif defined(Q_OS_WIN) - HWND m_handle = nullptr; -#endif -}; - -#if defined(Q_OS_MACOS) - -@interface View : NSView -@end - -@implementation View -- (instancetype)init -{ - if ((self = [super init])) { - qCDebug(lcTests) << "Initialized" << self; - } - return self; -} - -- (void)dealloc -{ - qCDebug(lcTests) << "Deallocating" << self; - [super dealloc]; -} -@end - -NativeWindow::NativeWindow() - : m_handle([View new]) -{ -} - -NativeWindow::~NativeWindow() -{ - [m_handle release]; -} - -void NativeWindow::setGeometry(const QRect &rect) -{ - m_handle.frame = QRectF(rect).toCGRect(); -} - -QRect NativeWindow::geometry() const -{ - return QRectF::fromCGRect(m_handle.frame).toRect(); -} - -#elif defined(Q_OS_WIN) - -NativeWindow::NativeWindow() -{ - static const LPCWSTR className = []{ - WNDCLASS wc = {}; - wc.lpfnWndProc = DefWindowProc; - wc.hInstance = GetModuleHandle(nullptr); - wc.lpszClassName = L"Native Window"; - RegisterClass(&wc); - return wc.lpszClassName; - }(); - m_handle = CreateWindowEx(0, className, nullptr, WS_POPUP, - CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - nullptr, nullptr, GetModuleHandle(nullptr), nullptr); -} - -NativeWindow::~NativeWindow() -{ - DestroyWindow(m_handle); -} - -void NativeWindow::setGeometry(const QRect &rect) -{ - MoveWindow(m_handle, rect.x(), rect.y(), rect.width(), rect.height(), false); -} - -QRect NativeWindow::geometry() const -{ - WINDOWPLACEMENT wp; - wp.length = sizeof(WINDOWPLACEMENT); - if (GetWindowPlacement(m_handle, &wp)) { - RECT r = wp.rcNormalPosition; - return QRect(r.left, r.top, r.right - r.left, r.bottom - r.top); - } - return {}; -} - -#endif +#include "../../../../shared/nativewindow.h" class tst_ForeignWindow: public QObject { -- cgit v1.2.3