2 * Copyright (C) 2014 Canonical, Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 import Ubuntu.Components 1.3
19 import Ubuntu.Gestures 0.1
20 import "../Components"
21 import "." as LocalComponents
26 property alias edgeSize: dragArea.height
28 title: i18n.tr("Open special menus")
29 text: i18n.tr("Swipe up from the bottom edge.")
34 paused: running && root.paused
35 running: !dragArea.useTouchY && slider.dragOffset === 0
36 loops: Animation.Infinite
38 UbuntuNumberAnimation {
40 property: "teaseOffset"
42 duration: UbuntuAnimation.SleepyDuration
44 UbuntuNumberAnimation {
46 property: "teaseOffset"
48 duration: UbuntuAnimation.SleepyDuration
54 LocalComponents.Slider {
58 bottomMargin: width / 2 - height / 2
59 horizontalCenter: parent.horizontalCenter
62 offset: teaseOffset + dragOffset
63 active: dragArea.dragging
65 property real teaseOffset
66 property real dragOffset: dragArea.useTouchY ? -dragArea.touchY : 0
68 Behavior on dragOffset {
70 UbuntuNumberAnimation {}
78 direction: Direction.Upwards
85 property bool useTouchY
89 if (slider.percent >= 0.85) {
91 } else if (slider.percent >= 0.15) {
96 // We use a separate vars here rather than just directly looking at
97 // 'dragging' because we want to preserve our 'slider.offset'
98 // value during the above percent check. Now that we made it,
99 // we can have 'slider.offset' go back to zero.
100 offsetAnimation.enabled = !dragging;
101 useTouchY = dragging;