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