| | |
| | | // 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 |
| | | |
| | | #include <QtQuick/QQuickItem> |
| | | #include <QtQuick/QQuickWindow> |
| | | |
| | | #include <QWKCore/corewindowagent.h> |
| | | #include <QWKCore/windowagentbase.h> |
| | | #include <QWKQuick/qwkquickglobal.h> |
| | | |
| | | namespace QWK { |
| | | |
| | | class QuickWindowAgentPrivate; |
| | | |
| | | class QWK_QUICK_EXPORT QuickWindowAgent : public CoreWindowAgent { |
| | | class QWK_QUICK_EXPORT QuickWindowAgent : public WindowAgentBase { |
| | | Q_OBJECT |
| | | Q_DISABLE_COPY(QuickWindowAgent) |
| | | Q_DECLARE_PRIVATE(QuickWindowAgent) |
| | | |
| | | public: |
| | | explicit QuickWindowAgent(QObject *parent = nullptr); |
| | | ~QuickWindowAgent() override; |
| | | |
| | | public: |
| | | bool setup(QQuickWindow *window); |
| | | Q_INVOKABLE bool setup(QQuickWindow *window); |
| | | |
| | | bool isHitTestVisible(QQuickItem *item) const; |
| | | void setHitTestVisible(QQuickItem *item, bool visible); |
| | | void setHitTestVisible(const QRect &rect, bool visible); |
| | | Q_INVOKABLE QQuickItem *titleBar() const; |
| | | Q_INVOKABLE void setTitleBar(QQuickItem *item); |
| | | |
| | | QQuickItem *systemButton(SystemButton button) const; |
| | | void setSystemButton(SystemButton button, QQuickItem *item); |
| | | Q_INVOKABLE QQuickItem *systemButton(SystemButton button) const; |
| | | Q_INVOKABLE void setSystemButton(SystemButton button, QQuickItem *item); |
| | | |
| | | QQuickItem *titleBar() const; |
| | | void setTitleBar(QQuickItem *item); |
| | | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) |
| | | Q_INVOKABLE bool isHitTestVisible(QQuickItem *item) const; |
| | | Q_INVOKABLE void setHitTestVisible(QQuickItem *item, bool visible = true); |
| | | #else |
| | | Q_INVOKABLE bool isHitTestVisible(const QQuickItem *item) const; |
| | | Q_INVOKABLE void setHitTestVisible(const QQuickItem *item, bool visible = true); |
| | | #endif |
| | | |
| | | #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(QQuickItem *item); |
| | |
| | | |
| | | } |
| | | |
| | | #endif // QUICKWINDOWAGENT_H |
| | | #endif // QUICKWINDOWAGENT_H |