75046e3a84af897e5028c0a44564aa7f56afb6dc
[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
36     Keys.onPressed: {
37         if (event.key == Qt.Key_Space)
38             selected=!selected
39     }
40
41     height: {
42         var aspectRatio = sourceSize.height / sourceSize.width
43         return checkbox.width * aspectRatio
44     }
45     width: sourceSize.width
46     smooth: true
47     states: [
48         State {
49             name: "checkeEn";
50             when: (checkbox.selected && checkbox.enabled);
51
52             PropertyChanges { target: checkbox; source: pathToCheckedImage }
53         },
54         State {
55             name: "uncheckeEn";
56             when: ( !checkbox.selected && checkbox.enabled);
57
58             PropertyChanges { target: checkbox; source: pathToUncheckedImage }
59         },
60         State {
61             name: "checkeDi";
62             when: (checkbox.selected && !checkbox.enabled);
63
64             PropertyChanges { target: checkbox; source: pathToCheckedDicImage }
65         },
66         State {
67             name: "uncheckeDi";
68             when: ( !checkbox.selected && !checkbox.enabled);
69
70             PropertyChanges { target: checkbox; source: pathToUncheckedDicImage }
71         }
72     ]
73     MouseArea{
74         id: area
75         anchors.fill: parent
76         onClicked: {
77             if(checkbox.enabled){
78                checkbox.selected = !checkbox.selected
79                changed()
80             }
81         }
82     }
83
84     Rectangle{
85         id: focusRectangle
86         color: "#000000"
87         border.color: "#000000"
88         opacity: 0;
89         radius: 1
90         anchors.centerIn: parent
91         z:1;
92     }
93
94     onFocusChanged: {
95         if(focus)
96             focusRectangle.opacity=0.5;
97         else
98             focusRectangle.opacity=0;
99     }
100 }