From 7e132b345cc2b2515838c387a76ccc9f29705ba6 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周二, 19 12月 2023 03:12:59 +0800
Subject: [PATCH] Add fallback to qt window context

---
 src/core/qwkglobal_p.h |   37 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 36 insertions(+), 1 deletions(-)

diff --git a/src/core/qwkglobal_p.h b/src/core/qwkglobal_p.h
index 1a1f626..6df96cd 100644
--- a/src/core/qwkglobal_p.h
+++ b/src/core/qwkglobal_p.h
@@ -2,8 +2,9 @@
 #define QWKGLOBAL_P_H
 
 #include <QtCore/QLoggingCategory>
+#include <QtGui/QMouseEvent>
 
-#include <QWKCore/qwkcoreglobal.h>
+#include <QWKCore/qwkglobal.h>
 
 QWK_CORE_EXPORT Q_DECLARE_LOGGING_CATEGORY(qWindowKitLog)
 
@@ -15,4 +16,38 @@
 #  define QWK_FATAL qCFatal(qWindowKitLog)
 #endif
 
+#define MAKE_RGB_COLOR(r, g, b) ((quint32) (((r) &0xFF) << 16) | (((g) &0xFF) << 8) | ((b) &0xFF))
+
+#define MAKE_RGBA_COLOR(r, g, b, a)                                                                \
+    ((quint32) (((a) &0xFF) << 24) | (((r) &0xFF) << 16) | (((g) &0xFF) << 8) | ((b) &0xFF))
+
+#if defined(Q_CC_MSVC)
+#  define QWK_NOINLINE __declspec(noinline)
+#  define QWK_INLINE   __forceinline
+#  define QWK_USED
+#else
+#  define QWK_NOINLINE __attribute__((noinline))
+#  define QWK_INLINE   __attribute__((always_inline))
+#  define QWK_USED     __attribute__((used))
+#endif
+
+namespace QWK {
+
+    inline QPoint getMouseEventScenePos(const QMouseEvent *event) {
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+        return event->scenePosition().toPoint();
+#else
+        return event->windowPos().toPoint();
+#endif
+    }
+    inline QPoint getMouseEventGlobalPos(const QMouseEvent *event) {
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+        return event->globalPosition().toPoint();
+#else
+        return event->screenPos().toPoint();
+#endif
+    }
+    
+}
+
 #endif // QWKGLOBAL_P_H

--
Gitblit v1.9.1