From e9d163b1a811ee4f02e898bc7c2e6336d88e4a7f Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周日, 28 7月 2024 18:09:03 +0800 Subject: [PATCH] Make hit-test items auto-delete --- src/quick/quickwindowagent.h | 37 +++++++++++++++++++++++++------------ 1 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/quick/quickwindowagent.h b/src/quick/quickwindowagent.h index e2460d4..e4290e6 100644 --- a/src/quick/quickwindowagent.h +++ b/src/quick/quickwindowagent.h @@ -1,3 +1,7 @@ +// 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 QUICKWINDOWAGENT_H #define QUICKWINDOWAGENT_H @@ -21,22 +25,31 @@ public: Q_INVOKABLE bool setup(QQuickWindow *window); - Q_INVOKABLE const QQuickItem *titleBar() const; - Q_INVOKABLE void setTitleBar(const QQuickItem *item); + Q_INVOKABLE QQuickItem *titleBar() const; + Q_INVOKABLE void setTitleBar(QQuickItem *item); - Q_INVOKABLE const QQuickItem *systemButton(SystemButton button) const; - Q_INVOKABLE void setSystemButton(SystemButton button, const QQuickItem *item); + Q_INVOKABLE QQuickItem *systemButton(SystemButton button) const; + Q_INVOKABLE void setSystemButton(SystemButton button, QQuickItem *item); +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) + Q_INVOKABLE bool isHitTestVisible(QQuickItem *item) const; +#else Q_INVOKABLE bool isHitTestVisible(const QQuickItem *item) const; - Q_INVOKABLE inline void setHitTestVisible(const QQuickItem *item, bool visible = true) { - setHitTestVisible_item(item, visible); - } - Q_INVOKABLE void setHitTestVisible_item(const QQuickItem *item, bool visible = true); - Q_INVOKABLE void setHitTestVisible_rect(const QRect &rect, bool visible = true); +#endif + Q_INVOKABLE void setHitTestVisible(QQuickItem *item, bool visible = true); + +#ifdef Q_OS_MAC + // The system button area APIs are experimental, very likely to change in the future. + Q_INVOKABLE QQuickItem *systemButtonArea() const; + Q_INVOKABLE void setSystemButtonArea(QQuickItem *item); + + Q_INVOKABLE ScreenRectCallback systemButtonAreaCallback() const; + Q_INVOKABLE void setSystemButtonAreaCallback(const ScreenRectCallback &callback); +#endif Q_SIGNALS: - void titleBarWidgetChanged(const QQuickItem *item); - void systemButtonChanged(SystemButton button, const QQuickItem *item); + void titleBarWidgetChanged(QQuickItem *item); + void systemButtonChanged(SystemButton button, QQuickItem *item); protected: QuickWindowAgent(QuickWindowAgentPrivate &d, QObject *parent = nullptr); @@ -44,4 +57,4 @@ } -#endif // QUICKWINDOWAGENT_H \ No newline at end of file +#endif // QUICKWINDOWAGENT_H -- Gitblit v1.9.1