c098b2df9dbf3ed3e56b908ff9d8d2b5c10e8b88
[apps/home/gallery.git] / res / edc / gl-segment.edc
1 /*
2   * Copyright 2012  Samsung Electronics Co., Ltd
3   *
4   * Licensed under the Flora License, Version 1.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *     http://www.tizenopensource.org/license
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16
17 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC 144 144 144 255
18 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 0 0 0 255
19 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 0 0 0 255
20 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 144 144 144 255
21 #define SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC 43 43 43 255
22 #define SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC 76 76 76 255
23
24 #define SEGMENT_CONTROL_TEXT_SIZE_INC 28
25 #define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
26 #define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
27
28 //################################################################
29 //Segment Control
30 //################################################################
31
32 group { name: "elm/segment_control/base/gallery/default";
33    images {
34       image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL COMP;
35    }
36 #define SEGMENT_TYPE_SINGLE 1
37 #define SEGMENT_TYPE_LEFT 2
38 #define SEGMENT_TYPE_MIDDLE 3
39 #define SEGMENT_TYPE_RIGHT 4
40 #define SEGMENT_STATE_NORMAL 1
41 #define SEGMENT_STATE_PRESSED 2
42 #define SEGMENT_STATE_SELECTED 3
43 #define SEGMENT_STATUS_ENABLED 0
44 #define SEGMENT_STATUS_DISABLED 1
45    parts {
46       part { name: "bg";
47          mouse_events: 0;
48          scale: 1;
49          description {
50             state: "default" 0.0;
51             min: 100 40;
52             rel1.offset: 0 0;
53             rel2.offset: 0 0;
54             image {
55                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL;
56                border: 5 5 5 5;
57                border_scale: 1;
58                middle: 1;
59             }
60          }
61       }
62    }
63 }
64 group { name: "elm/segment_control/item/gallery/default";
65    images {
66       image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL COMP;
67       image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_LEFT COMP;
68       image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_CENTRE COMP;
69       image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_RIGHT COMP;
70       image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_NORMAL COMP;
71       image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_01 COMP;
72       image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_02 COMP;
73       image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_03 COMP;
74       image: GALLERY_EDC_IMAGE_BTN_SGE_BODY COMP;
75    }
76    parts {
77       part { name: "base";
78          mouse_events: 0;
79          scale: 1;
80          description { state: "default" 0.0;
81             visible: 0;
82          }
83       }
84       part { name: "segment";
85          scale: 1;
86          description { state: "default" 0.0;
87             min: 1 1;
88             visible: 0;
89             align: 0.0 0.5;
90             rel1 {
91                to: "base";
92                relative: 0.0 0.0;
93                offset: 0 0;
94             }
95             rel2 {
96                to: "base";
97                relative: 1.0 1.0;
98                offset: 0 0;
99             }
100             image {
101                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL;
102                border: 5 5 5 5;
103                border_scale: 1;
104                middle: 1;
105             }
106          }
107          description { state: "default_single" 0.0;
108             inherit: "default" 0.0;
109             visible: 1;
110             image {
111                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL;
112                border: 5 5 5 5;
113             }
114          }
115          description { state: "default_left" 0.0;
116             inherit: "default" 0.0;
117             visible: 1;
118             image {
119                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_LEFT;
120                border:  5 2 5 5;
121             }
122          }
123          description { state: "default_right" 0.0;
124             inherit: "default" 0.0;
125             visible: 1;
126             image {
127                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_RIGHT;
128                border: 2 5 5 5;
129             }
130          }
131          description { state: "default_middle" 0.0;
132             inherit: "default" 0.0;
133             visible: 1;
134             image {
135             normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_CENTRE;
136             border: 0 0 7 7;
137             }
138          }
139          description { state: "pressed_single" 0.0;
140             inherit: "default" 0.0;
141             visible: 1;
142             image {
143                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_NORMAL;
144                border: 2 2 5 5;
145             }
146          }
147          description { state: "pressed_left" 0.0;
148             inherit: "default" 0.0;
149             visible: 1;
150             image {
151                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_01;
152                border:  5 2 5 5;
153             }
154          }
155          description { state: "pressed_right" 0.0;
156             inherit: "default" 0.0;
157             visible: 1;
158             image {
159                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_03;
160                border: 2 5 5 5;
161             }
162          }
163          description { state: "pressed_middle" 0.0;
164             inherit: "default" 0.0;
165             visible: 1;
166             image {
167                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_02;
168                border: 0 0 7 7;
169             }
170          }
171          description { state: "selected_single" 0.0;
172             inherit: "default" 0.0;
173             visible: 1;
174             image {
175                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_NORMAL;
176                border: 5 5 5 5;
177             }
178          }
179          description { state: "selected_left" 0.0;
180             inherit: "default" 0.0;
181             visible: 1;
182             image {
183                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_01;
184                border:  5 2 5 5;
185             }
186          }
187          description { state: "selected_right" 0.0;
188             inherit: "default" 0.0;
189             visible: 1;
190             image {
191                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_03;
192                border: 2 5 5 5;
193             }
194          }
195          description { state: "selected_middle" 0.0;
196             inherit: "default" 0.0;
197             visible: 1;
198             image {
199                normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_02;
200                border: 0 0 7 7;
201             }
202          }
203       }
204       part { name: "left_1pxl_padding";
205          type: RECT;
206          mouse_events: 0;
207          description { state: "default" 0.0;
208             visible: 0;
209             align: 0.0 0.5;
210             min: 1 0;
211             fixed: 1 0;
212             rel1 {
213                to: "base";
214                relative: 0.0 0.0;
215             }
216             rel2 {
217                to: "base";
218                relative: 0.0 1.0;
219             }
220             color: SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC;
221           }
222          description { state: "visible" 0.0;
223             inherit: "default" 0.0;
224             visible: 1;
225           }
226       }
227       part { name: "right_1pxl_padding";
228          type: RECT;
229          mouse_events: 0;
230          description { state: "default" 0.0;
231             visible: 0;
232             align: 1.0 0.5;
233             min: 1 0;
234             fixed: 1 0;
235             rel1 {
236                to: "base";
237                relative: 1.0 0.0;
238                offset: -1 0;
239             }
240             rel2 {
241                to: "base";
242                relative: 1.0 1.0;
243                offset: -1 0;
244             }
245             color: SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC;
246          }
247          description { state: "visible" 0.0;
248             inherit: "default" 0.0;
249             visible: 1;
250          }
251       }
252       part { name: "padding_frame";
253          type: RECT;
254          scale: 1;
255          mouse_events: 0;
256          description { state: "default" 0.0;
257             visible: 0;
258             /* Add a padding of 2 pxs in all directions */
259             rel1.offset: 2 2;
260             rel2.offset: -3 -3;
261          }
262       }
263       part { name: "icon.bg";
264          type: RECT;
265          scale: 1;
266          mouse_events: 0;
267          description { state: "default" 0.0;
268             visible: 0;
269             fixed: 1 0;
270             rel1.to: "elm.swallow.icon";
271             rel2.to: "elm.swallow.icon";
272          }
273       }
274       part { name: "padding_icon_text";
275          type: RECT;
276          scale: 1;
277          mouse_events: 0;
278          description { state: "default" 0.0; //when only icon or no icon is there
279             visible: 0;
280             align: 0.0 0.0;
281             rel1 {
282                to: "icon.bg";
283                relative: 1.0 0.0;
284             }
285             rel2 {
286                to: "icon.bg";
287                relative: 1.0 1.0;
288             }
289          }
290          description { state: "icononly" 0.0;
291             inherit: "default" 0.0;
292          }
293          description { state: "visible" 0.0; //when icon is visible
294             inherit: "default" 0.0;
295             rel2.offset: 2 0;
296          }
297       }
298       part { name: "elm.swallow.icon";
299          type: SWALLOW;
300          scale: 1;
301          description { state: "default" 0.0;
302             visible: 0;
303             align: 0.5 0.5;
304             rel1.to: "padding_frame";
305             rel2.to: "padding_frame";
306             rel2.relative: 0.0 0.0;
307             aspect: 1.0 1.0;
308             aspect_preference: BOTH;
309          }
310          description { state: "visible" 0.0;
311             inherit: "default" 0.0;
312             visible: 1;
313             rel2.relative: 0.3 1.0;
314          }
315          description { state: "icononly" 0.0;
316             inherit: "default" 0.0;
317             visible: 1;
318             rel2.relative: 1.0 1.0;
319          }
320       }
321       part { name: "elm.text";
322          type: TEXT;
323          mouse_events: 0;
324          scale: 1;
325          description {
326             state: "default" 0.0;
327             visible: 0;
328             fixed: 1 1;
329             min: 1 1;
330             rel1 {
331                to_x: "padding_icon_text";
332                relative: 1.0 0.0;
333             }
334             rel2.to: "padding_frame";
335             color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC;
336             text {
337                font: "Helvetica Neue:style=Medium";
338                ellipsis: 0.0;
339                fit: 1 1;
340                size: SEGMENT_CONTROL_TEXT_SIZE_INC;
341                size_range: SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC;
342                min: 0 1;
343             }
344          }
345          description { state: "normal" 0.0;
346             inherit: "default" 0.0;
347             visible: 1;
348          }
349          description { state: "pressed" 0.0;
350             inherit: "default" 0.0;
351             visible: 1;
352             color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC;
353          }
354          description { state: "selected" 0.0;
355             inherit: "default" 0.0;
356             visible: 1;
357             color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC;
358          }
359          description { state: "disabled" 0.0;
360             inherit: "default" 0.0;
361             visible: 1;
362             color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC;
363          }
364       }
365       part { name: "disabler";
366          repeat_events: 0;
367          scale: 1;
368          description { state: "default" 0.0;
369             visible: 0;
370             fixed: 1 1;
371             min: 1 1;
372             align: 0.0 0.5;
373             rel1 {
374                relative: 0.0 0.0;
375                to: "segment";
376             }
377             rel2 {
378                relative: 1.0 1.0;
379                to: "segment";
380             }
381             color: 255 255 255 150;
382          }
383          description { state: "disabled_single" 0.0;
384             inherit: "default" 0.0;
385             visible: 1;
386             image {
387                normal: GALLERY_EDC_IMAGE_BTN_SGE_BODY;
388                border: 5 5 5 5;
389             }
390          }
391          description { state: "disabled_left" 0.0;
392             inherit: "default" 0.0;
393             visible: 1;
394             image {
395                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_LEFT;
396                border:  5 2 5 5;
397             }
398          }
399          description { state: "disabled_right" 0.0;
400             inherit: "default" 0.0;
401             visible: 1;
402             image {
403                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_RIGHT;
404                border: 2 5 5 5;
405             }
406          }
407          description { state: "disabled_middle" 0.0;
408             inherit: "default" 0.0;
409             visible: 1;
410             image {
411                normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_CENTRE;
412                border: 0 0 7 7;
413             }
414          }
415       }
416    }
417    programs {
418       script {
419          public seg_type; // Single, Left, Middle, Right.
420          public seg_state; // Normal/Default, Pressed, Selected.
421          public seg_status;// Enabled/Default, Disabled
422
423          public update_state() {
424             new type, state, disabled;
425             type = get_int(seg_type);
426             state = get_int(seg_state);
427             disabled = get_int(seg_status);
428
429             if(state == SEGMENT_STATE_NORMAL)
430               {
431                  if(type == SEGMENT_TYPE_SINGLE)
432                    {
433                       set_state(PART:"segment", "default_single", 0.0);
434                       set_state(PART:"left_1pxl_padding", "default", 0.0);
435                       set_state(PART:"right_1pxl_padding", "default", 0.0);
436                    }
437                  else if(type == SEGMENT_TYPE_LEFT)
438                    {
439                       set_state(PART:"segment", "default_left", 0.0);
440                       set_state(PART:"left_1pxl_padding", "default", 0.0);
441                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
442                    }
443                  else if(type == SEGMENT_TYPE_MIDDLE)
444                    {
445                       set_state(PART:"segment", "default_middle", 0.0);
446                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
447                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
448                    }
449                  else if(type == SEGMENT_TYPE_RIGHT)
450                    {
451                       set_state(PART:"segment", "default_right", 0.0);
452                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
453                       set_state(PART:"right_1pxl_padding", "default", 0.0);
454                    }
455                  set_state(PART:"elm.text", "normal", 0.0);
456               }
457             else if(state == SEGMENT_STATE_PRESSED)
458               {
459                  if(type == SEGMENT_TYPE_SINGLE)
460                    {
461                       set_state(PART:"segment", "pressed_single", 0.0);
462                       set_state(PART:"left_1pxl_padding", "default", 0.0);
463                       set_state(PART:"right_1pxl_padding", "default", 0.0);
464                    }
465                  else if(type == SEGMENT_TYPE_LEFT)
466                    {
467                       set_state(PART:"segment", "pressed_left", 0.0);
468                       set_state(PART:"left_1pxl_padding", "default", 0.0);
469                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
470                    }
471                  else if(type == SEGMENT_TYPE_MIDDLE)
472                    {
473                       set_state(PART:"segment", "pressed_middle", 0.0);
474                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
475                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
476                    }
477                  else if(type == SEGMENT_TYPE_RIGHT)
478                    {
479                       set_state(PART:"segment", "pressed_right", 0.0);
480                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
481                       set_state(PART:"right_1pxl_padding", "default", 0.0);
482                    }
483                  set_state(PART:"elm.text", "pressed", 0.0);
484               }
485             else if(state == SEGMENT_STATE_SELECTED)
486               {
487                  if(type == SEGMENT_TYPE_SINGLE)
488                    {
489                       set_state(PART:"segment", "selected_single", 0.0);
490                       set_state(PART:"left_1pxl_padding", "default", 0.0);
491                       set_state(PART:"right_1pxl_padding", "default", 0.0);
492                    }
493                  else if(type == SEGMENT_TYPE_LEFT)
494                    {
495                       set_state(PART:"segment", "selected_left", 0.0);
496                       set_state(PART:"left_1pxl_padding", "default", 0.0);
497                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
498                    }
499                  else if(type == SEGMENT_TYPE_MIDDLE)
500                    {
501                       set_state(PART:"segment", "selected_middle", 0.0);
502                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
503                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
504                    }
505                  else if(type == SEGMENT_TYPE_RIGHT)
506                    {
507                       set_state(PART:"segment", "selected_right", 0.0);
508                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
509                       set_state(PART:"right_1pxl_padding", "default", 0.0);
510                    }
511                  set_state(PART:"elm.text", "selected", 0.0);
512               }
513             if(disabled == SEGMENT_STATUS_DISABLED)
514               {
515                  if(type == SEGMENT_TYPE_SINGLE)
516                    {
517                       set_state(PART:"disabler", "disabled_single", 0.0);
518                    }
519                  else if(type == SEGMENT_TYPE_LEFT)
520                    {
521                       set_state(PART:"disabler", "disabled_left", 0.0);
522                       set_state(PART:"left_1pxl_padding", "default", 0.0);
523                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
524                    }
525                  else if(type == SEGMENT_TYPE_MIDDLE)
526                    {
527                       set_state(PART:"disabler", "disabled_middle", 0.0);
528                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
529                       set_state(PART:"right_1pxl_padding", "visible", 0.0);
530                    }
531                  else if(type == SEGMENT_TYPE_RIGHT)
532                    {
533                       set_state(PART:"disabler", "disabled_right", 0.0);
534                       set_state(PART:"left_1pxl_padding", "visible", 0.0);
535                       set_state(PART:"right_1pxl_padding", "default", 0.0);
536                    }
537                  set_state(PART:"elm.text", "disabled", 0.0);
538               }
539             else
540               {
541                  set_state(PART:"disabler", "default", 0.0);
542               }
543          }
544       }
545       program {
546          name: "segment_type_s";
547          signal: "elm,type,segment,single";
548          source: "elm";
549          script {
550             set_int(seg_type, SEGMENT_TYPE_SINGLE);
551             update_state();
552          }
553       }
554       program {
555          name: "segment_type_l";
556          signal: "elm,type,segment,left";
557          source: "elm";
558          script {
559             set_int(seg_type, SEGMENT_TYPE_LEFT);
560             update_state();
561          }
562       }
563       program {
564          name: "segment_type_m";
565          signal: "elm,type,segment,middle";
566          source: "elm";
567          script {
568             set_int(seg_type, SEGMENT_TYPE_MIDDLE);
569             update_state();
570          }
571       }
572       program {
573          name: "segment_type_r";
574          signal: "elm,type,segment,right";
575          source: "elm";
576          script {
577             set_int(seg_type, SEGMENT_TYPE_RIGHT);
578             update_state();
579          }
580       }
581       program {
582          name: "normal_segment";
583          signal: "elm,state,segment,normal";
584          source: "elm";
585          script {
586             set_int(seg_state, SEGMENT_STATE_NORMAL);
587             update_state();
588          }
589       }
590       program {
591          name: "pressed_segment";
592          signal: "elm,state,segment,pressed";
593          source: "elm";
594          script {
595             set_int(seg_state, SEGMENT_STATE_PRESSED);
596             update_state();
597          }
598       }
599       program {
600          name: "selected_segment";
601          signal: "elm,state,segment,selected";
602          source: "elm";
603          script {
604             set_int(seg_state, SEGMENT_STATE_SELECTED);
605             update_state();
606          }
607       }
608       program { name: "disable_segment";
609          signal: "elm,state,disabled";
610          source: "elm";
611          script {
612             set_int(seg_status, SEGMENT_STATUS_DISABLED);
613             update_state();
614          }
615       }
616       program { name: "enable_segment";
617          signal: "elm,state,enabled";
618          source: "elm";
619          script {
620             set_int(seg_status, SEGMENT_STATUS_ENABLED);
621             update_state();
622          }
623       }
624       program { name: "text_show";
625          signal: "elm,state,text,visible";
626          source: "elm";
627          script {
628             new st[31];
629             new Float:vl;
630             get_state(PART:"elm.swallow.icon", st, 30, vl);
631             if (!strcmp(st, "icononly"))
632               {
633                  set_state(PART:"elm.swallow.icon", "visible", 0.0);
634                  set_state(PART:"padding_icon_text", "visible", 0.0);
635               }
636             get_state(PART:"elm.text", st, 30, vl);
637             if (!strcmp(st, "selected"))
638                set_state(PART:"elm.text", "selected", 0.0);
639             else
640                set_state(PART:"elm.text", "normal", 0.0);
641          }
642       }
643       program { name: "text_hide";
644          signal: "elm,state,text,hidden";
645          source: "elm";
646          script {
647             new st[31];
648             new Float:vl;
649             get_state(PART:"elm.swallow.icon", st, 30, vl);
650             if (!strcmp(st, "visible"))
651               {
652                  set_state(PART:"elm.swallow.icon", "icononly", 0.0);
653                  set_state(PART:"padding_icon_text", "icononly", 0.0);
654               }
655             set_state(PART:"elm.text", "default", 0.0);
656          }
657       }
658       program { name: "icon_show";
659          signal: "elm,state,icon,visible";
660          source: "elm";
661          script {
662             new st[31];
663             new Float:vl;
664             get_state(PART:"elm.text", st, 30, vl);
665             if ((!strcmp(st, "normal")) || (!strcmp(st, "selected")))
666               {
667                  set_state(PART:"elm.swallow.icon", "visible", 0.0);
668                  set_state(PART:"padding_icon_text", "visible", 0.0);
669               }
670             else
671               {
672                  set_state(PART:"elm.swallow.icon", "icononly", 0.0);
673                  set_state(PART:"padding_icon_text", "icononly", 0.0);
674               }
675          }
676       }
677       program { name: "icon_hide";
678          signal: "elm,state,icon,hidden";
679          source: "elm";
680          action:  STATE_SET "default" 0.0;
681          target: "elm.swallow.icon";
682       }
683    }
684 #undef SEGMENT_TYPE_SINGLE
685 #undef SEGMENT_TYPE_LEFT
686 #undef SEGMENT_TYPE_MIDDLE
687 #undef SEGMENT_TYPE_RIGHT
688 #undef SEGMENT_STATE_NORMAL
689 #undef SEGMENT_STATE_PRESSED
690 #undef SEGMENT_STATE_SELECTED
691 #undef SEGMENT_STATUS_ENABLED
692 #undef SEGMENT_STATUS_DISABLED
693 }