4 #include <qtmir/screen.h> 5 #include <QScopedPointer> 8 #include "WorkspaceModel.h" 14 class Screen:
public QObject
18 Q_PROPERTY(
bool active READ isActive WRITE setActive NOTIFY activeChanged)
19 Q_PROPERTY(
bool used READ used NOTIFY usedChanged)
20 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
21 Q_PROPERTY(qtmir::OutputTypes outputType READ outputType NOTIFY outputTypeChanged)
22 Q_PROPERTY(
float scale READ scale NOTIFY scaleChanged)
23 Q_PROPERTY(qtmir::FormFactor formFactor READ formFactor NOTIFY formFactorChanged)
24 Q_PROPERTY(MirPowerMode powerMode READ powerMode NOTIFY powerModeChanged)
25 Q_PROPERTY(Qt::ScreenOrientation orientation READ orientation NOTIFY orientationChanged)
26 Q_PROPERTY(QPoint position READ position NOTIFY positionChanged)
27 Q_PROPERTY(uint currentModeIndex READ currentModeIndex NOTIFY currentModeIndexChanged)
28 Q_PROPERTY(QQmlListProperty<qtmir::ScreenMode> availableModes READ availableModes NOTIFY availableModesChanged)
29 Q_PROPERTY(QSizeF physicalSize READ physicalSize NOTIFY physicalSizeChanged)
30 Q_PROPERTY(QString outputTypeName READ outputTypeName NOTIFY outputTypeChanged)
31 Q_PROPERTY(WorkspaceModel* workspaces READ workspaces CONSTANT)
32 Q_PROPERTY(Workspace* currentWorkspace READ currentWorkspace WRITE setCurrentWorkspace2 NOTIFY currentWorkspaceChanged)
37 QSizeF physicalSize()
const;
38 qtmir::FormFactor formFactor()
const;
39 qtmir::OutputTypes outputType()
const;
40 MirPowerMode powerMode()
const;
41 Qt::ScreenOrientation orientation()
const;
42 QPoint position()
const;
43 QQmlListProperty<qtmir::ScreenMode> availableModes();
44 uint currentModeIndex()
const;
45 bool isActive()
const;
46 void setActive(
bool active);
47 QScreen* qscreen()
const;
48 QString outputTypeName()
const;
50 Q_INVOKABLE
bool isSameAs(Screen*)
const;
52 Q_INVOKABLE ScreenConfig *beginConfiguration()
const;
53 Q_INVOKABLE
bool applyConfiguration(ScreenConfig *configuration);
55 virtual WorkspaceModel* workspaces()
const = 0;
56 virtual Workspace *currentWorkspace()
const = 0;
57 virtual void setCurrentWorkspace(Workspace* workspace) = 0;
59 void sync(Screen* proxy);
61 qtmir::Screen* wrapped()
const {
return m_wrapped; }
69 void outputTypeChanged();
70 void outputTypeNameChanged();
72 void formFactorChanged();
73 void powerModeChanged();
74 void orientationChanged();
75 void positionChanged();
76 void currentModeIndexChanged();
77 void physicalSizeChanged();
78 void availableModesChanged();
79 void activeChanged(
bool active);
80 void currentWorkspaceChanged(Workspace*);
83 Screen(QObject* parent = 0);
85 void connectToScreen(qtmir::Screen* screen);
86 void connectToScreen(Screen* screen);
89 void setCurrentWorkspace2(Workspace* workspace);
92 QPointer<qtmir::Screen> m_wrapped;
96 class ConcreteScreen :
public Screen
100 explicit ConcreteScreen(qtmir::Screen*
const wrapped);
103 WorkspaceModel* workspaces()
const override;
104 Workspace *currentWorkspace()
const override;
105 void setCurrentWorkspace(Workspace* workspace)
override;
108 void resetCurrentWorkspace();
110 const QScopedPointer<WorkspaceModel> m_workspaces;
111 QPointer<Workspace> m_currentWorspace;
114 class ProxyScreen :
public Screen
118 explicit ProxyScreen(Screen*
const screen, ProxyScreens* screens);
121 WorkspaceModel* workspaces()
const override;
122 Workspace *currentWorkspace()
const override;
123 void setCurrentWorkspace(Workspace* workspace)
override;
125 Screen* proxyObject()
const {
return m_original.data(); }
127 bool isSyncing()
const;
130 const QScopedPointer<WorkspaceModel> m_workspaces;
131 const QPointer<Screen> m_original;
132 const ProxyScreens* m_screens;
133 QPointer<Workspace> m_currentWorspace;
136 class ScreenConfig:
public QObject
139 Q_PRIVATE_PROPERTY(m_config,
bool valid MEMBER used CONSTANT)
140 Q_PRIVATE_PROPERTY(m_config,
bool used MEMBER used)
141 Q_PRIVATE_PROPERTY(m_config,
float scale MEMBER scale)
142 Q_PRIVATE_PROPERTY(m_config, qtmir::FormFactor formFactor MEMBER formFactor)
143 Q_PRIVATE_PROPERTY(m_config, uint currentModeIndex MEMBER currentModeIndex)
144 Q_PRIVATE_PROPERTY(m_config, QPoint position MEMBER topLeft)
147 ScreenConfig(qtmir::ScreenConfiguration*);
150 qtmir::ScreenConfiguration* m_config;