7e965125982ddd07c0c1c57902e840a4636dfd42
[mdictionary] / src / mdictionary / qml / Checkbox.qml
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
5     mDictionary is free software: you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation, either version 3 of the License, or
8     (at your option) any later version.
9
10     mDictionary is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with mDictionary.  If not, see <http://www.gnu.org/licenses/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21 /*!
22     author: Marcin Kaźmierczak <marcin.kazmierczak@comarch.pl>
23 */
24
25 import Qt 4.7
26
27 Image {
28     id: checkbox
29     property bool selected
30     property string pathToCheckedImage: "qrc:/button/checkboxChecked.png"
31     property string pathToUncheckedImage: "qrc:/button/checkbox.png"
32     property string pathToCheckedDicImage: "qrc:/button/checkboxCheckedDis.png"
33     property string pathToUncheckedDicImage: "qrc:/button/checkboxDis.png"
34     signal changed
35     height: {
36         var aspectRatio = sourceSize.height / sourceSize.width
37         return checkbox.width * aspectRatio
38     }
39     width: sourceSize.width
40     smooth: true
41     states: [
42         State {
43             name: "checkeEn";
44             when: (checkbox.selected && checkbox.enabled);
45
46             PropertyChanges { target: checkbox; source: pathToCheckedImage }
47         },
48         State {
49             name: "uncheckeEn";
50             when: ( !checkbox.selected && checkbox.enabled);
51
52             PropertyChanges { target: checkbox; source: pathToUncheckedImage }
53         },
54         State {
55             name: "checkeDi";
56             when: (checkbox.selected && !checkbox.enabled);
57
58             PropertyChanges { target: checkbox; source: pathToCheckedDicImage }
59         },
60         State {
61             name: "uncheckeDi";
62             when: ( !checkbox.selected && !checkbox.enabled);
63
64             PropertyChanges { target: checkbox; source: pathToUncheckedDicImage }
65         }
66     ]
67     MouseArea{
68         id: area
69         anchors.fill: parent
70         onClicked: {
71             if(checkbox.enabled){
72                checkbox.selected = !checkbox.selected
73                changed()
74             }
75         }
76     }
77 }