summaryrefslogtreecommitdiffstats
path: root/demo3/horizontal/launcher/launcher/qml
diff options
context:
space:
mode:
Diffstat (limited to 'demo3/horizontal/launcher/launcher/qml')
-rw-r--r--demo3/horizontal/launcher/launcher/qml/ChangeItemPosition.js89
-rw-r--r--demo3/horizontal/launcher/launcher/qml/IconItem.qml141
-rw-r--r--demo3/horizontal/launcher/launcher/qml/Launcher.qml513
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/blank_active.pngbin0 -> 68320 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/blank_inactive.pngbin0 -> 868 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/browser_active.pngbin0 -> 68979 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/browser_inactive.pngbin0 -> 1949 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/center_background.pngbin0 -> 278523 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/connectivity_active.pngbin0 -> 78821 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/connectivity_inactive.pngbin0 -> 6171 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/dashboard_active.pngbin0 -> 74200 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/dashboard_inactive.pngbin0 -> 4775 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/hvac_active.pngbin0 -> 74342 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/hvac_inactive.pngbin0 -> 5202 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/images.qrc35
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/mediaplayer_active.pngbin0 -> 72606 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/mediaplayer_inactive.pngbin0 -> 3854 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/mixer_active.pngbin0 -> 72342 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/mixer_inactive.pngbin0 -> 3282 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/music_active.pngbin0 -> 72606 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/music_inactive.pngbin0 -> 3854 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/navigation_active.pngbin0 -> 82996 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/navigation_inactive.pngbin0 -> 9335 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/phone_active.pngbin0 -> 77864 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/phone_inactive.pngbin0 -> 4962 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/poi_active.pngbin0 -> 79835 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/poi_inactive.pngbin0 -> 6367 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/radio_active.pngbin0 -> 73543 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/radio_inactive.pngbin0 -> 3680 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/settings_active.pngbin0 -> 77571 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/settings_inactive.pngbin0 -> 4975 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/videoplayer_active.pngbin0 -> 72440 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/videoplayer_inactive.pngbin0 -> 3339 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/weather_active.pngbin0 -> 88254 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/images/weather_inactive.pngbin0 -> 21222 bytes
-rw-r--r--demo3/horizontal/launcher/launcher/qml/qml.qrc7
36 files changed, 785 insertions, 0 deletions
diff --git a/demo3/horizontal/launcher/launcher/qml/ChangeItemPosition.js b/demo3/horizontal/launcher/launcher/qml/ChangeItemPosition.js
new file mode 100644
index 0000000..9fae07c
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/ChangeItemPosition.js
@@ -0,0 +1,89 @@
+function next() {
+ repeater.currentItem += 1;
+ if (repeater.currentItem > repeater.count - 1)
+ {
+ repeater.currentItem = 0;
+ }
+ var count = 0;
+
+ for (var i = 0; i < repeater.count; i++)
+ {
+ var item = repeater.itemAt(i);
+ item.currentState -= 1;
+ if ( item.currentState < 1 )
+ {
+ item.currentState = repeater.count;
+ }
+ if ( item.currentState >= 1 && item.currentState <= 10 )
+ {
+ item.state = "pos" + item.currentState
+ } else if ( item.currentState === 15 ){
+ item.state = "pos11";
+ } else if ( item.currentState === 16 ){
+ item.state = "pos12";
+ } else if ( item.currentState === 17 ){
+ item.state = "pos13";
+ } else if ( item.currentState >= 18 ){
+ item.state = "pos0";
+ } else {
+ item.state = "pos10";
+ }
+ }
+}
+
+function prev() {
+ repeater.currentItem -= 1;
+ if (repeater.currentItem < 0)
+ {
+ repeater.currentItem = repeater.count - 1;
+ }
+ var count = repeater.count;
+ for (var i = 0; i < repeater.count; i++)
+ {
+ var item = repeater.itemAt(i);
+ item.currentState += 1;
+ if ( item.currentState > repeater.count )
+ {
+ item.currentState = 1;
+ }
+ if ( item.currentState >= 1 && item.currentState <= 10 )
+ {
+ item.state = "pos" + item.currentState
+ } else if ( item.currentState === 15 ){
+ item.state = "pos11";
+ } else if ( item.currentState === 16 ){
+ item.state = "pos12";
+ } else if ( item.currentState === 17 ){
+ item.state = "pos13";
+ } else if ( item.currentState >= 18 ){
+ item.state = "pos0";
+ } else {
+ item.state = "pos10";
+ }
+ }
+}
+
+function move(pos, item) {
+ var distance = firstPox - pos;
+ if(distance > 200) {
+ next()
+ firstPox = pos
+ iconMoved = true
+ item.iconReleased()
+ } else if (distance < -200) {
+ prev()
+ firstPox = pos
+ iconMoved = true
+ item.iconReleased()
+ }
+}
+
+function getCenterItem() {
+ var item;
+ for (var i = 0; i < repeater.count; i++)
+ {
+ item = repeater.itemAt(i)
+ if (item.state === "pos5" || item.state === "pos14")
+ return item
+ }
+}
diff --git a/demo3/horizontal/launcher/launcher/qml/IconItem.qml b/demo3/horizontal/launcher/launcher/qml/IconItem.qml
new file mode 100644
index 0000000..4faa3ea
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/IconItem.qml
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2016 The Qt Company Ltd.
+ * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import QtQuick 2.0
+import QtQuick.Controls 2.0
+import QtGraphicalEffects 1.0
+import "ChangeItemPosition.js" as Cip
+
+Item {
+ id: main
+ width: 300
+ height: 485
+ property string icon: model.icon
+ property int pid: -1
+ property bool isBlank: false
+ property bool isPressing: false
+
+ Timer {
+ id: launchTimer
+ interval: 650
+ repeat: false
+ onTriggered: {
+ launchApp()
+ }
+ }
+
+ Item {
+ id: container
+ width: main.width
+ height: main.height
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if(main.state === "pos14") {
+ launchApp()
+ } else if(main.state === "pos4") {
+ Cip.prev()
+ launchTimer.start()
+ } else if(main.state === "pos3") {
+ Cip.prev()
+ Cip.prev()
+ launchTimer.start()
+ } else if(main.state === "pos2") {
+ Cip.prev()
+ Cip.prev()
+ Cip.prev()
+ launchTimer.start()
+ } else if(main.state === "pos1") {
+ Cip.prev()
+ Cip.prev()
+ Cip.prev()
+ Cip.prev()
+ launchTimer.start()
+ } else if(main.state === "pos6") {
+ Cip.next()
+ launchTimer.start()
+ } else if(main.state === "pos7") {
+ Cip.next()
+ Cip.next()
+ launchTimer.start()
+ } else if(main.state === "pos8") {
+ Cip.next()
+ Cip.next()
+ Cip.next()
+ launchTimer.start()
+ } else if(main.state === "pos9") {
+ Cip.next()
+ Cip.next()
+ Cip.next()
+ Cip.next()
+ launchTimer.start()
+ }
+ }
+ }
+
+ Image {
+ id: item
+ anchors.top: parent.top
+ anchors.topMargin: 230
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 300
+ height: 300
+ source: './images/%1_active.png'.arg(model.icon)
+ property string initial: model.name.substring(0,1).toUpperCase()
+ property bool hasIcon: model.icon !== 'blank'
+
+ Label {
+ style: Text.Outline
+ styleColor: 'white'
+ color: 'transparent'
+ font.pixelSize: 225
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -50
+ text: item.initial
+ visible: item.hasIcon ? false : true
+ }
+
+ Label {
+ id: name
+ anchors.bottom: item.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 20
+ font.pixelSize: 25
+ font.letterSpacing: 5
+ wrapMode: Text.WordWrap
+ horizontalAlignment: Text.AlignHCenter
+ color: "white"
+ text: qsTr(model.name.toUpperCase())
+ }
+
+ }
+ }
+ function iconPressed() {
+ item.source = './images/%1_inactive.png'.arg(model.icon)
+ }
+ function iconReleased() {
+ item.source = './images/%1_active.png'.arg(model.icon)
+ }
+ function launchApp() {
+ pid = launcher.launch(model.id)
+ if (1 < pid) {
+ } else {
+ console.warn("app cannot be launched!")
+ }
+ homescreenHandler.tapShortcut(model.name)
+ }
+}
diff --git a/demo3/horizontal/launcher/launcher/qml/Launcher.qml b/demo3/horizontal/launcher/launcher/qml/Launcher.qml
new file mode 100644
index 0000000..31a9848
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/Launcher.qml
@@ -0,0 +1,513 @@
+/*
+ * Copyright (C) 2016 The Qt Company Ltd.
+ * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
+ * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import QtQuick 2.6
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 2.0
+import AppModel 1.0
+import "ChangeItemPosition.js" as Cip
+
+ApplicationWindow {
+ id: root
+
+ property int pid: -1
+ property int firstPox: -1
+ property bool iconMoved: false
+
+ Timer {
+ id: timer
+ interval: 650
+ repeat: false
+ onTriggered: {
+ var centerItem = Cip.getCenterItem()
+ centerItem.state = "pos14"
+ centerImage.opacity = 1.0
+ }
+ }
+
+ Repeater {
+ id: repeater
+ model: ApplicationModel { id: applicationModel }
+
+ property int currentItem
+
+ IconItem {
+ id: rect1
+ property int currentState: 1
+
+ width: 300
+ height: 590
+
+ smooth: true
+
+ anchors.centerIn: parent
+
+ Behavior on opacity {
+ NumberAnimation { duration: 200 }
+ }
+
+ Behavior on z {
+ NumberAnimation { duration: 300 }
+ }
+ transform: [
+ Rotation {
+ id: rotate
+ angle: 0
+ origin.y: 243
+ origin.x: 160
+ axis { x: 0; y: 1; z: 0 }
+ Behavior on angle {
+ NumberAnimation { easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600 }
+ }
+ },
+ Translate {
+ id: trans
+ x: 0
+ y: 0
+ Behavior on x {
+ NumberAnimation { easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600 }
+ }
+ Behavior on y {
+ NumberAnimation { easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600 }
+ }
+ },
+ Scale {
+ id: scale
+ origin.x: 160
+ origin.y: 243
+ xScale: 1
+ yScale: 1
+ Behavior on xScale {
+ NumberAnimation { easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600 }
+ }
+ Behavior on yScale {
+ NumberAnimation { easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600 }
+ }
+ }
+ ]
+
+ states: [
+ State {
+ name: "pos0"
+ PropertyChanges {
+ target: rotate
+ angle: 80
+ }
+ PropertyChanges {
+ target: trans
+ x: -1050
+ y: 270
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 0
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1.2
+ yScale: 1.2
+ }
+ },
+ State {
+ name: "pos1"
+ PropertyChanges {
+ target: rotate
+ angle: 75
+ }
+ PropertyChanges {
+ target: trans
+ x: -700
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1.2
+ yScale: 1.2
+ }
+ },
+ State {
+ name: "pos2"
+ PropertyChanges {
+ target: rotate
+ angle: 60
+ }
+ PropertyChanges {
+ target: trans
+ x: -820
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.79
+ yScale: 0.79
+ }
+ },
+ State {
+ name: "pos3"
+ PropertyChanges {
+ target: rotate
+ angle: 40
+ }
+ PropertyChanges {
+ target: trans
+ x: -780
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.55
+ yScale: 0.55
+ }
+ },
+ State {
+ name: "pos4"
+ PropertyChanges {
+ target: rotate
+ angle: 15
+ }
+ PropertyChanges {
+ target: trans
+ x: -470
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.45
+ yScale: 0.45
+ }
+ },
+ State {
+ name: "pos5"
+ PropertyChanges {
+ target: rotate
+ angle: 0
+ }
+ PropertyChanges {
+ target: trans
+ x: 0
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 1
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.42
+ yScale: 0.42
+ }
+ },
+ State {
+ name: "pos6"
+ PropertyChanges {
+ target: rotate
+ angle: -15
+ }
+ PropertyChanges {
+ target: trans
+ x: 470
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.45
+ yScale: 0.45
+ }
+ },
+ State {
+ name: "pos7"
+ PropertyChanges {
+ target: rotate
+ angle: -40
+ }
+ PropertyChanges {
+ target: trans
+ x: 780
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.55
+ yScale: 0.55
+ }
+ },
+ State {
+ name: "pos8"
+ PropertyChanges {
+ target: rotate
+ angle: -60
+ }
+ PropertyChanges {
+ target: trans
+ x: 820
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 0.79
+ yScale: 0.79
+ }
+ },
+ State {
+ name: "pos9"
+ PropertyChanges {
+ target: rotate
+ angle: -75
+ }
+ PropertyChanges {
+ target: trans
+ x: 700
+ y: 0
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1.2
+ yScale: 1.2
+ }
+ },
+ State {
+ name: "pos10"
+ PropertyChanges {
+ target: rotate
+ angle: -80
+ }
+ PropertyChanges {
+ target: trans
+ x: 1050
+ y: 270
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 0
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1.2
+ yScale: 1.2
+ }
+ },
+ State {
+ name: "pos11"
+ PropertyChanges {
+ target: rotate
+ angle: 0
+ }
+ PropertyChanges {
+ target: trans
+ x: 1050
+ y: 540
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 0
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1
+ yScale: 1
+ }
+ },
+ State {
+ name: "pos12"
+ PropertyChanges {
+ target: rotate
+ angle: 0
+ }
+ PropertyChanges {
+ target: trans
+ x: 0
+ y: 540
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 0
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1
+ yScale: 1
+ }
+ },
+ State {
+ name: "pos13"
+ PropertyChanges {
+ target: rotate
+ angle: 0
+ }
+ PropertyChanges {
+ target: trans
+ x: -1050
+ y: 540
+ }
+ PropertyChanges {
+ target: rect1
+ z: 0
+ opacity: 0
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1
+ yScale: 1
+ }
+ },
+ State {
+ name: "pos14"
+ PropertyChanges {
+ target: rotate
+ angle: 0
+ }
+ PropertyChanges {
+ target: trans
+ x: 0
+ y: -50
+ }
+ PropertyChanges {
+ target: rect1
+ z: 1
+ opacity: 1
+ }
+ PropertyChanges {
+ target: scale
+ xScale: 1
+ yScale: 1
+ }
+ }
+ ]
+ }
+
+ }
+ Component.onCompleted: {
+ repeater.currentItem = 5;
+ var count = repeater.count;
+ for ( var i = 0; i < repeater.count; i++)
+ {
+ var item = repeater.itemAt(i);
+ item.currentState = i + 1;
+ if ( item.currentState >= 1 && item.currentState <= 10 )
+ {
+ item.state = "pos" + item.currentState;
+ if ( item.currentState === 5 )
+ item.state = "pos14";
+ } else if ( item.currentState === 15 ){
+ item.state = "pos11";
+ } else if ( item.currentState === 16 ){
+ item.state = "pos12";
+ } else if ( item.currentState === 17 ){
+ item.state = "pos13";
+ } else if ( item.currentState >= 18 ){
+ item.state = "pos0";
+ } else {
+ item.state = "pos10";
+ }
+ }
+ }
+
+ Image {
+ id: centerImage
+ source: './images/center_background.png'
+ height: 590
+ width: 350
+ anchors.centerIn: parent
+ opacity: 1.0
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ propagateComposedEvents: true
+ z: 2
+
+ onPressed: {
+ firstPox = mouseX;
+ iconMoved = false;
+ centerImage.opacity = 0.0;
+ if(mouseX >= 800 && mouseX <= 1120)
+ {
+ var item = Cip.getCenterItem()
+ item.iconPressed()
+ }
+ }
+
+ onReleased: {
+ timer.start()
+ if(mouseX >= 800 && mouseX <= 1120)
+ {
+ var item = Cip.getCenterItem()
+ item.iconReleased()
+ }
+ }
+
+ onClicked: {
+ if (iconMoved)
+ {
+ mouse.accepted = true
+ } else {
+ mouse.accepted = false
+ }
+ }
+
+ onPositionChanged: {
+ var item = Cip.getCenterItem()
+ Cip.move(mouseX, item)
+ }
+ }
+
+}
diff --git a/demo3/horizontal/launcher/launcher/qml/images/blank_active.png b/demo3/horizontal/launcher/launcher/qml/images/blank_active.png
new file mode 100644
index 0000000..e5a0dd4
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/blank_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/blank_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/blank_inactive.png
new file mode 100644
index 0000000..80b5198
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/blank_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/browser_active.png b/demo3/horizontal/launcher/launcher/qml/images/browser_active.png
new file mode 100644
index 0000000..8ef350b
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/browser_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/browser_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/browser_inactive.png
new file mode 100644
index 0000000..faeee45
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/browser_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/center_background.png b/demo3/horizontal/launcher/launcher/qml/images/center_background.png
new file mode 100644
index 0000000..8e160f4
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/center_background.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/connectivity_active.png b/demo3/horizontal/launcher/launcher/qml/images/connectivity_active.png
new file mode 100644
index 0000000..168b7fd
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/connectivity_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/connectivity_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/connectivity_inactive.png
new file mode 100644
index 0000000..68f1ca0
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/connectivity_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/dashboard_active.png b/demo3/horizontal/launcher/launcher/qml/images/dashboard_active.png
new file mode 100644
index 0000000..84b973b
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/dashboard_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/dashboard_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/dashboard_inactive.png
new file mode 100644
index 0000000..045658c
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/dashboard_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/hvac_active.png b/demo3/horizontal/launcher/launcher/qml/images/hvac_active.png
new file mode 100644
index 0000000..9d4f6ac
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/hvac_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/hvac_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/hvac_inactive.png
new file mode 100644
index 0000000..806d661
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/hvac_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/images.qrc b/demo3/horizontal/launcher/launcher/qml/images/images.qrc
new file mode 100644
index 0000000..821cd7f
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/images.qrc
@@ -0,0 +1,35 @@
+<RCC>
+ <qresource prefix="/images">
+ <file>connectivity_active.png</file>
+ <file>connectivity_inactive.png</file>
+ <file>dashboard_active.png</file>
+ <file>dashboard_inactive.png</file>
+ <file>hvac_active.png</file>
+ <file>hvac_inactive.png</file>
+ <file>mixer_active.png</file>
+ <file>mixer_inactive.png</file>
+ <file>mediaplayer_active.png</file>
+ <file>mediaplayer_inactive.png</file>
+ <file>music_active.png</file>
+ <file>music_inactive.png</file>
+ <file>navigation_active.png</file>
+ <file>navigation_inactive.png</file>
+ <file>phone_active.png</file>
+ <file>phone_inactive.png</file>
+ <file>poi_active.png</file>
+ <file>poi_inactive.png</file>
+ <file>radio_active.png</file>
+ <file>radio_inactive.png</file>
+ <file>settings_active.png</file>
+ <file>settings_inactive.png</file>
+ <file>videoplayer_active.png</file>
+ <file>videoplayer_inactive.png</file>
+ <file>browser_active.png</file>
+ <file>browser_inactive.png</file>
+ <file>weather_active.png</file>
+ <file>weather_inactive.png</file>
+ <file>blank_active.png</file>
+ <file>blank_inactive.png</file>
+ <file>center_background.png</file>
+ </qresource>
+</RCC>
diff --git a/demo3/horizontal/launcher/launcher/qml/images/mediaplayer_active.png b/demo3/horizontal/launcher/launcher/qml/images/mediaplayer_active.png
new file mode 100644
index 0000000..140733a
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/mediaplayer_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/mediaplayer_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/mediaplayer_inactive.png
new file mode 100644
index 0000000..38e6111
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/mediaplayer_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/mixer_active.png b/demo3/horizontal/launcher/launcher/qml/images/mixer_active.png
new file mode 100644
index 0000000..ab0b9f3
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/mixer_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/mixer_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/mixer_inactive.png
new file mode 100644
index 0000000..e3872bb
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/mixer_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/music_active.png b/demo3/horizontal/launcher/launcher/qml/images/music_active.png
new file mode 100644
index 0000000..140733a
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/music_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/music_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/music_inactive.png
new file mode 100644
index 0000000..38e6111
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/music_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/navigation_active.png b/demo3/horizontal/launcher/launcher/qml/images/navigation_active.png
new file mode 100644
index 0000000..ae3f720
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/navigation_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/navigation_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/navigation_inactive.png
new file mode 100644
index 0000000..52530d6
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/navigation_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/phone_active.png b/demo3/horizontal/launcher/launcher/qml/images/phone_active.png
new file mode 100644
index 0000000..8a10a92
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/phone_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/phone_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/phone_inactive.png
new file mode 100644
index 0000000..2b61477
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/phone_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/poi_active.png b/demo3/horizontal/launcher/launcher/qml/images/poi_active.png
new file mode 100644
index 0000000..dcf799f
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/poi_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/poi_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/poi_inactive.png
new file mode 100644
index 0000000..c0a4fd3
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/poi_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/radio_active.png b/demo3/horizontal/launcher/launcher/qml/images/radio_active.png
new file mode 100644
index 0000000..411f94a
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/radio_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/radio_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/radio_inactive.png
new file mode 100644
index 0000000..f8c2cc1
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/radio_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/settings_active.png b/demo3/horizontal/launcher/launcher/qml/images/settings_active.png
new file mode 100644
index 0000000..e9bec82
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/settings_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/settings_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/settings_inactive.png
new file mode 100644
index 0000000..fc72f9d
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/settings_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/videoplayer_active.png b/demo3/horizontal/launcher/launcher/qml/images/videoplayer_active.png
new file mode 100644
index 0000000..69bd5bc
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/videoplayer_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/videoplayer_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/videoplayer_inactive.png
new file mode 100644
index 0000000..99c44ff
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/videoplayer_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/weather_active.png b/demo3/horizontal/launcher/launcher/qml/images/weather_active.png
new file mode 100644
index 0000000..4ff7223
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/weather_active.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/images/weather_inactive.png b/demo3/horizontal/launcher/launcher/qml/images/weather_inactive.png
new file mode 100644
index 0000000..d5a18b3
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/images/weather_inactive.png
Binary files differ
diff --git a/demo3/horizontal/launcher/launcher/qml/qml.qrc b/demo3/horizontal/launcher/launcher/qml/qml.qrc
new file mode 100644
index 0000000..0dfd6b1
--- /dev/null
+++ b/demo3/horizontal/launcher/launcher/qml/qml.qrc
@@ -0,0 +1,7 @@
+<RCC>
+ <qresource prefix="/">
+ <file>Launcher.qml</file>
+ <file>IconItem.qml</file>
+ <file>ChangeItemPosition.js</file>
+ </qresource>
+</RCC>