diff options
Diffstat (limited to 'src/quick/doc/snippets')
5 files changed, 150 insertions, 2 deletions
diff --git a/src/quick/doc/snippets/pointerHandlers/pointHandler.qml b/src/quick/doc/snippets/pointerHandlers/pointHandler.qml index f5fe29566e..d363150ab5 100644 --- a/src/quick/doc/snippets/pointerHandlers/pointHandler.qml +++ b/src/quick/doc/snippets/pointerHandlers/pointHandler.qml @@ -1,8 +1,7 @@ // Copyright (C) 2017 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause //![0] -import QtQuick 2.12 -import QtQuick.Window 2.2 +import QtQuick Window { width: 480 @@ -14,6 +13,7 @@ Window { z: 10000 anchors.fill: parent + //![1] PointHandler { id: handler acceptedDevices: PointerDevice.TouchScreen | PointerDevice.TouchPad @@ -26,6 +26,7 @@ Window { width: 20; height: width; radius: width / 2 } } + //![1] } } //![0] diff --git a/src/quick/doc/snippets/pointerHandlers/pointHandlerAcceptedButtons.qml b/src/quick/doc/snippets/pointerHandlers/pointHandlerAcceptedButtons.qml new file mode 100644 index 0000000000..3eab8b319b --- /dev/null +++ b/src/quick/doc/snippets/pointerHandlers/pointHandlerAcceptedButtons.qml @@ -0,0 +1,21 @@ +// Copyright (C) 2023 Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +//![0] +import QtQuick + +Item { + width: 480; height: 320 + + Rectangle { + color: handler.active ? "tomato" : "wheat" + x: handler.point.position.x - width / 2 + y: handler.point.position.y - height / 2 + width: 20; height: width; radius: width / 2 + } + + PointHandler { + id: handler + acceptedButtons: Qt.MiddleButton | Qt.RightButton + } +} +//![0] diff --git a/src/quick/doc/snippets/pointerHandlers/pointHandlerAcceptedModifiers.qml b/src/quick/doc/snippets/pointerHandlers/pointHandlerAcceptedModifiers.qml new file mode 100644 index 0000000000..9e3cb6f465 --- /dev/null +++ b/src/quick/doc/snippets/pointerHandlers/pointHandlerAcceptedModifiers.qml @@ -0,0 +1,36 @@ +// Copyright (C) 2023 Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +//![0] +import QtQuick + +Item { + id: feedbackPane + width: 480; height: 320 + + PointHandler { + id: control + acceptedModifiers: Qt.ControlModifier + cursorShape: Qt.PointingHandCursor + target: Rectangle { + parent: feedbackPane + color: control.active ? "indianred" : "khaki" + x: control.point.position.x - width / 2 + y: control.point.position.y - height / 2 + width: 20; height: width; radius: width / 2 + } + } + + PointHandler { + id: shift + acceptedModifiers: Qt.ShiftModifier | Qt.MetaModifier + cursorShape: Qt.CrossCursor + target: Rectangle { + parent: feedbackPane + color: shift.active ? "darkslateblue" : "lightseagreen" + x: shift.point.position.x - width / 2 + y: shift.point.position.y - height / 2 + width: 30; height: width; radius: width / 2 + } + } +} +//![0] diff --git a/src/quick/doc/snippets/pointerHandlers/pointHandlerCanvasDrawing.qml b/src/quick/doc/snippets/pointerHandlers/pointHandlerCanvasDrawing.qml new file mode 100644 index 0000000000..d04bd4f149 --- /dev/null +++ b/src/quick/doc/snippets/pointerHandlers/pointHandlerCanvasDrawing.qml @@ -0,0 +1,54 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//![0] +import QtQuick + +Canvas { + id: canvas + width: 800 + height: 600 + antialiasing: true + renderTarget: Canvas.FramebufferObject + property var points: [] + onPaint: { + if (points.length < 2) + return + var ctx = canvas.getContext('2d'); + ctx.save() + ctx.strokeStyle = stylusHandler.active ? "blue" : "white" + ctx.lineCap = "round" + ctx.beginPath() + ctx.moveTo(points[0].x, points[0].y) + for (var i = 1; i < points.length; i++) + ctx.lineTo(points[i].x, points[i].y) + ctx.lineWidth = 3 + ctx.stroke() + points = points.slice(points.length - 2, 1) + ctx.restore() + } + + PointHandler { + id: stylusHandler + acceptedPointerTypes: PointerDevice.Pen + onPointChanged: { + canvas.points.push(point.position) + canvas.requestPaint() + } + } + + PointHandler { + id: eraserHandler + acceptedPointerTypes: PointerDevice.Eraser + onPointChanged: { + canvas.points.push(point.position) + canvas.requestPaint() + } + } + + Rectangle { + width: 10; height: 10 + color: stylusHandler.active ? "green" : eraserHandler.active ? "red" : "beige" + } +} +//![0] diff --git a/src/quick/doc/snippets/pointerHandlers/pointHandlerMargin.qml b/src/quick/doc/snippets/pointerHandlers/pointHandlerMargin.qml new file mode 100644 index 0000000000..1b66531dbf --- /dev/null +++ b/src/quick/doc/snippets/pointerHandlers/pointHandlerMargin.qml @@ -0,0 +1,36 @@ +// Copyright (C) 2023 Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +//![0] +import QtQuick + +Item { + width: 480; height: 320 + + Rectangle { + anchors.fill: handlingContainer + anchors.margins: -handler.margin + color: "beige" + } + + Rectangle { + id: handlingContainer + width: 200; height: 200 + anchors.centerIn: parent + border.color: "green" + color: handler.active ? "lightsteelblue" : "khaki" + + Text { + text: "X" + x: handler.point.position.x - width / 2 + y: handler.point.position.y - height / 2 + visible: handler.active + } + + PointHandler { + id: handler + margin: 30 + } + } + +} +//![0] |
