1/**************************************************************************** 2** 3** Copyright (C) 2015 The Qt Company Ltd. 4** Contact: http://www.qt.io/licensing/ 5** 6** This file is part of the Qt Mobility Components. 7** 8** $QT_BEGIN_LICENSE:LGPL21$ 9** Commercial License Usage 10** Licensees holding valid commercial Qt licenses may use this file in 11** accordance with the commercial license agreement provided with the 12** Software or, alternatively, in accordance with the terms contained in 13** a written agreement between you and The Qt Company. For licensing terms 14** and conditions see http://www.qt.io/terms-conditions. For further 15** information use the contact form at http://www.qt.io/contact-us. 16** 17** GNU Lesser General Public License Usage 18** Alternatively, this file may be used under the terms of the GNU Lesser 19** General Public License version 2.1 or version 3 as published by the Free 20** Software Foundation and appearing in the file LICENSE.LGPLv21 and 21** LICENSE.LGPLv3 included in the packaging of this file. Please review the 22** following information to ensure the GNU Lesser General Public License 23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and 24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 25** 26** As a special exception, The Qt Company gives you certain additional 27** rights. These rights are described in The Qt Company LGPL Exception 28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 29** 30** $QT_END_LICENSE$ 31** 32****************************************************************************/ 33 34// Mouse area which flashes to indicate its location on the screen 35 36import QtQuick 2.0 37 38MouseArea { 39 property alias hintColor: hintRect.color 40 property bool hintEnabled: true 41 42 Rectangle { 43 id: hintRect 44 anchors.fill: parent 45 color: "yellow" 46 opacity: 0 47 48 states: [ 49 State { 50 name: "high" 51 PropertyChanges { 52 target: hintRect 53 opacity: 0.8 54 } 55 }, 56 State { 57 name: "low" 58 PropertyChanges { 59 target: hintRect 60 opacity: 0.4 61 } 62 } 63 ] 64 65 transitions: [ 66 Transition { 67 from: "low" 68 to: "high" 69 SequentialAnimation { 70 NumberAnimation { 71 properties: "opacity" 72 easing.type: Easing.InOutSine 73 duration: 500 74 } 75 ScriptAction { script: hintRect.state = "low" } 76 } 77 }, 78 Transition { 79 from: "*" 80 to: "low" 81 SequentialAnimation { 82 NumberAnimation { 83 properties: "opacity" 84 easing.type: Easing.InOutSine 85 duration: 500 86 } 87 ScriptAction { script: hintRect.state = "high" } 88 } 89 }, 90 Transition { 91 from: "*" 92 to: "baseState" 93 NumberAnimation { 94 properties: "opacity" 95 easing.type: Easing.InOutSine 96 duration: 500 97 } 98 } 99 ] 100 } 101 102 onHintEnabledChanged: hintRect.state = hintEnabled ? "low" : "baseState" 103 104 Component.onCompleted: hintRect.state = "low" 105} 106