add some comments
[makneto-zunavac1.git] / src / ui-mobile / declarative / Scene.qml
bloba30f7a0d94aacd09c6bbfad628cbaa09e71b5bdd
1 /*
2  *   Copyright (C) 2011 Lukáš Karas <lukas.karas@centrum.cz>
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; either version 2 of the License, or
7  *   (at your option) any later version.
8  *
9  *   This program is distributed in the hope that it will be useful,
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *   GNU General Public License for more details.
13  *
14  *   You should have received a copy of the GNU General Public License
15  *   along with this program; if not, write to the
16  *   Free Software Foundation, Inc.,
17  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18  */
20 import QtQuick 1.0
22 Rectangle {
23     id: scene
25     function log(msg){
26         console.log("II [Scene.qml]: "+msg);
27     }
28     function error(msg){
29         console.log("EE [Scene.qml]: "+msg);
30     }
31     function warn(msg){
32         console.log("WW [Scene.qml]: "+msg);
33     }
35     property bool animate: false
36     property variant animationLength: 500
37     property string name;
38     property string icon;
40     function destroyLater(){
41         log("start destroyTimer")
42         destroyTimer.start();
43     }
45     Timer {
46         id: destroyTimer
47         interval: animationLength; running: false; repeat: false
48         onTriggered: {
49             log("destroy scene");
50             scene.destroy();
51         }
52     }
54     width: parent.width;
55     height: parent.height;
56     x: 0; y:0;
58     state: "center"
59     states: [
60         State {
61             name: "left"
62             PropertyChanges { target: scene; x: parent.width*-1; }
63         },
64         State {
65             name: "center"
66             PropertyChanges { target: scene; x: 0; }
67         },
68         State {
69             name: "right"
70             PropertyChanges { target: scene; x: parent.width;}
71         }
72     ]
73     transitions: Transition {
74         NumberAnimation { properties: "x"; duration: scene.animate? scene.animationLength: 0; easing.type: Easing.InOutQuad }
75     }
77     MouseArea{ // for overwrite MouseAreas from bottom scenes
78         anchors.fill: parent
79     }