~aacid/unity8/desktopRotatedCamera

« back to all changes in this revision

Viewing changes to qml/Components/FloatingFlickable.qml

  • Committer: Albert Astals Cid
  • Date: 2016-06-02 07:43:13 UTC
  • mfrom: (2039.198.42 unity8)
  • Revision ID: albert.astals@canonical.com-20160602074313-qycavrlys0yftjfd
Merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2015-2016 Canonical, Ltd.
 
3
 *
 
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.
 
7
 *
 
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.
 
12
 *
 
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/>.
 
15
 */
 
16
 
 
17
import QtQuick 2.4
 
18
import Ubuntu.Components 1.3
 
19
import Ubuntu.Gestures 0.1
 
20
 
 
21
/*
 
22
    A Flickable that can be put in front of the item to be flicked and
 
23
    still have the item-to-be-flicked receive input events that are not flicks.
 
24
 
 
25
    Ie, it's a Flickable that, input-wise, is transparent to non-flick gestures.
 
26
 
 
27
    With a regular Flickable you would have to make the item-to-be-flicked a child
 
28
    of Flicakble to achieve the same result. FloatingFlickable has no such requirement
 
29
    or limitation.
 
30
 */
 
31
Item {
 
32
    property alias contentWidth: flickable.contentWidth
 
33
    property alias contentHeight: flickable.contentHeight
 
34
    property alias contentX: flickable.contentX
 
35
    property alias contentY: flickable.contentY
 
36
    property alias direction: swipeArea.direction
 
37
 
 
38
    MouseEventGenerator {
 
39
        id: mouseEventGenerator
 
40
        targetItem: flickable
 
41
    }
 
42
 
 
43
    Flickable {
 
44
        id: flickable
 
45
        enabled: false
 
46
        anchors.fill: parent
 
47
        flickableDirection: Direction.isHorizontal(swipeArea.direction) ? Flickable.HorizontalFlick : Flickable.VerticalFlick
 
48
    }
 
49
 
 
50
    SwipeArea {
 
51
        id: swipeArea
 
52
        anchors.fill: parent
 
53
        direction: Direction.Horizontal
 
54
 
 
55
        onTouchPositionChanged: mouseEventGenerator.move(touchPosition);
 
56
        onDraggingChanged: dragging ? mouseEventGenerator.press(touchPosition)
 
57
                                    : mouseEventGenerator.release(touchPosition)
 
58
    }
 
59
}