Tizen 2.1 base
[platform/core/uifw/efl-theme-tizen.git] / themes / widgets / dayselector.edc
1 /*
2  * efl-theme-tizen
3  * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4  *
5  * Licensed under the Apache License, Version 2.0 (the License);
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an AS IS BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18
19
20 #define DAYSELECOR_DAY_POS_LEFT 1
21 #define DAYSELECOR_DAY_POS_RIGHT 2
22 #define DAYSELECOR_DAY_POS_MIDDLE 3
23 #define DAYSELECOR_DAY_TYPE_WEEKDAY 1
24 #define DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT 2
25 #define DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1 3
26 #define DAYSELECOR_DAY_STATE_DEFAULT 1
27 #define DAYSELECOR_DAY_STATE_PRESSED 2
28 #define DAYSELECOR_DAY_STATE_SELECTED 3
29
30 #define DAYSELECTOR_DAY(_pos, _after)\
31    part {\
32       name: "day"#_pos;\
33       type: SWALLOW;\
34       scale: 1;\
35       clip_to: "clipper";\
36       description { state: "default" 0.0;\
37          visible: 0;\
38          min: 0 0;\
39          align: 0.0 0.5;\
40          fixed: 1 0;\
41          rel1 {\
42             relative: 1.0 0.0;\
43             to: "day"#_after;\
44             offset: 1 0;\
45          }\
46          rel2 {\
47             relative: 1.0 1.0;\
48             to: "day"#_after;\
49          }\
50       }\
51       description { state: "visible" 0.0;\
52          inherit: "default" 0.0;\
53          visible: 1;\
54          min: DAYSELECTOR_CHECK_WIDTH_INC DAYSELECTOR_CHECK_HEIGHT_INC;\
55       }\
56    }\
57    programs{\
58       program {\
59          name: "day"#_pos"visible";\
60          signal: "day"#_pos",visible";\
61          source: "elm";\
62          action: STATE_SET "visible" 0.0;\
63          target: "day"#_pos;\
64       }\
65       program {\
66          name: "day"#_pos"notvisible";\
67          signal: "day"#_pos",default";\
68          source: "elm";\
69          action: STATE_SET "default" 0.0;\
70          target: "day"#_pos;\
71       }\
72    }
73
74 group {
75    name: "elm/dayselector/base/default";
76    parts {
77       part {
78          name: "bg";
79          type: RECT;
80          mouse_events: 0;
81          clip_to: "clipper";
82          description {
83             state: "default" 0.0;
84             rel1 {
85                to: "day0";
86             }
87             rel2 {
88                to: "day6";
89             }
90             color: DAYSELECTOR_BACKGROUND_COLOR_INC;
91          }
92       }
93       part {
94          name: "day0";
95          type: SWALLOW;
96          scale: 1;
97          clip_to: "clipper";
98          description {
99             state: "default" 0.0;
100             visible: 0;
101             min: 0 0;
102             align: 0.0 0.5;
103             fixed: 1 0;
104             rel2.relative: 0.0 1.0;
105          }
106          description {
107             state: "visible" 0.0;
108             inherit: "default" 0.0;
109             visible: 1;
110             min: DAYSELECTOR_CHECK_WIDTH_INC DAYSELECTOR_CHECK_HEIGHT_INC;
111          }
112       }
113       DAYSELECTOR_DAY(1, 0)
114       DAYSELECTOR_DAY(2, 1)
115       DAYSELECTOR_DAY(3, 2)
116       DAYSELECTOR_DAY(4, 3)
117       DAYSELECTOR_DAY(5, 4)
118       DAYSELECTOR_DAY(6, 5)
119       part {
120          name: "clipper";
121          type: RECT;
122          description {
123             state: "default" 0.0;
124             rel1.to: "day0";
125             rel2.to: "day6";
126             color: 255 255 255 255;
127          }
128          description {
129             state: "visible" 0.0;
130             inherit: "default" 0.0;
131             color: 200 200 200 255;
132          }
133       }
134       part {
135          name: "disabler";
136          type: RECT;
137          description {
138             state: "default" 0.0;
139             color: 0 0 0 0;
140             visible: 0;
141          }
142          description {
143             state: "visible" 0.0;
144             inherit: "default" 0.0;
145             visible: 1;
146          }
147       }
148    }
149    programs {
150       program {
151          name: "disble_dayselector";
152          signal: "elm,state,disabled";
153          source: "elm";
154          action: STATE_SET "visible" 0.0;
155          target: "disabler";
156          target: "clipper";
157       }
158       program {
159          name: "enable_dayselector";
160          signal: "elm,state,enabled";
161          source: "elm";
162          action: STATE_SET "default" 0.0;
163          target: "disabler";
164          target: "clipper";
165       }
166       program {
167          name: "day0_visible";
168          signal: "day0,visible";
169          source: "elm";
170          action: STATE_SET "visible" 0.0;
171          target: "day0";
172       }
173       program {
174          name: "day0_default";
175          signal: "day0,default";
176          source: "elm";
177          action: STATE_SET "default" 0.0;
178          target: "day0";
179       }
180    }
181 }
182
183 group {
184    name: "elm/check/base/dayselector/default";
185    images {
186       image: "00_alarm_repeat_button_normal_01.png" COMP;
187       image: "00_alarm_repeat_button_press_01.png" COMP;
188       image: "00_alarm_repeat_button_normal_02.png" COMP;
189       image: "00_alarm_repeat_button_press_02.png" COMP;
190       image: "00_alarm_repeat_button_normal_03.png" COMP;
191       image: "00_alarm_repeat_button_press_03.png" COMP;
192    }
193    script {
194       public check_pos; // Left, Right, Middle.
195       public check_type; // Weekday, Weekend.
196       public check_state = DAYSELECOR_DAY_STATE_DEFAULT; // Default, Pressed, Selected.
197
198       public check_bg_show() {
199          if(get_int(check_pos) == DAYSELECOR_DAY_POS_LEFT) {
200            if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
201              set_state(PART:"bg", "default_left", 0.0);
202            else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
203              set_state(PART:"bg", "pressed_left", 0.0);
204            else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
205              set_state(PART:"bg", "selected_left", 0.0);
206          }
207          else if(get_int(check_pos) == DAYSELECOR_DAY_POS_RIGHT) {
208            if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
209              set_state(PART:"bg", "default_right", 0.0);
210            else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
211              set_state(PART:"bg", "pressed_right", 0.0);
212            else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
213              set_state(PART:"bg", "selected_right", 0.0);
214          }
215          else if(get_int(check_pos) == DAYSELECOR_DAY_POS_MIDDLE) {
216            if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
217              set_state(PART:"bg", "default_middle", 0.0);
218            else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
219              set_state(PART:"bg", "pressed_middle", 0.0);
220            else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
221              set_state(PART:"bg", "selected_middle", 0.0);
222          }
223       }
224       public check_text_show() {
225         if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
226           set_state(PART:"elm.text", "selected", 0.0);
227         else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
228           set_state(PART:"elm.text", "selected", 0.0);
229         else {
230           if(get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKDAY)
231             set_state(PART:"elm.text", "default", 0.0);
232           else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT)
233             set_state(PART:"elm.text", "weekend_default", 0.0);
234           else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1)
235             set_state(PART:"elm.text", "weekend_style1", 0.0);
236         }
237       }
238    }
239    parts {
240       part {
241          name: "bg";
242          mouse_events: 0;
243          scale: 1;
244          description {
245             state: "default" 0.0;
246             //color: DAYSELECTOR_BACKGROUND_COLOR_INC;
247          }
248          description { state: "default_left" 0.0;
249             inherit: "default" 0.0;
250             image {
251                normal: "00_alarm_repeat_button_normal_01.png";
252                border: 4 0 4 4;
253                border_scale: 1;
254             }
255          }
256          description { state: "default_right" 0.0;
257             inherit: "default" 0.0;
258             image {
259                normal: "00_alarm_repeat_button_normal_03.png";
260                border: 0 4 4 4;
261                border_scale: 1;
262             }
263          }
264          description { state: "default_middle" 0.0;
265             inherit: "default" 0.0;
266             image {
267                normal: "00_alarm_repeat_button_normal_02.png";
268                border: 0 0 4 4;
269                border_scale: 1;
270             }
271          }
272          description { state: "pressed_left" 0.0;
273             inherit: "default" 0.0;
274             image {
275                normal: "00_alarm_repeat_button_press_01.png";
276                border: 4 0 4 4;
277                border_scale: 1;
278             }
279          }
280          description { state: "pressed_right" 0.0;
281             inherit: "default" 0.0;
282             image {
283                normal: "00_alarm_repeat_button_press_03.png";
284                border: 0 4 4 4;
285                border_scale: 1;
286             }
287          }
288          description { state: "pressed_middle" 0.0;
289             inherit: "default" 0.0;
290             image {
291                normal: "00_alarm_repeat_button_press_02.png";
292                border: 0 0 4 4;
293                border_scale: 1;
294             }
295          }
296          description { state: "selected_left" 0.0;
297             inherit: "default" 0.0;
298             image {
299                normal: "00_alarm_repeat_button_press_01.png";
300                border: 4 0 4 4;
301                border_scale: 1;
302             }
303          }
304          description { state: "selected_right" 0.0;
305             inherit: "default" 0.0;
306             image {
307                normal: "00_alarm_repeat_button_press_03.png";
308                border: 0 4 4 4;
309                border_scale: 1;
310             }
311          }
312          description { state: "selected_middle" 0.0;
313             inherit: "default" 0.0;
314             image {
315                normal: "00_alarm_repeat_button_press_02.png";
316                border: 0 0 4 4;
317                border_scale: 1;
318             }
319          }
320       }
321       part {
322          name: "elm.text";
323          type: TEXT;
324          mouse_events: 0;
325          scale: 1;
326          description {
327             state: "default" 0.0;
328             rel1.to: "bg";
329             rel2.to: "bg";
330             color: DAYSELECTOR_WEEKDAY_COLOR_INC;
331             text {
332                font: "Tizen:style=Medium";
333                size: DAYSELECTOR_DAY_FONT_SIZE_INC;
334                min: 1 1;
335                align: 0.5 0.5;
336                text_class: "tizen";
337             }
338          }
339          description {
340             state: "weekend_default" 0.0;
341             inherit: "default" 0.0;
342             color: DAYSELECTOR_SATURDAY_COLOR_INC;
343          }
344          description {
345             state: "weekend_style1" 0.0;
346             inherit: "default" 0.0;
347             color: DAYSELECTOR_SUNDAY_COLOR_INC;
348          }
349          description {
350             state: "selected" 0.0;
351             inherit: "default" 0.0;
352             color: DAYSELECTOR_DAY_PRESSED_COLOR_INC;
353          }
354       }
355       part {
356          name: "events";
357          type: RECT;
358          description {
359             state: "default" 0.0;
360             rel1.to: "bg";
361             rel2.to: "bg";
362             color: 0 0 0 0;
363          }
364       }
365    }
366    programs {
367       program {
368          name: "check,pressed";
369          signal: "mouse,down,1";
370          source: "events";
371          script {
372             set_int(check_state, DAYSELECOR_DAY_STATE_PRESSED);
373             check_bg_show();
374             check_text_show();
375          }
376       }
377       program {
378          name: "check,toggle";
379          signal: "mouse,up,1";
380          source: "events";
381          action: SIGNAL_EMIT "elm,action,check,toggle" "";
382       }
383       program {
384          name: "check,on";
385          signal: "elm,state,check,on";
386          source: "elm";
387          script {
388             set_int(check_state, DAYSELECOR_DAY_STATE_SELECTED);
389             check_bg_show();
390             check_text_show();
391          }
392       }
393       program {
394          name: "check,off";
395          signal: "elm,state,check,off";
396          source: "elm";
397          script {
398             set_int(check_state, DAYSELECOR_DAY_STATE_DEFAULT);
399             check_bg_show();
400             check_text_show();
401          }
402       }
403       program { name: "check,left";
404          signal: "elm,pos,check,left";
405          source: "elm";
406          script {
407             set_int(check_pos, DAYSELECOR_DAY_POS_LEFT);
408             check_bg_show();
409          }
410       }
411       program { name: "check,right";
412          signal: "elm,pos,check,right";
413          source: "elm";
414          script {
415             set_int(check_pos, DAYSELECOR_DAY_POS_RIGHT);
416             check_bg_show();
417          }
418       }
419       program { name: "check,middle";
420          signal: "elm,pos,check,middle";
421          source: "elm";
422          script {
423             set_int(check_pos, DAYSELECOR_DAY_POS_MIDDLE);
424             check_bg_show();
425          }
426       }
427       program { name: "check,weekday";
428          signal: "elm,type,weekday,default";
429          source: "";
430          script {
431             set_int(check_type, DAYSELECOR_DAY_TYPE_WEEKDAY);
432             check_text_show();
433          }
434       }
435       program { name: "check,weekend,default";
436          signal: "elm,type,weekend,default";
437          source: "";
438          script {
439             set_int(check_type, DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT);
440             check_text_show();
441          }
442       }
443       program { name: "check,weekend,style1";
444          signal: "elm,type,weekend,style1";
445          source: "";
446          script {
447             set_int(check_type, DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1);
448             check_text_show();
449          }
450       }
451    }
452 }
453
454 #undef DAYSELECOR_DAY_POS_LEFT
455 #undef DAYSELECOR_DAY_POS_RIGHT
456 #undef DAYSELECOR_DAY_POS_MIDDLE
457 #undef DAYSELECOR_DAY_TYPE_WEEKDAY
458 #undef DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT
459 #undef DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1
460 #undef DAYSELECOR_DAY_STATE_DEFAULT
461 #undef DAYSELECOR_DAY_STATE_PRESSED
462 #undef DAYSELECOR_DAY_STATE_SELECTED
463 #undef DAYSELECTOR_DAY