diff options
Diffstat (limited to 'src/plugins/platforms/mirclient/qmirclientintegration.h')
-rw-r--r-- | src/plugins/platforms/mirclient/qmirclientintegration.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/plugins/platforms/mirclient/qmirclientintegration.h b/src/plugins/platforms/mirclient/qmirclientintegration.h new file mode 100644 index 0000000000..0e1fc0160f --- /dev/null +++ b/src/plugins/platforms/mirclient/qmirclientintegration.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2014 Canonical, Ltd. + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License version 3, as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, + * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef QMIRCLIENTINTEGRATION_H +#define QMIRCLIENTINTEGRATION_H + +#include <qpa/qplatformintegration.h> +#include <QSharedPointer> + +#include "qmirclientplatformservices.h" + +// platform-api +#include <ubuntu/application/description.h> +#include <ubuntu/application/instance.h> + +class QMirClientClipboard; +class QMirClientInput; +class QMirClientScreen; + +class QMirClientClientIntegration : public QPlatformIntegration { +public: + QMirClientClientIntegration(); + virtual ~QMirClientClientIntegration(); + + // QPlatformIntegration methods. + bool hasCapability(QPlatformIntegration::Capability cap) const override; + QAbstractEventDispatcher *createEventDispatcher() const override; + QPlatformNativeInterface* nativeInterface() const override { return mNativeInterface; } + QPlatformBackingStore* createPlatformBackingStore(QWindow* window) const override; + QPlatformOpenGLContext* createPlatformOpenGLContext(QOpenGLContext* context) const override; + QPlatformFontDatabase* fontDatabase() const override { return mFontDb; } + QStringList themeNames() const override; + QPlatformTheme* createPlatformTheme(const QString& name) const override; + QVariant styleHint(StyleHint hint) const override; + QPlatformServices *services() const override; + QPlatformWindow* createPlatformWindow(QWindow* window) const override; + QPlatformInputContext* inputContext() const override { return mInputContext; } + QPlatformClipboard* clipboard() const override; + + QPlatformOpenGLContext* createPlatformOpenGLContext(QOpenGLContext* context); + QPlatformWindow* createPlatformWindow(QWindow* window); + QMirClientScreen* screen() const { return mScreen; } + +private: + void setupOptions(); + void setupDescription(); + + QPlatformNativeInterface* mNativeInterface; + QPlatformFontDatabase* mFontDb; + + QMirClientPlatformServices* mServices; + + QMirClientScreen* mScreen; + QMirClientInput* mInput; + QPlatformInputContext* mInputContext; + QSharedPointer<QMirClientClipboard> mClipboard; + qreal mScaleFactor; + + // Platform API stuff + UApplicationOptions* mOptions; + UApplicationDescription* mDesc; + UApplicationInstance* mInstance; +}; + +#endif // QMIRCLIENTINTEGRATION_H |