My Project
Loading...
Searching...
No Matches
ApplicationInfoInterface.h
1/*
2 * Copyright 2013,2015,2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef UNITY_SHELL_APPLICATION_APPLICATIONINFOINTERFACE_H
18#define UNITY_SHELL_APPLICATION_APPLICATIONINFOINTERFACE_H
19
20#include <unity/SymbolExport.h>
21
22#include <QtCore/QObject>
23#include <QtCore/QUrl>
24#include <QColor>
25#include <QSize>
26
27namespace unity
28{
29namespace shell
30{
31namespace application
32{
33
34class MirSurfaceListInterface;
35
43class UNITY_API ApplicationInfoInterface: public QObject
44{
45 Q_OBJECT
46
53 Q_PROPERTY(QString appId READ appId CONSTANT)
54
55
60 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
61
68 Q_PROPERTY(QString comment READ comment NOTIFY commentChanged)
69
75 Q_PROPERTY(QUrl icon READ icon NOTIFY iconChanged)
76
82 Q_PROPERTY(State state READ state NOTIFY stateChanged)
83
87 Q_PROPERTY(RequestedState requestedState READ requestedState WRITE setRequestedState NOTIFY requestedStateChanged)
88
94 Q_PROPERTY(bool focused READ focused NOTIFY focusedChanged)
95
105 Q_PROPERTY(QString splashTitle READ splashTitle CONSTANT)
106
117 Q_PROPERTY(QUrl splashImage READ splashImage CONSTANT)
118
135 Q_PROPERTY(bool splashShowHeader READ splashShowHeader CONSTANT)
136
146 Q_PROPERTY(QColor splashColor READ splashColor CONSTANT)
147
159 Q_PROPERTY(QColor splashColorHeader READ splashColorHeader CONSTANT)
160
172 Q_PROPERTY(QColor splashColorFooter READ splashColorFooter CONSTANT)
173
178 Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations CONSTANT)
179
192 Q_PROPERTY(bool rotatesWindowContents READ rotatesWindowContents CONSTANT)
193
197 Q_PROPERTY(bool isTouchApp READ isTouchApp CONSTANT)
198
204 Q_PROPERTY(bool exemptFromLifecycle READ exemptFromLifecycle WRITE setExemptFromLifecycle NOTIFY exemptFromLifecycleChanged)
205
209 Q_PROPERTY(QSize initialSurfaceSize READ initialSurfaceSize WRITE setInitialSurfaceSize NOTIFY initialSurfaceSizeChanged)
210
214 Q_PROPERTY(unity::shell::application::MirSurfaceListInterface* surfaceList READ surfaceList CONSTANT)
215
219 Q_PROPERTY(unity::shell::application::MirSurfaceListInterface* promptSurfaceList READ promptSurfaceList CONSTANT)
220
229 Q_PROPERTY(int surfaceCount READ surfaceCount NOTIFY surfaceCountChanged)
230
231protected:
233 ApplicationInfoInterface(const QString &appId, QObject* parent = 0): QObject(parent) { Q_UNUSED(appId) }
235
236public:
245 enum Stage {
246 MainStage,
247 SideStage
248 };
249 Q_ENUM(Stage)
250
251
263 enum State {
264 Starting,
265 Running,
266 Suspended,
267 Stopped
268 };
269 Q_ENUM(State)
270
271
279 RequestedRunning = Running,
280 RequestedSuspended = Suspended
281 };
282 Q_ENUM(RequestedState)
283
284
287 virtual void close() = 0;
288
290 virtual ~ApplicationInfoInterface() {}
291
292 virtual QString appId() const = 0;
293 virtual QString name() const = 0;
294 virtual QString comment() const = 0;
295 virtual QUrl icon() const = 0;
296 virtual State state() const = 0;
297 virtual RequestedState requestedState() const = 0;
298 virtual void setRequestedState(RequestedState) = 0;
299 virtual bool focused() const = 0;
300 virtual QString splashTitle() const = 0;
301 virtual QUrl splashImage() const = 0;
302 virtual bool splashShowHeader() const = 0;
303 virtual QColor splashColor() const = 0;
304 virtual QColor splashColorHeader() const = 0;
305 virtual QColor splashColorFooter() const = 0;
306 virtual Qt::ScreenOrientations supportedOrientations() const = 0;
307 virtual bool rotatesWindowContents() const = 0;
308 virtual bool isTouchApp() const = 0;
309 virtual bool exemptFromLifecycle() const = 0;
310 virtual void setExemptFromLifecycle(bool) = 0;
311 virtual QSize initialSurfaceSize() const = 0;
312 virtual void setInitialSurfaceSize(const QSize &size) = 0;
313 virtual MirSurfaceListInterface* surfaceList() const = 0;
314 virtual MirSurfaceListInterface* promptSurfaceList() const = 0;
315 virtual int surfaceCount() const = 0;
317
318Q_SIGNALS:
320 void nameChanged(const QString &name);
321 void commentChanged(const QString &comment);
322 void iconChanged(const QUrl &icon);
323 void stateChanged(State state);
324 void requestedStateChanged(RequestedState value);
325 void focusedChanged(bool focused);
326 void exemptFromLifecycleChanged(bool exemptFromLifecycle);
327 void initialSurfaceSizeChanged(const QSize &size);
328 void surfaceCountChanged(int surfaceCount);
330
335};
336
337} // namespace application
338} // namespace shell
339} // namespace unity
340
342
343#endif // UNITY_SHELL_APPLICATIONMANAGER_APPLICATIONINFOINTERFACE_H
A class that holds information about applications.
Definition ApplicationInfoInterface.h:44
RequestedState
The desired state of an application.
Definition ApplicationInfoInterface.h:278
Stage
A enum that defines a stage.
Definition ApplicationInfoInterface.h:245
void focusRequested()
The application is requesting focus.
State
An application's state.
Definition ApplicationInfoInterface.h:263
Interface for a list model of MirSurfaces.
Definition MirSurfaceListInterface.h:32
Top-level namespace for all things Unity-related.
Definition Version.h:38