Sine Striker
2023-12-19 718590bf4dec0e8d9e7a75af98568f5eff5f8f9d
src/quick/quickwindowagent.h
@@ -4,41 +4,46 @@
#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_DECLARE_PRIVATE(QuickWindowAgent)
    public:
        explicit QuickWindowAgent(QObject *parent = nullptr);
        ~QuickWindowAgent();
        ~QuickWindowAgent() override;
    public:
        void 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);
        Q_INVOKABLE bool isHitTestVisible(const QQuickItem *item) const;
        Q_INVOKABLE void setHitTestVisible(const QQuickItem *item, bool visible = true);
    Q_SIGNALS:
        void titleBarWidgetChanged(QQuickItem *item);
        void systemButtonChanged(SystemButton button, QQuickItem *item);
        void titleBarWidgetChanged(const QQuickItem *item);
        void systemButtonChanged(SystemButton button, const QQuickItem *item);
    protected:
        QuickWindowAgent(QuickWindowAgentPrivate &d, QObject *parent = nullptr);
    };
    inline QuickWindowAgent *setupQuickWindow(QQuickWindow *window) {
        auto agent = new QuickWindowAgent(window);
        agent->setup(window);
        return agent;
    }
}
#endif // QUICKWINDOWAGENT_H