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 LOMIRI_SHELL_APPLICATION_APPLICATIONINFOINTERFACE_H
18#define LOMIRI_SHELL_APPLICATION_APPLICATIONINFOINTERFACE_H
19
20#include <lomiri/SymbolExport.h>
21
22#include <QtCore/QObject>
23#include <QtCore/QUrl>
24#include <QColor>
25#include <QSize>
26
27namespace lomiri
28{
29namespace shell
30{
31namespace application
32{
33
35
42
43class LOMIRI_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
102 Q_PROPERTY(bool showSplash READ showSplash CONSTANT)
103
113 Q_PROPERTY(QString splashTitle READ splashTitle CONSTANT)
114
125 Q_PROPERTY(QUrl splashImage READ splashImage CONSTANT)
126
143 Q_PROPERTY(bool splashShowHeader READ splashShowHeader CONSTANT)
144
154 Q_PROPERTY(QColor splashColor READ splashColor CONSTANT)
155
167 Q_PROPERTY(QColor splashColorHeader READ splashColorHeader CONSTANT)
168
180 Q_PROPERTY(QColor splashColorFooter READ splashColorFooter CONSTANT)
181
186 Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations CONSTANT)
187
200 Q_PROPERTY(bool rotatesWindowContents READ rotatesWindowContents CONSTANT)
201
205 Q_PROPERTY(bool isTouchApp READ isTouchApp CONSTANT)
206
212 Q_PROPERTY(bool exemptFromLifecycle READ exemptFromLifecycle WRITE setExemptFromLifecycle NOTIFY exemptFromLifecycleChanged)
213
217 Q_PROPERTY(QSize initialSurfaceSize READ initialSurfaceSize WRITE setInitialSurfaceSize NOTIFY initialSurfaceSizeChanged)
218
222 Q_PROPERTY(lomiri::shell::application::MirSurfaceListInterface* surfaceList READ surfaceList CONSTANT)
223
227 Q_PROPERTY(lomiri::shell::application::MirSurfaceListInterface* promptSurfaceList READ promptSurfaceList CONSTANT)
228
237 Q_PROPERTY(int surfaceCount READ surfaceCount NOTIFY surfaceCountChanged)
238
245 Q_PROPERTY(bool serverSideDecoration READ serverSideDecoration NOTIFY serverSideDecorationChanged)
246
247protected:
249 ApplicationInfoInterface(const QString &appId, QObject* parent = 0): QObject(parent) { Q_UNUSED(appId) }
251
252public:
261 enum Stage {
262 MainStage,
263 SideStage
264 };
265 Q_ENUM(Stage)
266
267
279 enum State {
280 Starting,
281 Running,
282 Suspended,
283 Stopped
284 };
285 Q_ENUM(State)
286
287
295 RequestedRunning = Running,
296 RequestedSuspended = Suspended
297 };
298 Q_ENUM(RequestedState)
299
300
303 virtual void close() = 0;
304
306 virtual ~ApplicationInfoInterface() {}
307
308 virtual QString appId() const = 0;
309 virtual QString name() const = 0;
310 virtual QString comment() const = 0;
311 virtual QUrl icon() const = 0;
312 virtual State state() const = 0;
313 virtual RequestedState requestedState() const = 0;
314 virtual void setRequestedState(RequestedState) = 0;
315 virtual bool focused() const = 0;
316 virtual bool showSplash() const = 0;
317 virtual QString splashTitle() const = 0;
318 virtual QUrl splashImage() const = 0;
319 virtual bool splashShowHeader() const = 0;
320 virtual QColor splashColor() const = 0;
321 virtual QColor splashColorHeader() const = 0;
322 virtual QColor splashColorFooter() const = 0;
323 virtual Qt::ScreenOrientations supportedOrientations() const = 0;
324 virtual bool rotatesWindowContents() const = 0;
325 virtual bool isTouchApp() const = 0;
326 virtual bool exemptFromLifecycle() const = 0;
327 virtual void setExemptFromLifecycle(bool) = 0;
328 virtual QSize initialSurfaceSize() const = 0;
329 virtual void setInitialSurfaceSize(const QSize &size) = 0;
330 virtual MirSurfaceListInterface* surfaceList() const = 0;
331 virtual MirSurfaceListInterface* promptSurfaceList() const = 0;
332 virtual int surfaceCount() const = 0;
333 virtual bool serverSideDecoration() const = 0;
335
336Q_SIGNALS:
338 void nameChanged(const QString &name);
339 void commentChanged(const QString &comment);
340 void iconChanged(const QUrl &icon);
341 void stateChanged(State state);
342 void requestedStateChanged(RequestedState value);
343 void focusedChanged(bool focused);
344 void exemptFromLifecycleChanged(bool exemptFromLifecycle);
345 void initialSurfaceSizeChanged(const QSize &size);
346 void surfaceCountChanged(int surfaceCount);
347 void serverSideDecorationChanged(bool ssd);
349
354};
355
356} // namespace application
357} // namespace shell
358} // namespace lomiri
359
361
362#endif // LOMIRI_SHELL_APPLICATIONMANAGER_APPLICATIONINFOINTERFACE_H
A class that holds information about applications.
Definition ApplicationInfoInterface.h:44
State state
The application's state.
Definition ApplicationInfoInterface.h:82
bool serverSideDecoration
Whether the application wants server side decoration.
Definition ApplicationInfoInterface.h:245
virtual void close()=0
Closes the application.
bool isTouchApp
Whether the application is an app targeting the Ubuntu Touch platform.
Definition ApplicationInfoInterface.h:205
bool focused
The application's focus state.
Definition ApplicationInfoInterface.h:94
QSize initialSurfaceSize
The size to be given for new surfaces created by this application.
Definition ApplicationInfoInterface.h:217
bool rotatesWindowContents
Whether the application UI will rotate itself to match the screen orientation.
Definition ApplicationInfoInterface.h:200
QColor splashColorFooter
Color of the splash screen footer.
Definition ApplicationInfoInterface.h:180
Qt::ScreenOrientations supportedOrientations
The orientations supported by the application UI.
Definition ApplicationInfoInterface.h:186
lomiri::shell::application::MirSurfaceListInterface * promptSurfaceList
The list of top-level prompt surfaces for this application.
Definition ApplicationInfoInterface.h:227
bool showSplash
Show Splash screen.
Definition ApplicationInfoInterface.h:102
QString appId
The appId of the application.
Definition ApplicationInfoInterface.h:53
QString comment
The comment for the application.
Definition ApplicationInfoInterface.h:68
QUrl splashImage
Splash image.
Definition ApplicationInfoInterface.h:125
bool splashShowHeader
Whether an application header should be shown on the splash screen.
Definition ApplicationInfoInterface.h:143
QString name
The name of the application.
Definition ApplicationInfoInterface.h:60
QColor splashColor
Background color of the splash screen.
Definition ApplicationInfoInterface.h:154
QUrl icon
The application's icon.
Definition ApplicationInfoInterface.h:75
RequestedState requestedState
The application's requested running state.
Definition ApplicationInfoInterface.h:87
lomiri::shell::application::MirSurfaceListInterface * surfaceList
List of the top-level surfaces created by this application.
Definition ApplicationInfoInterface.h:222
Stage
A enum that defines a stage.
Definition ApplicationInfoInterface.h:261
QColor splashColorHeader
Color of the splash screen header.
Definition ApplicationInfoInterface.h:167
bool exemptFromLifecycle
Whether this app is exempt from lifecycle management.
Definition ApplicationInfoInterface.h:212
int surfaceCount
Count of application's surfaces.
Definition ApplicationInfoInterface.h:237
State
An application's state.
Definition ApplicationInfoInterface.h:279
QString splashTitle
Splash screen title.
Definition ApplicationInfoInterface.h:113
RequestedState
The desired state of an application.
Definition ApplicationInfoInterface.h:294
void focusRequested()
The application is requesting focus.
Interface for a list model of MirSurfaces.
Definition MirSurfaceListInterface.h:32
Top-level namespace for all things Lomiri-related.
Definition Version.h:38