qtdeclarative/tests/manual/pointer/pointerDrag.qml

295 lines
8.8 KiB
QML

// Copyright (C) 2019 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick 2.15
import "content"
Rectangle {
id: root
width: 600; height: 480; color: "#f0f0f0"
property int globalGesturePolicy : TapHandler.DragThreshold
Flickable {
id: flick
anchors.fill: parent
contentHeight: 600
contentWidth: 1000
objectName: "Flick"
Repeater {
model: flick.contentHeight/200
Rectangle {
width: flick.contentWidth
height: 101
x: 0
y: index * 200
border.color: "#808080"
border.width: 1
color: "transparent"
}
}
Repeater {
model: flick.contentWidth/200
Rectangle {
width: 101
height: flick.contentHeight
x: index * 200
y: 0
border.color: "#808080"
border.width: 1
color: "transparent"
}
}
TextBox {
x: 0; y: 0
width: 100; height: 100
label: "DragHandler"
objectName: "dragSquircle1"
DragHandler {
dragThreshold: ckZeroDragThreshold1.checked ? 0 : undefined
}
CheckBox {
id: ckZeroDragThreshold1
label: " Zero threshold"
anchors.horizontalCenter: parent.horizontalCenter
y: 20
checked: false
}
}
TextBox {
x: 100; y: 0
width: 100; height: 100
label: "TapHandler"
color: queryColor(tap1.pressed)
TapHandler {
id: tap1
gesturePolicy: root.globalGesturePolicy
}
}
TextBox {
x: 200; y: 0
width: 100; height: 100
label: "TapHandler\nDragHandler"
color: queryColor(tap2.pressed)
TapHandler {
id: tap2
gesturePolicy: root.globalGesturePolicy
}
DragHandler {
dragThreshold: ckZeroDragThreshold2.checked ? 0 : undefined
}
CheckBox {
id: ckZeroDragThreshold2
label: " Zero threshold"
anchors.horizontalCenter: parent.horizontalCenter
y: 32
checked: false
}
}
TextBox {
x: 300; y: 0
width: 100; height: 100
label: "DragHandler\nTapHandler"
color: queryColor(tap3.pressed)
DragHandler {
dragThreshold: ckZeroDragThreshold3.checked ? 0 : undefined
}
CheckBox {
id: ckZeroDragThreshold3
label: " Zero threshold"
anchors.horizontalCenter: parent.horizontalCenter
y: 32
checked: false
}
TapHandler {
id: tap3
gesturePolicy: root.globalGesturePolicy
}
}
TextBox {
x: 400; y: 0
width: 100; height: 100
label: "DragHandler"
DragHandler {
dragThreshold: ckZeroDragThreshold4.checked ? 0 : undefined
}
CheckBox {
id: ckZeroDragThreshold4
label: " Zero threshold"
anchors.horizontalCenter: parent.horizontalCenter
y: 20
checked: false
}
TextBox {
label: "TapHandler"
x: (parent.width - width)/2
y: 60
color: queryColor(tap4.pressed)
TapHandler {
id: tap4
gesturePolicy: root.globalGesturePolicy
}
}
}
TextBox {
objectName: "dragSquircle5"
x: 500; y: 0
width: 100; height: 100
label: "TapHandler"
color: queryColor(tap5.pressed)
CheckBox {
id: ckGreedyDrag
x: 10
anchors.bottom: dragRect5.top
label: " Greedy ↓"
checked: true
}
CheckBox {
id: ckZeroDragThreshold5
label: " Zero threshold"
x: 10
anchors.bottom: ckGreedyDrag.top
checked: false
}
TapHandler {
id: tap5
gesturePolicy: root.globalGesturePolicy
}
TextBox {
id: dragRect5
objectName: "dragRect5"
label: "DragHandler"
x: (parent.width - width)/2
y: 60
DragHandler {
grabPermissions: ckGreedyDrag ? DragHandler.CanTakeOverFromAnything :
DragHandler.CanTakeOverFromItems | DragHandler.CanTakeOverFromHandlersOfDifferentType | DragHandler.ApprovesTakeOverByAnything
dragThreshold: ckZeroDragThreshold5.checked ? 0 : undefined
}
}
}
TextBox {
x: 0; y: 100
width: 100; height: 100
label: "No MouseArea"
TextBox {
objectName: "dragRect01"
label: "DragHandler"
x: (parent.width - width)/2
y: 60
DragHandler {
dragThreshold: ckZeroDragThreshold6.checked ? 0 : undefined
}
}
CheckBox {
id: ckZeroDragThreshold6
label: " Zero threshold"
anchors.horizontalCenter: parent.horizontalCenter
y: 20
checked: false
}
}
TextBox {
id: r2
label: "MouseArea"
x: 100; y: 100
width: 100; height: 100
MouseArea {
id: ma
enabled: ckEnabled.checked
drag.target: ckDrag.checked ? r2 : undefined
drag.threshold: ckExtendDragThreshold.checked ? 50 : undefined
anchors.fill: parent
}
Column {
anchors.bottom: parent.bottom
anchors.bottomMargin: 10
x: 10
CheckBox {
id: ckEnabled
label: " Enabled"
checked: true
}
CheckBox {
id: ckDrag
label: " Drag"
checked: true
}
CheckBox {
id: ckExtendDragThreshold
label: " Extend threshold"
checked: false
}
}
}
TextBox {
objectName: "dragSquircle9"
x: 200; y: 100
width: 100; height: 100
label: "DragHandler"
color: queryColor(drag9.active)
CheckBox {
id: ckGreedyDrag9
x: 10
y: 20
label: " Greedy"
checked: true
}
CheckBox {
id: ckZeroDragThreshold9
label: " Zero threshold"
x: 10
anchors.bottom: ckGreedyDragR9.top
checked: false
}
CheckBox {
id: ckGreedyDragR9
x: 10
anchors.bottom: dragRect9.top
label: " Greedy ↓"
checked: false
}
DragHandler {
id: drag9
objectName: "drag9"
grabPermissions: ckGreedyDrag9.checked ? DragHandler.CanTakeOverFromAnything :
DragHandler.CanTakeOverFromItems | DragHandler.CanTakeOverFromHandlersOfDifferentType | DragHandler.ApprovesTakeOverByAnything
dragThreshold: ckZeroDragThreshold9.checked ? 0 : undefined
}
TextBox {
id: dragRect9
objectName: "dragRect9"
label: "DragHandler"
x: (parent.width - width)/2
y: 65
DragHandler {
objectName: "dragRect9"
grabPermissions: ckGreedyDragR9.checked ? DragHandler.CanTakeOverFromAnything :
DragHandler.CanTakeOverFromItems | DragHandler.CanTakeOverFromHandlersOfDifferentType | DragHandler.ApprovesTakeOverByAnything
dragThreshold: ckZeroDragThreshold9.checked ? 0 : undefined
}
}
}
}
}