From 7990ac78e1938536650456bf987a4c986a4e6f1b Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周三, 03 1月 2024 23:27:33 +0800 Subject: [PATCH] Update license --- src/core/shared/systemwindow_p.h | 182 ++++++++++++++++++++++----------------------- 1 files changed, 88 insertions(+), 94 deletions(-) diff --git a/src/core/shared/systemwindow_p.h b/src/core/shared/systemwindow_p.h index 3b8cf87..d969aa9 100644 --- a/src/core/shared/systemwindow_p.h +++ b/src/core/shared/systemwindow_p.h @@ -1,4 +1,5 @@ -// Copyright (C) 2023-2024 Stdware Collections +// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware) +// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao) // SPDX-License-Identifier: Apache-2.0 #ifndef SYSTEMWINDOW_P_H @@ -18,107 +19,100 @@ #include <QWKCore/private/qwkglobal_p.h> -// Don't include this header in any header files. - namespace QWK { - // Anonymous namespace - namespace { + class WindowMoveManipulator : public QObject { + public: + explicit WindowMoveManipulator(QWindow *targetWindow) + : QObject(targetWindow), target(targetWindow), initialMousePosition(QCursor::pos()), + initialWindowPosition(targetWindow->position()) { + target->installEventFilter(this); + } - class WindowMoveManipulator : public QObject { - public: - explicit WindowMoveManipulator(QWindow *targetWindow) - : QObject(targetWindow), target(targetWindow), initialMousePosition(QCursor::pos()), - initialWindowPosition(targetWindow->position()) { - target->installEventFilter(this); - } - - protected: - bool eventFilter(QObject *obj, QEvent *event) override { - switch (event->type()) { - case QEvent::MouseMove: { - auto mouseEvent = static_cast<QMouseEvent *>(event); - QPoint delta = getMouseEventGlobalPos(mouseEvent) - initialMousePosition; - target->setPosition(initialWindowPosition + delta); - return true; - } - - case QEvent::MouseButtonRelease: { - if (target->y() < 0) { - target->setPosition(target->x(), 0); - } - target->removeEventFilter(this); - deleteLater(); - } - - default: - break; + protected: + bool eventFilter(QObject *obj, QEvent *event) override { + switch (event->type()) { + case QEvent::MouseMove: { + auto mouseEvent = static_cast<QMouseEvent *>(event); + QPoint delta = getMouseEventGlobalPos(mouseEvent) - initialMousePosition; + target->setPosition(initialWindowPosition + delta); + return true; } - return false; - } - private: - QWindow *target; - QPoint initialMousePosition; - QPoint initialWindowPosition; - }; - - class WindowResizeManipulator : public QObject { - public: - WindowResizeManipulator(QWindow *targetWindow, Qt::Edges edges) - : QObject(targetWindow), target(targetWindow), resizeEdges(edges), - initialMousePosition(QCursor::pos()), initialWindowRect(target->geometry()) { - target->installEventFilter(this); - } - - protected: - bool eventFilter(QObject *obj, QEvent *event) override { - switch (event->type()) { - case QEvent::MouseMove: { - auto mouseEvent = static_cast<QMouseEvent *>(event); - QPoint globalMousePos = getMouseEventGlobalPos(mouseEvent); - QRect windowRect = initialWindowRect; - - if (resizeEdges & Qt::LeftEdge) { - int delta = globalMousePos.x() - initialMousePosition.x(); - windowRect.setLeft(initialWindowRect.left() + delta); - } - if (resizeEdges & Qt::RightEdge) { - int delta = globalMousePos.x() - initialMousePosition.x(); - windowRect.setRight(initialWindowRect.right() + delta); - } - if (resizeEdges & Qt::TopEdge) { - int delta = globalMousePos.y() - initialMousePosition.y(); - windowRect.setTop(initialWindowRect.top() + delta); - } - if (resizeEdges & Qt::BottomEdge) { - int delta = globalMousePos.y() - initialMousePosition.y(); - windowRect.setBottom(initialWindowRect.bottom() + delta); - } - - target->setGeometry(windowRect); - return true; + case QEvent::MouseButtonRelease: { + if (target->y() < 0) { + target->setPosition(target->x(), 0); } - - case QEvent::MouseButtonRelease: { - target->removeEventFilter(this); - deleteLater(); - } - - default: - break; + target->removeEventFilter(this); + deleteLater(); } - return false; + + default: + break; } + return false; + } - private: - QWindow *target; - QPoint initialMousePosition; - QRect initialWindowRect; - Qt::Edges resizeEdges; - }; + private: + QWindow *target; + QPoint initialMousePosition; + QPoint initialWindowPosition; + }; - } + class WindowResizeManipulator : public QObject { + public: + WindowResizeManipulator(QWindow *targetWindow, Qt::Edges edges) + : QObject(targetWindow), target(targetWindow), resizeEdges(edges), + initialMousePosition(QCursor::pos()), initialWindowRect(target->geometry()) { + target->installEventFilter(this); + } + + protected: + bool eventFilter(QObject *obj, QEvent *event) override { + switch (event->type()) { + case QEvent::MouseMove: { + auto mouseEvent = static_cast<QMouseEvent *>(event); + QPoint globalMousePos = getMouseEventGlobalPos(mouseEvent); + QRect windowRect = initialWindowRect; + + if (resizeEdges & Qt::LeftEdge) { + int delta = globalMousePos.x() - initialMousePosition.x(); + windowRect.setLeft(initialWindowRect.left() + delta); + } + if (resizeEdges & Qt::RightEdge) { + int delta = globalMousePos.x() - initialMousePosition.x(); + windowRect.setRight(initialWindowRect.right() + delta); + } + if (resizeEdges & Qt::TopEdge) { + int delta = globalMousePos.y() - initialMousePosition.y(); + windowRect.setTop(initialWindowRect.top() + delta); + } + if (resizeEdges & Qt::BottomEdge) { + int delta = globalMousePos.y() - initialMousePosition.y(); + windowRect.setBottom(initialWindowRect.bottom() + delta); + } + + target->setGeometry(windowRect); + return true; + } + + case QEvent::MouseButtonRelease: { + target->removeEventFilter(this); + deleteLater(); + } + + default: + break; + } + return false; + } + + private: + QWindow *target; + QPoint initialMousePosition; + QRect initialWindowRect; + Qt::Edges resizeEdges; + }; // QWindow::startSystemMove() and QWindow::startSystemResize() is first supported at Qt 5.15 // QWindow::startSystemResize() returns false on macOS @@ -126,7 +120,7 @@ // When the new API fails, we emulate the window actions using the classical API. - static inline void startSystemMove(QWindow *window) { + inline void startSystemMove(QWindow *window) { #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0)) std::ignore = new WindowMoveManipulator(window); #elif defined(Q_OS_LINUX) @@ -139,7 +133,7 @@ #endif } - static inline void startSystemResize(QWindow *window, Qt::Edges edges) { + inline void startSystemResize(QWindow *window, Qt::Edges edges) { #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0)) std::ignore = new WindowResizeManipulator(window, edges); #elif defined(Q_OS_MAC) || defined(Q_OS_LINUX) -- Gitblit v1.9.1