summaryrefslogtreecommitdiffstats
path: root/examples/declarative/velocity/Day.qml
blob: b0d4dd9f53e99142f787b27ab167a8f6ec67e4b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import Qt 4.6

Rectangle {
    property string day
    property var stickies

    width: 400
    height: 500
    radius: 7
    border.color: "black"
    id: page
    Image {
        x: 10
        y: 10
        source: "cork.jpg"
    }
    Text {
        x: 20
        y: 20
        height: 40
        font.pointSize: 14
        font.bold: true
        width: 370
        text: day
        style: "Outline"
        styleColor: "#dedede"
    }
    Repeater {
        model: page.stickies
        Item {
            x: Math.random() * 200 + 100
            y: Math.random() * 300 + 50
            id: stickyPage
            rotation: SpringFollow {
                source: -flickable.horizontalVelocity / 100
                spring: 2.0
                damping: 0.1
            }
            Item {
                id: sticky
                scale: 0.5
                Image {
                    id: stickyImage
                    source: "sticky.png"
                    smooth: true
                    y: -20
                    x: 8 + -width * 0.6 / 2
                    scale: 0.6
                }
                TextEdit {
                    id: myText
                    smooth: true
                    font.pointSize: 28
                    readOnly: false
                    x: -104
                    y: 36
                    wrap: true
                    rotation: -8
                    text: noteText
                    width: 195
                    height: 172
                }
                Item {
                    y: -20
                    x: stickyImage.x
                    width: stickyImage.width * stickyImage.scale
                    height: stickyImage.height * stickyImage.scale
                    MouseRegion {
                        id: mouse
                        onClicked: { myText.focus = true }
                        anchors.fill: parent
                        drag.target: stickyPage
                        drag.axis: "XandYAxis"
                        drag.minimumY: 0
                        drag.maximumY: 500
                        drag.minimumX: 0
                        drag.maximumX: 400
                    }
                }
            }
            Image {
                source: "tack.png"
                x: -width / 2
                y: -height * 0.7 / 2
                scale: 0.7
            }
            states: [
                State {
                    name: "pressed"
                    when: mouse.pressed
                    PropertyChanges {
                        target: sticky
                        rotation: 8
                        scale: 1
                    }
                    PropertyChanges {
                        target: page
                        z: 8
                    }
                }
            ]
            transitions: [
                Transition {
                    NumberAnimation {
                        properties: "rotation,scale"
                        duration: 200
                    }
                }
            ]
        }
    }
}