summaryrefslogtreecommitdiffstats
path: root/app/main.qml
blob: 99d50f81a9aa861e162b7f868e6e237e2bf509ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
 * Copyright (c) 2017 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.Window 2.2
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0
import AGL.Demo.Controls 1.0
import OnScreenModel 1.0

Window {
    id: root
    flags: Qt.FramelessWindowHint
    visible: true
    x: 0
    y: 	218
    width: 1080
    height: 1488
    color: '#00000000'

    Onscreen {
        id: ons
        anchors.centerIn: parent
        visible: true
        scale: 0

        property string dsp_sts: "hide"
        property string dsp_title: ""
        property string dsp_icon: ""
        property string dsp_contents: ""
        property int btnNum: 0
        property string btn1Name: ""
        property string btn2Name: ""
        property string btn3Name: ""

        states: [
            State {
                name: 'active'
                when: ons.dsp_sts == "show"
                PropertyChanges {
                    target: ons
                    scale: 1
                    z: 1
                }
            },
            State {
                name: 'inactive'
                when: ons.dsp_sts == "hide"
                PropertyChanges {
                    target: ons
                    scale: 0
                    z: -1
                }
            }
        ]
        transitions: Transition {
            NumberAnimation {
                properties: 'scale';
                duration: 300;
                easing.type: Easing.Linear
                alwaysRunToEnd: true
            }
        }
    }

    OnScreenModel {
        id: onscreenModel
    }

    Timer {
        id: ons_timer
        interval: 3000
        onTriggered: {
            hideOnScreen();
            clearOnScreenModel();
        }
    }

    Connections {
        target: ons
        onScaleChanged : {
            if(ons.scale == 0) {
                console.log(qsTr('hide animation finished'));
                eventHandler.deactivateWindow();
            }
        }
    }

    function showOnScreen() {
        console.log(qsTr('show onscreenapp'));
        ons.dsp_title = onscreenModel.getTitle()
        ons.dsp_icon = "../images/" + onscreenModel.getType() + ".svg"
        ons.dsp_contents = onscreenModel.getContents()
        ons.btnNum = onscreenModel.buttonNum()
        ons.btn1Name = onscreenModel.buttonName(0)
        ons.btn2Name = onscreenModel.buttonName(1)
        ons.btn3Name = onscreenModel.buttonName(2)
        ons_timer.running =  ons.btnNum > 0 ? false : true
        ons.dsp_sts = "show"
    }

    function hideOnScreen() {
        console.log(qsTr('hide onscreenapp'));
        ons.dsp_sts = "hide"
        ons_timer.running = false
    }

    function setOnScreenModel(data) {
        console.log(qsTr('onscreenapp >>> setModel status: ' + data));
        onscreenModel.setModel(data)
    }
}