summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorLasse Holmstedt <lasse.holmstedt@nokia.com>2011-08-31 09:55:11 +0200
committerQt by Nokia <qt-info@nokia.com>2011-09-05 11:11:04 +0200
commit6fd75df2889c5635f3de265f40f9d23a35a94d00 (patch)
tree08c7fdef20be0feeb11b16c37200bd88cd70e4ce /src/gui/kernel
parent74cf3bfc2c62ac30d16be68db1237a3dc55843a4 (diff)
Generic property support for platform windows
QPlatformNativeInterface can now contain generic window properties in a QVariantMap, to facilitate communication with the compositor and clients for certain platforms. When window properties change, a signal is emitted from the respective QPlatformNativeInterface instance. The properties are intended to be read/writable from both client and server. Change-Id: I7b42f7910d03c0d309add6c7dbb1c9b66ad22a3f Reviewed-on: http://codereview.qt.nokia.com/3956 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qplatformnativeinterface_qpa.cpp41
-rw-r--r--src/gui/kernel/qplatformnativeinterface_qpa.h15
2 files changed, 55 insertions, 1 deletions
diff --git a/src/gui/kernel/qplatformnativeinterface_qpa.cpp b/src/gui/kernel/qplatformnativeinterface_qpa.cpp
index 32849d9b5a..e3f6689acc 100644
--- a/src/gui/kernel/qplatformnativeinterface_qpa.cpp
+++ b/src/gui/kernel/qplatformnativeinterface_qpa.cpp
@@ -50,4 +50,45 @@ void *QPlatformNativeInterface::nativeResourceForWidget(const QByteArray &resour
return 0;
}
+/*!
+ Contains generic window properties that the platform may utilize.
+*/
+QVariantMap QPlatformNativeInterface::windowProperties(QPlatformWindow *window) const
+{
+ return QVariantMap();
+}
+
+/*!
+ Returns a window property with \a name.
+
+ If the property does not exist, returns a default-constructed value.
+*/
+QVariant QPlatformNativeInterface::windowProperty(QPlatformWindow *window, const QString &name) const
+{
+ Q_UNUSED(window);
+ Q_UNUSED(name);
+ return QVariant();
+}
+
+/*!
+ Returns a window property with \a name. If the value does not exist, defaultValue is returned.
+*/
+QVariant QPlatformNativeInterface::windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const
+{
+ Q_UNUSED(window);
+ Q_UNUSED(name);
+ Q_UNUSED(defaultValue);
+ return QVariant();
+}
+
+/*!
+ Sets a window property with \a name to \a value.
+*/
+void QPlatformNativeInterface::setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value)
+{
+ Q_UNUSED(window);
+ Q_UNUSED(name);
+ Q_UNUSED(value);
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qplatformnativeinterface_qpa.h b/src/gui/kernel/qplatformnativeinterface_qpa.h
index 9f22337f6c..dd57f94a88 100644
--- a/src/gui/kernel/qplatformnativeinterface_qpa.h
+++ b/src/gui/kernel/qplatformnativeinterface_qpa.h
@@ -43,6 +43,8 @@
#define QPLATFORMNATIVEINTERFACE_QPA_H
#include <QtGui/qwindowdefs.h>
+#include <QtCore/QObject>
+#include <QtCore/QVariant>
QT_BEGIN_HEADER
@@ -51,11 +53,22 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Gui)
class QWidget;
+class QPlatformWindow;
-class Q_GUI_EXPORT QPlatformNativeInterface
+class Q_GUI_EXPORT QPlatformNativeInterface : public QObject
{
+ Q_OBJECT
public:
virtual void *nativeResourceForWidget(const QByteArray &resource, QWidget *widget);
+
+ virtual QVariantMap windowProperties(QPlatformWindow *window) const;
+ virtual QVariant windowProperty(QPlatformWindow *window, const QString &name) const;
+ virtual QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const;
+ virtual void setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value);
+
+Q_SIGNALS:
+ void windowPropertyChanged(QPlatformWindow *window, const QString &propertyName);
+
};
QT_END_NAMESPACE