My Project
MirSurfaceItemInterface.h
1 /*
2  * Copyright (C) 2015 Canonical, Ltd.
3  *
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.
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 General Public License for more details.
12  *
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/>.
15  */
16 
17 #ifndef UNITY_SHELL_APPLICATION_MIRSURFACEITEM_H
18 #define UNITY_SHELL_APPLICATION_MIRSURFACEITEM_H
19 
20 #include "Mir.h"
21 
22 #include <QQuickItem>
23 
24 namespace unity
25 {
26 namespace shell
27 {
28 namespace application
29 {
30 
31 class MirSurfaceInterface;
32 
40 class MirSurfaceItemInterface : public QQuickItem
41 {
42  Q_OBJECT
43 
47  Q_PROPERTY(unity::shell::application::MirSurfaceInterface* surface READ surface WRITE setSurface NOTIFY surfaceChanged)
48 
49 
52  Q_PROPERTY(Mir::Type type READ type NOTIFY typeChanged)
53 
57  Q_PROPERTY(Mir::State surfaceState READ surfaceState WRITE setSurfaceState NOTIFY surfaceStateChanged)
58 
62  Q_PROPERTY(QString name READ name CONSTANT)
63 
68  Q_PROPERTY(bool live READ live NOTIFY liveChanged)
69 
75  Q_PROPERTY(Mir::OrientationAngle orientationAngle READ orientationAngle WRITE setOrientationAngle
76  NOTIFY orientationAngleChanged DESIGNABLE false)
77 
78 
84  Q_PROPERTY(bool consumesInput READ consumesInput
85  WRITE setConsumesInput
86  NOTIFY consumesInputChanged)
87 
93  Q_PROPERTY(int surfaceWidth READ surfaceWidth
94  WRITE setSurfaceWidth
95  NOTIFY surfaceWidthChanged)
96 
102  Q_PROPERTY(int surfaceHeight READ surfaceHeight
103  WRITE setSurfaceHeight
104  NOTIFY surfaceHeightChanged)
105 
106 public:
108  MirSurfaceItemInterface(QQuickItem *parent = 0) : QQuickItem(parent) {}
109  virtual ~MirSurfaceItemInterface() {}
110 
111  virtual Mir::Type type() const = 0;
112  virtual QString name() const = 0;
113  virtual bool live() const = 0;
114 
115  virtual Mir::State surfaceState() const = 0;
116  virtual void setSurfaceState(Mir::State) = 0;
117 
118  virtual Mir::OrientationAngle orientationAngle() const = 0;
119  virtual void setOrientationAngle(Mir::OrientationAngle angle) = 0;
120 
121  virtual MirSurfaceInterface* surface() const = 0;
122  virtual void setSurface(MirSurfaceInterface*) = 0;
123 
124  virtual bool consumesInput() const = 0;
125  virtual void setConsumesInput(bool value) = 0;
126 
127  virtual int surfaceWidth() const = 0;
128  virtual void setSurfaceWidth(int value) = 0;
129 
130  virtual int surfaceHeight() const = 0;
131  virtual void setSurfaceHeight(int value) = 0;
133 
134 Q_SIGNALS:
136  void typeChanged(Mir::Type);
137  void surfaceStateChanged(Mir::State);
138  void liveChanged(bool live);
139  void orientationAngleChanged(Mir::OrientationAngle angle);
140  void surfaceChanged(MirSurfaceInterface*);
141  void consumesInputChanged(bool value);
142  void surfaceWidthChanged(int value);
143  void surfaceHeightChanged(int value);
145 };
146 
147 } // namespace application
148 } // namespace shell
149 } // namespace unity
150 
151 #endif // UNITY_SHELL_APPLICATION_MIRSURFACEITEM_H
unity::shell::application::MirSurfaceInterface surface
The surface to be displayed.
Definition: MirSurfaceItemInterface.h:47
Mir::State surfaceState
State of the given surface or Mir.UnknownState if no surface is set.
Definition: MirSurfaceItemInterface.h:57
Mir::OrientationAngle orientationAngle
Orientation angle of the given surface.
Definition: MirSurfaceItemInterface.h:76
bool live
True if the item has a surface and that surface has a mir client bound to it. A "zombie" (live == fal...
Definition: MirSurfaceItemInterface.h:68
Type
Surface type.
Definition: Mir.h:36
State
Surface state.
Definition: Mir.h:52
Top-level namespace for all things Unity-related.
Definition: Version.h:37
int surfaceWidth
The desired width for the contained MirSurface. It's ignored if set to zero or a negative number The ...
Definition: MirSurfaceItemInterface.h:95
Renders a MirSurface in a QML scene and forwards the input events it receives to it.
Definition: MirSurfaceItemInterface.h:40
int surfaceHeight
The desired height for the contained MirSurface. It's ignored if set to zero or a negative number The...
Definition: MirSurfaceItemInterface.h:104
QString name
Name of the given surface or an empty string if no surface is set.
Definition: MirSurfaceItemInterface.h:62
OrientationAngle
Surface orientation angle.
Definition: Mir.h:66
bool consumesInput
Whether the item will forward activeFocus, touch events, mouse events and key events to its surface...
Definition: MirSurfaceItemInterface.h:86
Acting as a namespace to hold enums and such for use in QML.
Definition: Mir.h:25
Mir::Type type
Type of the given surface or Mir.UnknownType if no surface is set.
Definition: MirSurfaceItemInterface.h:52
Holds a Mir surface. Pretty much an opaque class.
Definition: MirSurfaceInterface.h:38