1/*
2    Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia
3    Copyright (C) 2009,2010 ProFUSION embedded systems
4    Copyright (C) 2009,2010 Samsung Electronics
5
6    This file is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Library General Public
8    License as published by the Free Software Foundation; either
9    version 2 of the License, or (at your option) any later version.
10
11    This file is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Library General Public License for more details.
15
16    You should have received a copy of the GNU Library General Public License
17    along with this library; see the file COPYING.LIB.  If not, write to
18    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19    Boston, MA 02110-1301, USA.
20*/
21
22group {
23    name: "webkit/widget/combo";
24
25    images {
26        image: "widget/combo/combo_normal.png" COMP;
27        image: "widget/combo/combo_normal_button.png" COMP;
28        image: "widget/combo/combo_hover.png" COMP;
29        image: "widget/combo/combo_hover_button.png" COMP;
30        image: "widget/combo/combo_focus.png" COMP;
31        image: "widget/combo/combo_focus_button.png" COMP;
32        image: "widget/combo/combo_press.png" COMP;
33        image: "widget/combo/combo_press_button.png" COMP;
34        image: "widget/combo/icon.png" COMP;
35    }
36
37    script {
38        public isEnabled;
39        public isPressed;
40        public isChecked;
41        public isFocused;
42        public isHovered;
43
44        public show() {
45            if (get_int(isEnabled) == 1) {
46                set_state(PART:"combo", "default", 0.0);
47                set_state(PART:"combo_button", "default", 0.0);
48                set_state(PART:"combo_button_icon", "default", 0.0);
49                if (get_int(isFocused) == 1) {
50                    set_state(PART:"combo", "focused", 0.0);
51                    set_state(PART:"combo_button", "focused", 0.0);
52                    if (get_int(isPressed) == 1) {
53                        set_state(PART:"combo", "pressed", 0.0);
54                        set_state(PART:"combo_button", "pressed", 0.0);
55                    }
56                }
57                else if (get_int(isHovered) == 1) {
58                    set_state(PART:"combo", "hovered", 0.0);
59                    set_state(PART:"combo_button", "hovered", 0.0);
60                    if (get_int(isPressed) == 1) {
61                        set_state(PART:"combo", "pressed", 0.0);
62                        set_state(PART:"combo_button", "pressed", 0.0);
63                    }
64                }
65            }
66            else {
67                set_state(PART:"combo", "disabled", 0.0);
68                set_state(PART:"combo_button", "disabled", 0.0);
69                set_state(PART:"combo_button_icon", "disabled", 0.0);
70            }
71        }
72    }
73
74    parts {
75        part {
76            name: "clipper";
77            type: RECT;
78            description {
79                min: 35 27;
80                state: "default" 0.0;
81            }
82        }
83
84        part {
85            name: "combo_clipper";
86            type: RECT;
87            clip_to: "clipper";
88            description {
89                state: "default" 0.0;
90                rel1.to: "clipper";
91                rel2 {
92                    to: "clipper";
93                    offset: -32 -1;
94                }
95            }
96        }
97
98        part {
99            name: "combo";
100            type: IMAGE;
101            clip_to: "combo_clipper";
102            description {
103                state: "default" 0.0;
104                min: 36 20;
105                image {
106                    normal: "widget/combo/combo_normal.png";
107                    border: 15 0 8 11;
108                }
109            }
110            description {
111               state: "disabled" 0.0;
112               inherit: "default" 0.0;
113               color: 255 255 255 150;
114            }
115            description {
116               state: "hovered" 0.0;
117               inherit: "default" 0.0;
118               image {
119                  normal: "widget/combo/combo_hover.png";
120                  border: 15 0 8 11;
121               }
122            }
123            description {
124               state: "focused" 0.0;
125               inherit: "default" 0.0;
126               image {
127                  normal: "widget/combo/combo_focus.png";
128                  border: 15 0 8 11;
129               }
130            }
131            description {
132               state: "pressed" 0.0;
133               inherit: "default" 0.0;
134               image {
135                  normal: "widget/combo/combo_press.png";
136                  border: 15 0 8 11;
137               }
138            }
139        }
140
141        part {
142            name: "bt_combo_clipper";
143            type: RECT;
144            clip_to: "clipper";
145            description {
146                state: "default" 0.0;
147                rel1 {
148                    to: "combo_clipper";
149                    relative: 1.0 0.0;
150                }
151                rel2 {
152                    to: "clipper";
153                    relative: 1.0 1.0;
154                }
155            }
156        }
157
158        part {
159            name: "combo_button";
160            type: IMAGE;
161            clip_to: "bt_combo_clipper";
162            description {
163                state: "default" 0.0;
164                min: 18 20; // 3 + 5 + image width (10), 5 + 5 + image height (10)
165                rel1.to: "bt_combo_clipper";
166                image {
167                     normal: "widget/combo/combo_normal_button.png";
168                     border: 1 15 8 10;
169               }
170            }
171            description {
172                state: "disabled" 0.0;
173                inherit: "default" 0.0;
174                color: 255 255 255 150;
175                rel1.to: "bt_combo_clipper";
176            }
177            description {
178                state: "hovered" 0.0;
179                inherit: "default" 0.0;
180                rel1.to: "bt_combo_clipper";
181                image {
182                    normal: "widget/combo/combo_hover_button.png";
183                    border: 1 15 8 10;
184                }
185            }
186            description {
187                state: "focused" 0.0;
188                inherit: "default" 0.0;
189                rel1.to: "bt_combo_clipper";
190                image {
191                    normal: "widget/combo/combo_focus_button.png";
192                    border: 1 15 8 10;
193                }
194            }
195            description {
196                state: "pressed" 0.0;
197                inherit: "default" 0.0;
198                rel1.to: "bt_combo_clipper";
199                image {
200                    normal: "widget/combo/combo_press_button.png";
201                    border: 1 15 8 10;
202                }
203            }
204        }
205
206
207        part {
208            name: "combo_button_icon";
209            type: IMAGE;
210            clip_to: "bt_combo_clipper";
211            description {
212                state: "default" 0.0;
213                min: 12 10;
214                max: 12 10;
215                color: 255 255 255 150;
216                rel1 {
217                    to: "bt_combo_clipper";
218                    relative: 0.5 0.5;
219                    offset: 0 1;
220                }
221                rel2 {
222                    to: "bt_combo_clipper";
223                    relative: 0.5 0.5;
224                }
225                fixed: 1 1;
226                image {
227                     normal: "widget/combo/icon.png";
228                     border: 5 5 0 0;
229               }
230            }
231            description {
232                state: "disabled" 0.0;
233                inherit: "default" 0.0;
234                color: 255 255 255 50;
235                image {
236                     normal: "widget/combo/icon.png";
237                     border: 5 5 0 0;
238               }
239            }
240        }
241
242        part {
243            name: "text_confinement";
244            type: RECT;
245            description {
246               state: "default" 0.0;
247               color: 0 0 0 0;
248               rel1 {
249                  to: "combo_clipper";
250                  offset: 15 10;
251               }
252               rel2 {
253                  to: "combo_clipper";
254                  offset: -11 -11;
255               }
256            }
257         }
258    }
259
260    programs {
261        program {
262            name: "enabled";
263            signal: "enabled";
264            script {
265                set_int(isEnabled, 1);
266                show();
267            }
268        }
269        program {
270            name: "pressed";
271            signal: "pressed";
272            script {
273               set_int(isPressed, 1);
274               show();
275            }
276        }
277        program {
278            name: "focused";
279            signal: "focused";
280            script {
281                set_int(isFocused, 1);
282                show();
283            }
284        }
285        program {
286            name: "hovered";
287            signal: "hovered";
288            script {
289                set_int(isHovered, 1);
290                show();
291            }
292        }
293        program {
294            name: "reset";
295            signal: "reset";
296            script {
297                set_int(isEnabled, 0);
298                set_int(isPressed, 0);
299                set_int(isChecked, 0);
300                set_int(isFocused, 0);
301                set_int(isHovered, 0);
302                show();
303            }
304        }
305    }
306}
307