SineStriker
2023-12-29 76924a335f40a0c3cc13805b4cb9429c336d33ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef QUICKWINDOWAGENT_H
#define QUICKWINDOWAGENT_H
 
#include <QtQuick/QQuickItem>
#include <QtQuick/QQuickWindow>
 
#include <QWKCore/windowagentbase.h>
#include <QWKQuick/qwkquickglobal.h>
 
namespace QWK {
 
    class QuickWindowAgentPrivate;
 
    class QWK_QUICK_EXPORT QuickWindowAgent : public WindowAgentBase {
        Q_OBJECT
        Q_DECLARE_PRIVATE(QuickWindowAgent)
    public:
        explicit QuickWindowAgent(QObject *parent = nullptr);
        ~QuickWindowAgent() override;
 
    public:
        Q_INVOKABLE bool setup(QQuickWindow *window);
 
        Q_INVOKABLE QQuickItem *titleBar() const;
        Q_INVOKABLE void setTitleBar(QQuickItem *item);
 
        Q_INVOKABLE QQuickItem *systemButton(SystemButton button) const;
        Q_INVOKABLE void setSystemButton(SystemButton button, QQuickItem *item);
 
        Q_INVOKABLE bool isHitTestVisible(const QQuickItem *item) const;
        Q_INVOKABLE void setHitTestVisible(const QQuickItem *item, bool visible = true);
 
#ifdef Q_OS_MAC
        // The system button area APIs are experimental, may be changed 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);
 
    protected:
        QuickWindowAgent(QuickWindowAgentPrivate &d, QObject *parent = nullptr);
    };
 
}
 
#endif // QUICKWINDOWAGENT_H