9e27e99b7b7a55d7892423185c60944e57acf0e5
[profile/ivi/qtdeclarative.git] / tests / testapplications / qsgimage / img-align.qml
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: http://www.qt-project.org/
6 **
7 ** This file is part of the QtDeclarative module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 **
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 **
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
29 **
30 ** Other Usage
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 import QtQuick 2.0
43
44 Rectangle {
45     id: main
46     width: 800; height: 600
47     focus: true
48     color: "#eeeeee"
49
50     property variant hAlign: Image.AlignHCenter
51     property variant vAlign: Image.AlignVCenter
52     property bool mirror: false
53     property string source: "qt-logo.png"
54
55     Flow {
56         anchors.fill: parent
57         anchors { topMargin: 20; leftMargin: 20; rightMargin: 20 }
58         spacing: 30
59
60         ImageNG {
61             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
62             mirror: main.mirror; source: main.source
63             explicitSize: false
64             label: "implicit size"
65         }
66         ImageNG {
67             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
68             mirror: main.mirror; source: main.source
69             label: "explicit size"
70         }
71         ImageNG {
72             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
73             fillMode: Image.Pad
74             mirror: main.mirror; source: main.source
75             label: "padding"
76         }
77         ImageNG {
78             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
79             fillMode: Image.Tile
80             mirror: main.mirror; source: main.source
81             label: "tile"
82         }
83         ImageNG {
84             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
85             fillMode: Image.TileHorizontally
86             mirror: main.mirror; source: main.source
87             label: "tile horizontally"
88         }
89         ImageNG {
90             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
91             fillMode: Image.TileVertically
92             mirror: main.mirror; source: main.source
93             label: "tile vertically"
94         }
95         ImageNG {
96             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
97             fillMode: Image.PreserveAspectFit
98             mirror: main.mirror; source: main.source
99             label: "preserve aspect fit"
100         }
101         ImageNG {
102             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
103             fillMode: Image.PreserveAspectFit
104             width: 150; height: 200
105             mirror: main.mirror; source: main.source
106             label: "preserve aspect fit"
107         }
108         ImageNG {
109             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
110             fillMode: Image.PreserveAspectCrop
111             mirror: main.mirror; source: main.source
112             label: "preserve aspect crop"
113         }
114         ImageNG {
115             horizontalAlignment: main.hAlign; verticalAlignment: main.vAlign
116             fillMode: Image.PreserveAspectCrop
117             width: 150; height: 200
118             mirror: main.mirror; source: main.source
119             label: "preserve aspect crop"
120         }
121     }
122
123     Keys.onUpPressed: vAlign = Image.AlignTop
124     Keys.onDownPressed: vAlign = Image.AlignBottom
125     Keys.onLeftPressed: hAlign = Image.AlignLeft
126     Keys.onRightPressed: hAlign = Image.AlignRight
127     Keys.onPressed: {
128         if (event.key == Qt.Key_H)
129             hAlign = Image.AlignHCenter
130         else if (event.key == Qt.Key_V)
131             vAlign = Image.AlignVCenter
132     }
133 }