diff options
Diffstat (limited to 'src/imports/handlers')
-rw-r--r-- | src/imports/handlers/handlers.pro | 11 | ||||
-rw-r--r-- | src/imports/handlers/plugin.cpp | 88 | ||||
-rw-r--r-- | src/imports/handlers/plugins.qmltypes | 308 | ||||
-rw-r--r-- | src/imports/handlers/qmldir | 5 |
4 files changed, 412 insertions, 0 deletions
diff --git a/src/imports/handlers/handlers.pro b/src/imports/handlers/handlers.pro new file mode 100644 index 0000000000..0e32644773 --- /dev/null +++ b/src/imports/handlers/handlers.pro @@ -0,0 +1,11 @@ +CXX_MODULE = qml +TARGET = handlersplugin +TARGETPATH = Qt/labs/handlers +IMPORT_VERSION = 1.0 + +SOURCES += \ + plugin.cpp + +QT += quick-private qml-private + +load(qml_plugin) diff --git a/src/imports/handlers/plugin.cpp b/src/imports/handlers/plugin.cpp new file mode 100644 index 0000000000..bc1ae244d3 --- /dev/null +++ b/src/imports/handlers/plugin.cpp @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQml/qqmlextensionplugin.h> + +#include <private/qquickhandlersmodule_p.h> + +static void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_handlers); +#endif +} + +QT_BEGIN_NAMESPACE + +/*! + \qmlmodule Qt.labs.handlers 1.0 + \title Qt Quick Pointer Handlers + \ingroup qmlmodules + \brief Provides QML types for handling pointer events. + + This QML module contains types for handling pointer events, which are an abstraction + of mouse, touch and tablet events. + + To use the types in this module, import the module with the following line: + + \code + import Qt.labs.handlers 1.0 + \endcode +*/ + + +//![class decl] +class QtQuickHandlersPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) +public: + QtQuickHandlersPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); } + void registerTypes(const char *uri) Q_DECL_OVERRIDE + { + Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.labs.handlers")); + Q_UNUSED(uri); + QQuickHandlersModule::defineModule(); + } +}; +//![class decl] + +QT_END_NAMESPACE + +#include "plugin.moc" diff --git a/src/imports/handlers/plugins.qmltypes b/src/imports/handlers/plugins.qmltypes new file mode 100644 index 0000000000..f51e1e4bf3 --- /dev/null +++ b/src/imports/handlers/plugins.qmltypes @@ -0,0 +1,308 @@ +import QtQuick.tooling 1.2 + +// This file describes the plugin-supplied types contained in the library. +// It is used for QML tooling purposes only. +// +// This file was auto-generated by: +// 'qmlplugindump -nonrelocatable Qt.labs.handlers 1.0' + +Module { + dependencies: ["QtQuick 2.8"] + Component { + name: "QQuickDragAxis" + prototype: "QObject" + exports: ["Qt.labs.handlers/DragAxis 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "minimum"; type: "double" } + Property { name: "maximum"; type: "double" } + Property { name: "enabled"; type: "bool" } + } + Component { + name: "QQuickDragHandler" + prototype: "QQuickSinglePointHandler" + exports: ["Qt.labs.handlers/DragHandler 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "xAxis"; type: "QQuickDragAxis"; isReadonly: true; isPointer: true } + Property { name: "yAxis"; type: "QQuickDragAxis"; isReadonly: true; isPointer: true } + Property { name: "translation"; type: "QVector2D"; isReadonly: true } + Method { name: "enforceConstraints" } + } + Component { + name: "QQuickEventPoint" + prototype: "QObject" + exports: ["Qt.labs.handlers/EventPoint 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Enum { + name: "States" + values: { + "Pressed": 1, + "Updated": 2, + "Stationary": 4, + "Released": 8 + } + } + Enum { + name: "GrabState" + values: { + "GrabPassive": 1, + "UngrabPassive": 2, + "CancelGrabPassive": 3, + "OverrideGrabPassive": 4, + "GrabExclusive": 16, + "UngrabExclusive": 32, + "CancelGrabExclusive": 48 + } + } + Property { name: "event"; type: "QQuickPointerEvent"; isReadonly: true; isPointer: true } + Property { name: "position"; type: "QPointF"; isReadonly: true } + Property { name: "scenePosition"; type: "QPointF"; isReadonly: true } + Property { name: "scenePressPosition"; type: "QPointF"; isReadonly: true } + Property { name: "sceneGrabPosition"; type: "QPointF"; isReadonly: true } + Property { name: "state"; type: "State"; isReadonly: true } + Property { name: "pointId"; type: "int"; isReadonly: true } + Property { name: "timeHeld"; type: "double"; isReadonly: true } + Property { name: "velocity"; type: "QVector2D"; isReadonly: true } + Property { name: "accepted"; type: "bool" } + Property { name: "exclusiveGrabber"; type: "QObject"; isPointer: true } + } + Component { + name: "QQuickEventTouchPoint" + prototype: "QQuickEventPoint" + exports: ["Qt.labs.handlers/EventTouchPoint 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "rotation"; type: "double"; isReadonly: true } + Property { name: "pressure"; type: "double"; isReadonly: true } + Property { name: "ellipseDiameters"; type: "QSizeF"; isReadonly: true } + Property { name: "uniqueId"; type: "QPointingDeviceUniqueId"; isReadonly: true } + } + Component { + name: "QQuickMultiPointHandler" + prototype: "QQuickPointerDeviceHandler" + Property { name: "minimumPointCount"; type: "int" } + Property { name: "maximumPointCount"; type: "int" } + Property { name: "pointDistanceThreshold"; type: "double" } + } + Component { + name: "QQuickPinchHandler" + prototype: "QQuickMultiPointHandler" + exports: ["Qt.labs.handlers/PinchHandler 1.0"] + exportMetaObjectRevisions: [0] + Enum { + name: "PinchOrigin" + values: { + "FirstPoint": 0, + "PinchCenter": 1, + "TargetCenter": 2 + } + } + Property { name: "minimumScale"; type: "double" } + Property { name: "maximumScale"; type: "double" } + Property { name: "minimumRotation"; type: "double" } + Property { name: "maximumRotation"; type: "double" } + Property { name: "pinchOrigin"; type: "PinchOrigin" } + Property { name: "centroid"; type: "QPointF"; isReadonly: true } + Property { name: "centroidVelocity"; type: "QVector2D"; isReadonly: true } + Property { name: "scale"; type: "double"; isReadonly: true } + Property { name: "rotation"; type: "double"; isReadonly: true } + Property { name: "translation"; type: "QVector2D"; isReadonly: true } + Property { name: "minimumX"; type: "double" } + Property { name: "maximumX"; type: "double" } + Property { name: "minimumY"; type: "double" } + Property { name: "maximumY"; type: "double" } + Signal { name: "updated" } + } + Component { + name: "QQuickPointHandler" + prototype: "QQuickSinglePointHandler" + exports: ["Qt.labs.handlers/PointHandler 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "translation"; type: "QVector2D"; isReadonly: true } + } + Component { + name: "QQuickPointerDevice" + prototype: "QObject" + exports: ["Qt.labs.handlers/PointerDevice 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Enum { + name: "DeviceType" + values: { + "UnknownDevice": 0, + "Mouse": 1, + "TouchScreen": 2, + "TouchPad": 4, + "Puck": 8, + "Stylus": 16, + "Airbrush": 32, + "AllDevices": 63 + } + } + Enum { + name: "DeviceTypes" + values: { + "UnknownDevice": 0, + "Mouse": 1, + "TouchScreen": 2, + "TouchPad": 4, + "Puck": 8, + "Stylus": 16, + "Airbrush": 32, + "AllDevices": 63 + } + } + Enum { + name: "PointerType" + values: { + "GenericPointer": 1, + "Finger": 2, + "Pen": 4, + "Eraser": 8, + "Cursor": 16, + "AllPointerTypes": 31 + } + } + Enum { + name: "PointerTypes" + values: { + "GenericPointer": 1, + "Finger": 2, + "Pen": 4, + "Eraser": 8, + "Cursor": 16, + "AllPointerTypes": 31 + } + } + Enum { + name: "CapabilityFlag" + values: { + "Position": 1, + "Area": 2, + "Pressure": 4, + "Velocity": 8, + "Scroll": 256, + "Hover": 512, + "Rotation": 1024, + "XTilt": 2048, + "YTilt": 4096 + } + } + Enum { + name: "Capabilities" + values: { + "Position": 1, + "Area": 2, + "Pressure": 4, + "Velocity": 8, + "Scroll": 256, + "Hover": 512, + "Rotation": 1024, + "XTilt": 2048, + "YTilt": 4096 + } + } + Property { name: "type"; type: "DeviceType"; isReadonly: true } + Property { name: "pointerType"; type: "PointerType"; isReadonly: true } + Property { name: "capabilities"; type: "Capabilities"; isReadonly: true } + Property { name: "maximumTouchPoints"; type: "int"; isReadonly: true } + Property { name: "buttonCount"; type: "int"; isReadonly: true } + Property { name: "name"; type: "string"; isReadonly: true } + Property { name: "uniqueId"; type: "QPointingDeviceUniqueId"; isReadonly: true } + } + Component { + name: "QQuickPointerDeviceHandler" + prototype: "QQuickPointerHandler" + Property { name: "acceptedDevices"; type: "QQuickPointerDevice::DeviceTypes" } + Property { name: "acceptedPointerTypes"; type: "QQuickPointerDevice::PointerTypes" } + Property { name: "acceptedModifiers"; type: "Qt::KeyboardModifiers" } + Method { + name: "setAcceptedDevices" + Parameter { name: "acceptedDevices"; type: "QQuickPointerDevice::DeviceTypes" } + } + Method { + name: "setAcceptedPointerTypes" + Parameter { name: "acceptedPointerTypes"; type: "QQuickPointerDevice::PointerTypes" } + } + Method { + name: "setAcceptedModifiers" + Parameter { name: "acceptedModifiers"; type: "Qt::KeyboardModifiers" } + } + } + Component { + name: "QQuickPointerEvent" + prototype: "QObject" + exports: ["Qt.labs.handlers/PointerEvent 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "device"; type: "const QQuickPointerDevice"; isReadonly: true; isPointer: true } + Property { name: "modifiers"; type: "Qt::KeyboardModifiers"; isReadonly: true } + Property { name: "button"; type: "Qt::MouseButtons"; isReadonly: true } + Property { name: "buttons"; type: "Qt::MouseButtons"; isReadonly: true } + } + Component { + name: "QQuickPointerHandler" + prototype: "QObject" + exports: ["Qt.labs.handlers/PointerHandler 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Enum { + name: "GrabPermissions" + values: { + "TakeOverForbidden": 0, + "CanTakeOverFromHandlersOfSameType": 1, + "CanTakeOverFromHandlersOfDifferentType": 2, + "CanTakeOverFromItems": 4, + "CanTakeOverFromAnything": 15, + "ApprovesTakeOverByHandlersOfSameType": 16, + "ApprovesTakeOverByHandlersOfDifferentType": 32, + "ApprovesTakeOverByItems": 64, + "ApprovesCancellation": 128, + "ApprovesTakeOverByAnything": 240 + } + } + Property { name: "enabled"; type: "bool" } + Property { name: "active"; type: "bool"; isReadonly: true } + Property { name: "target"; type: "QQuickItem"; isPointer: true } + Property { name: "parent"; type: "QQuickItem"; isReadonly: true; isPointer: true } + Property { name: "grabPermissions"; type: "GrabPermissions" } + Signal { + name: "grabChanged" + Parameter { name: "point"; type: "QQuickEventPoint"; isPointer: true } + } + Signal { name: "grabPermissionChanged" } + Signal { + name: "canceled" + Parameter { name: "point"; type: "QQuickEventPoint"; isPointer: true } + } + } + Component { + name: "QQuickSinglePointHandler" + prototype: "QQuickPointerDeviceHandler" + Property { name: "acceptedButtons"; type: "Qt::MouseButtons" } + Property { name: "point"; type: "QQuickHandlerPoint"; isReadonly: true } + Signal { name: "singlePointGrabChanged" } + } + Component { + name: "QQuickTapHandler" + prototype: "QQuickSinglePointHandler" + exports: ["Qt.labs.handlers/TapHandler 1.0"] + exportMetaObjectRevisions: [0] + Enum { + name: "GesturePolicy" + values: { + "DragThreshold": 0, + "WithinBounds": 1, + "ReleaseWithinBounds": 2 + } + } + Property { name: "pressed"; type: "bool"; isReadonly: true } + Property { name: "tapCount"; type: "int"; isReadonly: true } + Property { name: "timeHeld"; type: "double"; isReadonly: true } + Property { name: "longPressThreshold"; type: "double" } + Property { name: "gesturePolicy"; type: "GesturePolicy" } + Signal { name: "tapped" } + Signal { name: "longPressed" } + } +} diff --git a/src/imports/handlers/qmldir b/src/imports/handlers/qmldir new file mode 100644 index 0000000000..4896348c2e --- /dev/null +++ b/src/imports/handlers/qmldir @@ -0,0 +1,5 @@ +module Qt.labs.handlers +plugin handlersplugin +classname QtQuickHandlersPlugin +typeinfo plugins.qmltypes + |