@@ -0,0 +1,115 @@
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.1
19+import "../../Components"
23+ objectName: "overlay"
25+ readonly property real scaleProgress: (scale - initialScale) / (1.0 - initialScale)
27+ property alias delegate: loader.sourceComponent
28+ property alias delegateItem: loader.item
29+ property alias headerShown: overlayHeader.shown
30+ property bool shown: false
31+ property bool opening: false
32+ property real initialX: 0
33+ property real initialY: 0
34+ property real initialScale: 0
36+ visible: scale > initialScale
37+ clip: visible && scale < 1.0
38+ scale: shown ? 1.0 : initialScale
39+ transformOrigin: Item.TopLeft
40+ transform: Translate {
41+ x: overlay.initialX - overlay.initialX * overlay.scaleProgress
42+ y: overlay.initialY - overlay.initialY * overlay.scaleProgress
44+ color: Qt.rgba(0, 0, 0, scaleProgress)
45+ radius: units.gu(1) - units.gu(1) * scaleProgress
58+ UbuntuNumberAnimation {
59+ duration: overlay.opening ? UbuntuAnimation.FastDuration :
60+ UbuntuAnimation.FastDuration / 2
72+ property bool shown: true
80+ opacity: overlay.scaleProgress > 0.6 && shown ? 0.8 : 0
83+ Behavior on opacity {
84+ UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration }
88+ id: overlayCloseButton
89+ objectName: "overlayCloseButton"
92+ bottom: parent.bottom
97+ onClicked: overlay.hide()
100+ anchors.fill: parent
101+ color: Qt.rgba(1.0, 1.0, 1.0, 0.3)
102+ visible: overlayCloseButton.pressed
107+ anchors.centerIn: parent
108+ width: units.gu(2.5)
110+ color: Theme.palette.normal.foregroundText