From c70a286d01728bd2fa01103191c9da23ad3f8be2 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周五, 23 2月 2024 22:03:56 +0800 Subject: [PATCH] Delay filtering the native events --- src/core/windowitemdelegate_p.h | 36 ++++++++++++++++++++++++++++++++---- 1 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/core/windowitemdelegate_p.h b/src/core/windowitemdelegate_p.h index da18578..70d5fe9 100644 --- a/src/core/windowitemdelegate_p.h +++ b/src/core/windowitemdelegate_p.h @@ -1,11 +1,25 @@ +// 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 WINDOWITEMDELEGATE_P_H #define WINDOWITEMDELEGATE_P_H + +// +// W A R N I N G !!! +// ----------------- +// +// This file is not part of the QWindowKit API. It is used purely as an +// implementation detail. This header file may change from version to +// version without notice, or may even be removed. +// #include <QtCore/QObject> #include <QtCore/QPoint> #include <QtGui/QWindow> -#include <QWKCore/qwkcoreglobal.h> +#include <QWKCore/private/winidchangeeventfilter_p.h> +#include <QWKCore/qwkglobal.h> namespace QWK { @@ -16,18 +30,32 @@ public: // Item property query - virtual QWindow *window(QObject *obj) const = 0; + virtual QWindow *window(const QObject *obj) const = 0; virtual bool isEnabled(const QObject *obj) const = 0; virtual bool isVisible(const QObject *obj) const = 0; virtual QRect mapGeometryToScene(const QObject *obj) const = 0; // Host property query - virtual QWindow *hostWindow(QObject *host) const = 0; + virtual QWindow *hostWindow(const QObject *host) const = 0; virtual bool isHostSizeFixed(const QObject *host) const = 0; virtual bool isWindowActive(const QObject *host) const = 0; + virtual Qt::WindowStates getWindowState(const QObject *host) const = 0; + virtual Qt::WindowFlags getWindowFlags(const QObject *host) const = 0; + virtual QRect getGeometry(const QObject *host) const = 0; // Callbacks - virtual void resetQtGrabbedControl() const; + virtual void resetQtGrabbedControl(QObject *host) const; + virtual void setWindowState(QObject *host, Qt::WindowStates state) const = 0; + virtual void setCursorShape(QObject *host, Qt::CursorShape shape) const = 0; + virtual void restoreCursorShape(QObject *host) const = 0; + virtual void setWindowFlags(QObject *host, Qt::WindowFlags flags) const = 0; + virtual void setWindowVisible(QObject *host, bool visible) const = 0; + virtual void setGeometry(QObject *host, const QRect &rect) = 0; + virtual void bringWindowToTop(QObject *host) const = 0; + + // Factories + virtual WinIdChangeEventFilter * + createWinIdEventFilter(QObject *host, AbstractWindowContext *context) const; private: Q_DISABLE_COPY(WindowItemDelegate) -- Gitblit v1.9.1