Mir.h
/*
* Copyright (C) 2015-2016 Canonical, Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LOMIRI_SHELL_APPLICATION_MIR_H
#define LOMIRI_SHELL_APPLICATION_MIR_H
#include <QObject>
class Mir : public QObject
{
Q_OBJECT
Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
Q_PROPERTY(QString currentKeymap READ currentKeymap WRITE setCurrentKeymap NOTIFY currentKeymapChanged)
public:
enum Type {
UnknownType,
NormalType,
UtilityType,
DialogType,
GlossType,
FreeStyleType,
MenuType,
InputMethodType,
SatelliteType,
TipType,
};
Q_ENUM(Type)
enum State {
UnknownState,
RestoredState,
MinimizedState,
MaximizedState,
FullscreenState,
MaximizedLeftState,
MaximizedRightState,
HorizMaximizedState,
VertMaximizedState,
MaximizedTopLeftState,
MaximizedTopRightState,
MaximizedBottomLeftState,
MaximizedBottomRightState,
HiddenState,
AttachedState,
};
Q_ENUM(State)
enum OrientationAngle {
Angle0 = 0,
Angle90 = 90,
Angle180 = 180,
Angle270 = 270
};
Q_ENUM(OrientationAngle)
enum ShellChrome {
NormalChrome,
LowChrome,
};
Q_ENUM(ShellChrome)
enum FormFactor {
FormFactorUnknown,
FormFactorPhone,
FormFactorTablet,
FormFactorMonitor,
FormFactorTV,
FormFactorProjector,
};
Q_ENUM(FormFactor)
virtual void setCursorName(const QString &cursorName) = 0;
virtual QString cursorName() const = 0;
virtual QString currentKeymap() const = 0;
virtual void setCurrentKeymap(const QString &currentKeymap) = 0;
Q_SIGNALS:
void cursorNameChanged(const QString &cursorName);
void currentKeymapChanged(const QString &currentKeymap);
};
Q_DECLARE_METATYPE(Mir::Type)
Q_DECLARE_METATYPE(Mir::State)
Q_DECLARE_METATYPE(Mir::OrientationAngle)
Q_DECLARE_METATYPE(Mir::ShellChrome)
Q_DECLARE_METATYPE(Mir::FormFactor)
#endif // LOMIRI_SHELL_APPLICATION_MIR_H
Mir
Acting mostly as a namespace to hold enums and such for use in QML.
Definition: Mir.h:26
Mir::FormFactor
FormFactor
Form Factor.
Definition: Mir.h:106
Mir::currentKeymap
QString currentKeymap
Definition: Mir.h:41
Mir::State
State
Surface state.
Definition: Mir.h:64
Mir::ShellChrome
ShellChrome
Shell chrome.
Definition: Mir.h:97
Mir::Type
Type
Surface type.
Definition: Mir.h:47
Mir::OrientationAngle
OrientationAngle
Surface orientation angle.
Definition: Mir.h:86
Mir::cursorName
QString cursorName
Name of the mouse cursor to be used. Follows the X Cursor naming convention.
Definition: Mir.h:34