summaryrefslogtreecommitdiff
path: root/demos/mobile/qtbubblelevel/qml
diff options
context:
space:
mode:
Diffstat (limited to 'demos/mobile/qtbubblelevel/qml')
-rw-r--r--demos/mobile/qtbubblelevel/qml/BubbleLevel.qml218
-rw-r--r--demos/mobile/qtbubblelevel/qml/Button.qml64
-rw-r--r--demos/mobile/qtbubblelevel/qml/Tube.qml79
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/board.pngbin0 -> 520721 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/bubble.pngbin0 -> 4951 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/calibbutton.pngbin0 -> 4881 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/exit.pngbin0 -> 2308 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/reflection.pngbin0 -> 1306 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/scale.pngbin0 -> 271 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/signblank.pngbin0 -> 41230 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/signwithtext.pngbin0 -> 47648 bytes
-rw-r--r--demos/mobile/qtbubblelevel/qml/images/taskswitcher.pngbin0 -> 767 bytes
12 files changed, 361 insertions, 0 deletions
diff --git a/demos/mobile/qtbubblelevel/qml/BubbleLevel.qml b/demos/mobile/qtbubblelevel/qml/BubbleLevel.qml
new file mode 100644
index 0000000000..4af6a76621
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/BubbleLevel.qml
@@ -0,0 +1,218 @@
+/******************************************************************************
+ *
+ * Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * Contact: Nokia Corporation (qt-info@nokia.com)
+ *
+ * $QT_BEGIN_LICENSE:BSD$
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the author organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $QT_END_LICENSE$
+ *
+ *****************************************************************************/
+
+import Qt 4.7
+
+Image {
+ id: bubbleLevel
+
+ //! [0]
+ // Signaled when task switcher button is pressed
+ signal minimizeApplication()
+
+ // Signaled when correction angle is saved
+ signal saveCorrectionAngle(variant angle)
+
+ // These functions are used as Qt slots
+ function handleRotation(deg) {
+ horTube.rawangle = deg
+ }
+
+ function setCorrectionAngle(deg) {
+ horTube.angleconstant = deg
+ }
+
+ // Used to show the task switcher button in Maemo targets
+ property alias taskSwitcherVisible: taskSwitcher.visible
+ //! [0]
+
+ anchors.fill: parent
+ source: "images/board.png"
+ smooth: true
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: sign.frontSide = true
+ }
+
+ Button {
+ id: taskSwitcher
+
+ anchors {
+ left: parent.left
+ right: horTube.left
+ verticalCenter: horTube.verticalCenter
+ margins: (parent.width - (horTube.x + horTube.width)) / 4
+ }
+
+ height: width
+ source: "images/taskswitcher.png"
+ mouseAreaScale: 2
+ onClicked: bubbleLevel.minimizeApplication()
+ visible: false
+ }
+
+ Button {
+ id: exitButton
+
+ anchors {
+ left: horTube.right
+ right: parent.right
+ verticalCenter: horTube.verticalCenter
+ margins: (parent.width - (horTube.x + horTube.width)) / 4
+ }
+
+ height: width
+ source: "images/exit.png"
+ mouseAreaScale: 2
+ onClicked: Qt.quit()
+ }
+
+ //! [1]
+ Tube {
+ id: horTube
+
+ property real rawangle: 0
+ property real angleconstant: 0
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: parent.width * 0.775; height: parent.height * 0.15625
+ deg: rawangle - angleconstant
+ }
+ //! [1]
+
+ Flipable {
+ id: sign
+
+ property bool frontSide: true
+
+ x: parent.width * 0.185; y: parent.height * 0.669
+ width: parent.width * 0.63; height: parent.height * 0.258
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: sign.frontSide = !sign.frontSide
+ z: -1
+ }
+
+ transform: Rotation {
+
+ origin.x: sign.width / 2; origin.y: sign.height / 2
+ axis.x: 1; axis.y: 0; axis.z: 0
+ angle: sign.frontSide ? 0 : 180
+
+ Behavior on angle {
+ RotationAnimation {
+ direction: RotationAnimation.Clockwise
+ easing.type: Easing.InOutCubic; duration: 300
+ }
+ }
+ }
+
+ front: Image {
+ anchors.fill: parent
+ source: "images/signwithtext.png"
+ smooth: true
+ }
+
+ back: Image {
+ anchors.fill: parent
+ source: "images/signblank.png"
+ smooth: true
+
+ Text {
+ id: oldValue
+
+ anchors {
+ left: parent.left; leftMargin: parent.width * 0.10
+ right: saveButton.left; rightMargin: 10
+ verticalCenter: parent.verticalCenter
+ }
+
+ text: "Place the device on a level surface and tap Calibrate."
+ color: "#302020"
+ wrapMode: Text.WordWrap
+ font { bold: false; pixelSize: Math.min(parent.width, parent.height) * 0.19 }
+ }
+
+ Button {
+ id: saveButton
+
+ anchors {
+ right: parent.right; rightMargin: parent.width * 0.09
+ verticalCenter: parent.verticalCenter
+ }
+
+ width: parent.width * 0.25; height: parent.height * 0.65
+ border { width: 2; color: "#555555" }
+ radius: 10
+
+ onClicked: {
+ horTube.angleconstant = horTube.rawangle
+ saveCorrectionAngle(horTube.angleconstant)
+ }
+
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#999999" }
+ GradientStop { position: 0.2; color: "#BBBBBB" }
+ GradientStop { position: 0.8; color: "#BBBBBB" }
+ GradientStop { position: 1.0; color: "#999999" }
+ }
+
+ Text {
+ anchors.centerIn: parent
+ color: "#302020"
+ text: "Calibrate"
+ font { bold: true; pixelSize: parent.width * 0.15 }
+ smooth: true
+ }
+ }
+ }
+ }
+
+ Button {
+ anchors {
+ left: sign.right
+ right: parent.right
+ verticalCenter: sign.verticalCenter
+ margins: (parent.width - (sign.x + sign.width)) / 4
+ }
+
+ height: width
+ source: "images/calibbutton.png"
+ mouseAreaScale: 2
+ smooth: true
+
+ onClicked: sign.frontSide = !sign.frontSide
+ }
+}
diff --git a/demos/mobile/qtbubblelevel/qml/Button.qml b/demos/mobile/qtbubblelevel/qml/Button.qml
new file mode 100644
index 0000000000..53dda1feda
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/Button.qml
@@ -0,0 +1,64 @@
+/******************************************************************************
+ *
+ * Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * Contact: Nokia Corporation (qt-info@nokia.com)
+ *
+ * $QT_BEGIN_LICENSE:BSD$
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the author organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $QT_END_LICENSE$
+ *
+ *****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+ id: button
+
+ property alias source: image.source
+ property alias mouseAreaScale: mouseArea.scale
+
+ signal clicked
+
+ width: 50; height: 50
+ color: "transparent"
+
+ Behavior on scale { NumberAnimation { duration: 50 } }
+
+ Image {
+ id: image
+
+ anchors.fill: parent
+ smooth: true
+ }
+
+ MouseArea {
+ id: mouseArea
+
+ anchors.fill: parent
+ onClicked: { button.clicked() }
+ onEntered: { button.scale = 0.9 }
+ onExited: { button.scale = 1.0 }
+ }
+}
diff --git a/demos/mobile/qtbubblelevel/qml/Tube.qml b/demos/mobile/qtbubblelevel/qml/Tube.qml
new file mode 100644
index 0000000000..91c319871b
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/Tube.qml
@@ -0,0 +1,79 @@
+/******************************************************************************
+ *
+ * Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * Contact: Nokia Corporation (qt-info@nokia.com)
+ *
+ * $QT_BEGIN_LICENSE:BSD$
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the author organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $QT_END_LICENSE$
+ *
+ *****************************************************************************/
+
+import Qt 4.7
+
+//! [0]
+Item {
+ id: tube
+
+ property real deg
+
+ Image {
+ id: bubble
+
+ property real center: tube.width / 2
+ property real bubbleCenter: bubble.width / 2
+
+ function calX() {
+ var newX = center + tube.deg / -20 * center
+
+ if((newX - bubbleCenter) < 0) {
+ return 0
+ }
+ else if((newX + bubbleCenter) > tube.width) {
+ return tube.width - 2 * bubbleCenter
+ }
+
+ return newX - bubbleCenter;
+ }
+
+ x: calX()
+ width: 0.16129032 * parent.width; height: 0.66666667 * parent.height
+ source: "images/bubble.png"
+ smooth: true
+ }
+
+ Image {
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 0.36451613 * parent.width; height: 0.66666667 * parent.height
+ source: "images/scale.png"
+ }
+
+ Image {
+ width: parent.width; height: 0.32 * parent.height
+ opacity: 0.8
+ source: "images/reflection.png"
+ }
+}
+//! [0]
diff --git a/demos/mobile/qtbubblelevel/qml/images/board.png b/demos/mobile/qtbubblelevel/qml/images/board.png
new file mode 100644
index 0000000000..aaed8d01bb
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/board.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/bubble.png b/demos/mobile/qtbubblelevel/qml/images/bubble.png
new file mode 100644
index 0000000000..e73be9e554
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/bubble.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/calibbutton.png b/demos/mobile/qtbubblelevel/qml/images/calibbutton.png
new file mode 100644
index 0000000000..5f84dad744
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/calibbutton.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/exit.png b/demos/mobile/qtbubblelevel/qml/images/exit.png
new file mode 100644
index 0000000000..64a61634d8
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/exit.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/reflection.png b/demos/mobile/qtbubblelevel/qml/images/reflection.png
new file mode 100644
index 0000000000..093781ec93
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/reflection.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/scale.png b/demos/mobile/qtbubblelevel/qml/images/scale.png
new file mode 100644
index 0000000000..c75b21e2db
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/scale.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/signblank.png b/demos/mobile/qtbubblelevel/qml/images/signblank.png
new file mode 100644
index 0000000000..03b53cc0f3
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/signblank.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/signwithtext.png b/demos/mobile/qtbubblelevel/qml/images/signwithtext.png
new file mode 100644
index 0000000000..be9c050fe2
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/signwithtext.png
Binary files differ
diff --git a/demos/mobile/qtbubblelevel/qml/images/taskswitcher.png b/demos/mobile/qtbubblelevel/qml/images/taskswitcher.png
new file mode 100644
index 0000000000..89ff7a1517
--- /dev/null
+++ b/demos/mobile/qtbubblelevel/qml/images/taskswitcher.png
Binary files differ