From 2f2ee6571e9ce784db0488ade60816f09bd7448c Mon Sep 17 00:00:00 2001
From: SineStriker <trueful@163.com>
Date: 周三, 27 12月 2023 01:56:47 +0800
Subject: [PATCH] Finish customize system button pos for QtWidgets

---
 src/core/windowagentbase.cpp |   44 ++++++++++++++++++--------------------------
 1 files changed, 18 insertions(+), 26 deletions(-)

diff --git a/src/core/windowagentbase.cpp b/src/core/windowagentbase.cpp
index d2b9e1e..0131a60 100644
--- a/src/core/windowagentbase.cpp
+++ b/src/core/windowagentbase.cpp
@@ -5,9 +5,9 @@
 
 #include "qwkglobal_p.h"
 
-#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
+#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(ENABLE_QT_WINDOW_CONTEXT)
 #  include "win32windowcontext_p.h"
-#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
+#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(ENABLE_QT_WINDOW_CONTEXT)
 #  include "cocoawindowcontext_p.h"
 #else
 #  include "qtwindowcontext_p.h"
@@ -33,9 +33,9 @@
             return windowContextFactoryMethod();
         }
 
-#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
+#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(ENABLE_QT_WINDOW_CONTEXT)
         return new Win32WindowContext();
-#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
+#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(ENABLE_QT_WINDOW_CONTEXT)
         return new CocoaWindowContext();
 #else
         return new QtWindowContext();
@@ -50,37 +50,29 @@
 
     WindowAgentBase::~WindowAgentBase() = default;
 
+    QVariant WindowAgentBase::windowAttribute(const QString &key) const {
+        Q_D(const WindowAgentBase);
+        return d->context->windowAttribute(key);
+    }
+
+    bool WindowAgentBase::setWindowAttribute(const QString &key, const QVariant &attribute) {
+        Q_D(WindowAgentBase);
+        return d->context->setWindowAttribute(key, attribute);
+    }
+
     void WindowAgentBase::showSystemMenu(const QPoint &pos) {
         Q_D(WindowAgentBase);
         d->context->showSystemMenu(pos);
     }
 
-    void WindowAgentBase::startSystemMove(const QPoint &pos) {
-        Q_D(WindowAgentBase);
-        auto win = d->context->window();
-        if (!win) {
-            return;
-        }
-
-        Q_UNUSED(pos)
-        win->startSystemMove();
-    }
-
-    void WindowAgentBase::startSystemResize(Qt::Edges edges, const QPoint &pos) {
-        Q_D(WindowAgentBase);
-        auto win = d->context->window();
-        if (!win) {
-            return;
-        }
-
-        Q_UNUSED(pos)
-        win->startSystemResize(edges);
-    }
-
     void WindowAgentBase::centralize() {
+        Q_D(WindowAgentBase);
+        d->context->virtual_hook(AbstractWindowContext::CentralizeHook, nullptr);
     }
 
     void WindowAgentBase::raise() {
+        Q_D(WindowAgentBase);
+        d->context->virtual_hook(AbstractWindowContext::RaiseWindowHook, nullptr);
     }
 
     WindowAgentBase::WindowAgentBase(WindowAgentBasePrivate &d, QObject *parent)

--
Gitblit v1.9.1