2
* Copyright (C) 2017 Canonical, Ltd.
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; version 3.
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 General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
#ifndef UNITYAPPLICATIONMOCKS_H
18
#define UNITYAPPLICATIONMOCKS_H
20
#include <unity/shell/application/ApplicationInfoInterface.h>
21
#include <unity/shell/application/ApplicationManagerInterface.h>
22
#include <unity/shell/application/MirSurfaceInterface.h>
23
#include <unity/shell/application/SurfaceManagerInterface.h>
26
#include <Unity/Application/MirSurfaceListModel.h>
28
using namespace unity::shell::application;
30
class MirSurface : public MirSurfaceInterface
34
Mir::Type type() const override { return m_type; }
35
QString name() const override { return QString("foo"); }
36
QString persistentId() const override { return QString("a-b-c-my-id"); }
37
QString appId() const override { return QString(); }
38
QPoint position() const override { return QPoint(); }
39
QSize size() const override { return QSize(); }
40
void resize(int, int) override {}
41
void resize(const QSize &) override {}
42
Mir::State state() const override { return m_state; }
43
bool live() const override { return m_live; }
44
bool visible() const override { return true; }
45
Mir::OrientationAngle orientationAngle() const override { return Mir::Angle0; }
46
void setOrientationAngle(Mir::OrientationAngle) override {}
48
int minimumWidth() const override { return 0; }
49
int minimumHeight() const override { return 0; }
50
int maximumWidth() const override { return 0; }
51
int maximumHeight() const override { return 0; }
52
int widthIncrement() const override { return 0; }
53
int heightIncrement() const override { return 0; }
55
void setKeymap(const QString &) override {}
56
QString keymap() const override { return QString(); }
57
Mir::ShellChrome shellChrome() const override { return Mir::NormalChrome; }
58
bool focused() const override { return true; }
59
QRect inputBounds() const override { return QRect(); }
60
bool confinesMousePointer() const override { return false; }
61
bool allowClientResize() const override { return true; }
62
void setAllowClientResize(bool) override {}
63
QPoint requestedPosition() const override { return QPoint(); }
64
void setRequestedPosition(const QPoint &) override {}
65
MirSurfaceInterface* parentSurface() const override { return nullptr; }
66
unity::shell::application::MirSurfaceListInterface* childSurfaceList() const override { return nullptr; }
67
void close() override {}
68
void activate() override {}
71
void requestState(Mir::State value) override
73
if (m_state != value) {
75
Q_EMIT stateChanged(m_state);
80
Mir::Type m_type { Mir::NormalType };
81
Mir::State m_state { Mir::RestoredState };
85
class SurfaceManager : public SurfaceManagerInterface
90
void raise(MirSurfaceInterface *) override {}
91
void activate(MirSurfaceInterface *) override {}
94
class Application : public ApplicationInfoInterface
98
Application(QString appId) : ApplicationInfoInterface(appId, nullptr), m_appId(std::move(appId)) {}
100
void close() override {}
101
QString appId() const override { return m_appId;}
102
QString name() const override { return "foo"; }
103
QString comment() const override { return "bar"; }
104
QUrl icon() const override { return QUrl(); }
105
State state() const override { return m_state; }
106
RequestedState requestedState() const override { return m_requestedState; }
107
void setRequestedState(RequestedState value) override
109
if (value != m_requestedState) {
110
m_requestedState = value;
111
Q_EMIT requestedStateChanged(value);
114
bool focused() const override { return false; }
115
QString splashTitle() const override { return QString(); }
116
QUrl splashImage() const override { return QUrl(); }
117
bool splashShowHeader() const override { return false; }
118
QColor splashColor() const override { return QColor(); }
119
QColor splashColorHeader() const override { return QColor(); }
120
QColor splashColorFooter() const override { return QColor(); }
121
Qt::ScreenOrientations supportedOrientations() const override { return Qt::LandscapeOrientation; }
122
bool rotatesWindowContents() const override { return false; }
123
bool isTouchApp() const override { return false; }
124
bool exemptFromLifecycle() const override { return false; }
125
void setExemptFromLifecycle(bool) override {}
126
QSize initialSurfaceSize() const override { return QSize(); }
127
void setInitialSurfaceSize(const QSize &) override {}
128
MirSurfaceListInterface* surfaceList() const override { return &m_surfaceList; }
129
MirSurfaceListInterface* promptSurfaceList() const override { return nullptr; }
130
int surfaceCount() const override { return 0; }
134
RequestedState m_requestedState;
135
mutable MirSurfaceListModel m_surfaceList;
138
class ApplicationManager : public ApplicationManagerInterface
144
int rowCount(const QModelIndex &) const override
146
return m_applications.count();
149
QVariant data(const QModelIndex &/*index*/, int /*role*/) const override
154
QString focusedApplicationId() const override {return QString();}
156
ApplicationInfoInterface *get(int index) const override
158
return m_applications[index];
161
ApplicationInfoInterface *findApplication(const QString &appId) const override
167
ApplicationInfoInterface *findApplicationWithSurface(MirSurfaceInterface* surface) const override
169
for (int i = 0; i < m_applications.count(); ++i) {
170
if (m_applications[i]->m_surfaceList.contains(surface)) {
171
return m_applications[i];
177
bool requestFocusApplication(const QString &appId) override
183
ApplicationInfoInterface *startApplication(const QString &appId, const QStringList &/*arguments*/) override
185
Application *application = new Application(appId);
186
prepend(application);
190
bool stopApplication(const QString &) override { return true; }
193
void prepend(Application *application)
195
beginInsertRows(QModelIndex(), 0 /*first*/, 0 /*last*/);
196
m_applications.append(application);
200
QList<Application*> m_applications;
203
#endif // UNITYAPPLICATIONMOCKS_H