tests/auto/declarative/qmlvisual/animation/easing/easing.qml
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 10:37:55 +0300
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
permissions -rw-r--r--
Revision: 201031 Kit: 201033

import Qt 4.7

Rectangle {
    id: item
    width: 600
    height: layout.height
    color: "white"
    resources: [
        ListModel {
            id: easingtypes
            ListElement {
                type: "Linear"
            }
            ListElement {
                type: "InQuad"
            }
            ListElement {
                type: "OutQuad"
            }
            ListElement {
                type: "InOutQuad"
            }
            ListElement {
                type: "OutInQuad"
            }
            ListElement {
                type: "InCubic"
            }
            ListElement {
                type: "OutCubic"
            }
            ListElement {
                type: "InOutCubic"
            }
            ListElement {
                type: "OutInCubic"
            }
            ListElement {
                type: "InQuart"
            }
            ListElement {
                type: "OutQuart"
            }
            ListElement {
                type: "InOutQuart"
            }
            ListElement {
                type: "OutInQuart"
            }
            ListElement {
                type: "InQuint"
            }
            ListElement {
                type: "OutQuint"
            }
            ListElement {
                type: "InOutQuint"
            }
            ListElement {
                type: "OutInQuint"
            }
            ListElement {
                type: "InSine"
            }
            ListElement {
                type: "OutSine"
            }
            ListElement {
                type: "InOutSine"
            }
            ListElement {
                type: "OutInSine"
            }
            ListElement {
                type: "InExpo"
            }
            ListElement {
                type: "OutExpo"
            }
            ListElement {
                type: "InOutExpo"
            }
            ListElement {
                type: "OutInExpo"
            }
            ListElement {
                type: "InCirc"
            }
            ListElement {
                type: "OutCirc"
            }
            ListElement {
                type: "InOutCirc"
            }
            ListElement {
                type: "OutInCirc"
            }
            ListElement {
                type: "InElastic"
            }
            ListElement {
                type: "OutElastic"
            }
            ListElement {
                type: "InOutElastic"
            }
            ListElement {
                type: "OutInElastic"
            }
            ListElement {
                type: "InBack"
            }
            ListElement {
                type: "OutBack"
            }
            ListElement {
                type: "InOutBack"
            }
            ListElement {
                type: "OutInBack"
            }
            ListElement {
                type: "OutBounce"
            }
            ListElement {
                type: "InBounce"
            }
            ListElement {
                type: "InOutBounce"
            }
            ListElement {
                type: "OutInBounce"
            }
        }
    ]
    Column {
        id: layout
        anchors.left: item.left
        anchors.right: item.right
        Repeater {
            model: easingtypes
            Component {
                Rectangle {
                    id: block
                    Text {
                        text: type
                        anchors.centerIn: parent
                        font.italic: true
                        color: index & 1 ? "black" : "white"
                        opacity: 0 // 1 for debugging
                    }
                    width: 120
                    height: 18
                    color: index & 1 ? "red" : "blue"
                    states: [
                        State {
                            name: "from"
                            when: !mouse.pressed
                            PropertyChanges {
                                target: block
                                x: 0
                            }
                        },
                        State {
                            name: "to"
                            when: mouse.pressed
                            PropertyChanges {
                                target: block
                                x: item.width-block.width
                            }
                        }
                    ]
                    transitions: [
                        Transition {
                            from: "*"
                            to: "to"
                            reversible: true
                            NumberAnimation {
                                properties: "x"
                                easing.type: type
                                duration: 1000
                            }
                        }
                    ]
                }
            }
        }
    }
    MouseArea {
        id: mouse
        anchors.fill: layout
    }
}