summaryrefslogtreecommitdiffstats
path: root/src/platformheaders/windowsfunctions
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2014-12-18 10:02:47 +0100
committerAndy Shaw <andy.shaw@digia.com>2015-01-05 07:49:15 +0100
commitf444b25ac1dfe240b5ae592717907b15d30a5c21 (patch)
tree227e1f674a38c7def07aa3284d5d522bbb449b04 /src/platformheaders/windowsfunctions
parent84a3dacf462a4170a7fbc71b012fbb2db2c34a19 (diff)
Add a platform function to enable setting the touch flags on Windows
This makes it possible for the flags that RegisterTouchWindow takes to be specified after the window has been created. Task-number: QTBUG-41433 Change-Id: I166143875ef54ab6a249cffb31d017845a694a01 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Diffstat (limited to 'src/platformheaders/windowsfunctions')
-rw-r--r--src/platformheaders/windowsfunctions/qwindowswindowfunctions.h69
-rw-r--r--src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc71
-rw-r--r--src/platformheaders/windowsfunctions/windowsfunctions.pri1
3 files changed, 141 insertions, 0 deletions
diff --git a/src/platformheaders/windowsfunctions/qwindowswindowfunctions.h b/src/platformheaders/windowsfunctions/qwindowswindowfunctions.h
new file mode 100644
index 0000000000..6e585b9dfe
--- /dev/null
+++ b/src/platformheaders/windowsfunctions/qwindowswindowfunctions.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QWINDOWSWINDOWFUNCTIONS_H
+#define QWINDOWSWINDOWFUNCTIONS_H
+
+#include <QtCore/QByteArray>
+#include <QtGui/QGuiApplication>
+
+QT_BEGIN_NAMESPACE
+
+class QWindow;
+
+class QWindowsWindowFunctions {
+public:
+ enum TouchWindowTouchType {
+ NormalTouch = 0x00000000,
+ FineTouch = 0x00000001,
+ WantPalmTouch = 0x00000002
+ };
+
+ Q_DECLARE_FLAGS(TouchWindowTouchTypes, TouchWindowTouchType)
+
+ typedef void (*SetTouchWindowTouchType)(QWindow *window, QWindowsWindowFunctions::TouchWindowTouchTypes touchType);
+ static const QByteArray setTouchWindowTouchTypeIdentifier() { return QByteArrayLiteral("WindowsSetTouchWindowTouchType"); }
+
+ static void setTouchWindowTouchType(QWindow *window, TouchWindowTouchTypes type)
+ {
+ SetTouchWindowTouchType func = reinterpret_cast<SetTouchWindowTouchType>(QGuiApplication::platformFunction(setTouchWindowTouchTypeIdentifier()));
+ if (func)
+ func(window, type);
+ }
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(QWindowsWindowFunctions::TouchWindowTouchTypes)
+
+QT_END_NAMESPACE
+
+#endif // QWINDOWSWINDOWFUNCTIONS_H
diff --git a/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc b/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc
new file mode 100644
index 0000000000..494a106575
--- /dev/null
+++ b/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \class QWindowsWindowFunctions
+ \inmodule QtPlatformHeaders
+ \since 5.5
+ \brief The QWindowsWindowFunctions class is an inline class containing
+ miscellaneous functionality for Windows window specific functionality.
+
+ A common usage pattern is as follows:
+ \snippet qwindowswindowfunctions/main.cpp 0
+
+ \note There is no binary compatibility guarantee for this class,
+ meaning that an application using it is only guaranteed to work with the Qt
+ version it was developed against.
+*/
+
+/*!
+ \enum QWindowsWindowFunctions::TouchWindowTouchType
+
+ This enum represents the supported TouchWindow touch flags for RegisterTouchWindow().
+
+ \value NormalTouch
+ \value FineTouch
+ \value WantPalmTouch
+*/
+
+/*!
+ \typedef QWindowsWindowFunctions::SetTouchWindowTouchType
+
+ This is the typedef for the function returned by QGuiApplication::platformFunction when passed setTouchWindowTouchTypeIdentifier.
+*/
+
+/*!
+ \fn QByteArray QWindowsWindowFunctions::setTouchWindowTouchTypeIdentifier()
+
+ This function returns the bytearray that can be used to query
+ QGuiApplication::platformFunction to retrieve the SetTouchWindowTouchType function.
+*/
+
+/*!
+ \fn void QWindowsWindowFunctions::setTouchWindowTouchType(QWindow *window, TouchWindowTouchTypes type)
+
+ This is a convenience function that can be used directly instead of resolving the function pointer.
+ \a window and \a type will be relayed to the function retrieved by QGuiApplication
+*/
diff --git a/src/platformheaders/windowsfunctions/windowsfunctions.pri b/src/platformheaders/windowsfunctions/windowsfunctions.pri
new file mode 100644
index 0000000000..479245db80
--- /dev/null
+++ b/src/platformheaders/windowsfunctions/windowsfunctions.pri
@@ -0,0 +1 @@
+HEADERS += $$PWD/qwindowswindowfunctions.h