1 #ifndef FGQQWINDOWMANAGER_HXX
2 #define FGQQWINDOWMANAGER_HXX
3 
4 #include <QObject>
5 #include <memory>
6 
7 // forward decls
8 class QAbstractItemModel;
9 class QQmlEngine;
10 
11 class FGQQWindowManager : public QObject
12 {
13     Q_OBJECT
14 public:
15     explicit FGQQWindowManager(QQmlEngine* engine, QObject* parent = nullptr);
16     ~FGQQWindowManager();
17 
18     Q_PROPERTY(QAbstractItemModel* windows READ windows CONSTANT)
19 
20     QAbstractItemModel* windows() const;
21 
22     Q_INVOKABLE bool show(QString windowId);
23 
24     Q_INVOKABLE bool requestPopout(QString windowId);
25 
26     Q_INVOKABLE bool requestClose(QString windowId);
27 
28     Q_INVOKABLE bool requestPopin(QString windowId);
29 signals:
30 
31 public slots:
32 
33 private:
34     class WindowManagerPrivate;
35 
36     std::unique_ptr<WindowManagerPrivate> _d;
37     QQmlEngine* _engine = nullptr;
38 };
39 
40 #endif // FGQQWINDOWMANAGER_HXX
41