Merge "[genlist] re-add item select & item update changes"
[framework/uifw/elementary.git] / data / themes / widgets / menu.edc
1    group { name: "elm/menu/item/default";
2        images {
3            image: "bt_base1.png" COMP;
4            image: "bt_base2.png" COMP;
5            image: "bt_hilight.png" COMP;
6            image: "bt_shine.png" COMP;
7            image: "bt_glow.png" COMP;
8            image: "bt_dis_base.png" COMP;
9            image: "bt_dis_hilight.png" COMP;
10        }
11        script {
12             public menu_text_visible; //0:hide (default), 1:visible
13             public menu_disable; //0:enable, 1:disable
14        }
15        parts {
16            part { name: "item_image";
17                mouse_events: 1;
18                description { state: "default" 0.0;
19                    color: 255 255 255 0;
20                    image {
21                        normal: "bt_base2.png";
22                        border: 7 7 7 7;
23                    }
24                    image.middle: SOLID;
25                }
26                description { state: "visible" 0.0;
27                    inherit: "default" 0.0;
28                    color: 255 255 255 255;
29                }
30                description { state: "clicked" 0.0;
31                    inherit: "default" 0.0;
32                    inherit: "visible" 0.0;
33                    image.normal: "bt_base1.png";
34                    image.middle: SOLID;
35                }
36                description { state: "disabled" 0.0;
37                    inherit:  "default" 0.0;
38                }
39            }
40            part { name: "item_image_disabled";
41                mouse_events: 1;
42                description { state: "default" 0.0;
43                    color: 255 255 255 0;
44                    image {
45                        normal: "bt_dis_base.png";
46                        border: 4 4 4 4;
47                    }
48                    image.middle: SOLID;
49                }
50                description { state: "disabled" 0.0;
51                    inherit:  "default" 0.0;
52                    color: 255 255 255 255;
53                }
54            }
55            part { name: "elm.swallow.content";
56                type: SWALLOW;
57                description { state: "default" 0.0;
58                    fixed: 1 0;
59                    visible: 1;
60                    align: 0.0 0.5;
61                    rel1.offset: 4 4;
62                    rel2.offset: 3 -5;
63                    rel2.relative: 0.0 1.0;
64                    aspect: 1.0 1.0;
65                    aspect_preference: VERTICAL;
66                    rel2.offset: 4 -5;
67                }
68            }
69            part {
70                name:          "elm.text";
71                type:          TEXT;
72                mouse_events:  0;
73                scale: 1;
74                description { state: "default" 0.0;
75                    visible: 0;
76                    rel1.to_x: "elm.swallow.content";
77                    rel1.relative: 1.0 0.0;
78                    rel1.offset: 5 7;
79                    rel2.offset: -10 -8;
80                    color: 0 0 0 255;
81                    text {
82                        font:     "Sans,Edje-Vera";
83                        size:     10;
84                        min:      1 1;
85                        align:    0.0 0.5;
86                        text_class: "menu_item";
87                    }
88                }
89                description { state: "visible" 0.0;
90                    inherit: "default" 0.0;
91                    visible: 1;
92                    text.min: 1 1;
93                }
94                description { state: "selected" 0.0;
95                    inherit: "default" 0.0;
96                    inherit: "visible" 0.0;
97                    color: 254 254 254 255;
98                }
99                description { state: "disabled" 0.0;
100                    inherit: "default" 0.0;
101                    color: 0 0 0 128;
102                }
103                description { state: "disabled_visible" 0.0;
104                    inherit: "default" 0.0;
105                    inherit: "visible" 0.0;
106                    color: 0 0 0 128;
107                }
108            }
109            part {          name: "over1";
110                mouse_events: 0;
111                description { state: "default" 0.0;
112                    color: 255 255 255 0;
113                    rel2.relative: 1.0 0.5;
114                    image {
115                        normal: "bt_hilight.png";
116                        border: 7 7 7 0;
117                    }
118                }
119                description { state: "visible" 0.0;
120                    inherit:  "default" 0.0;
121                    color: 255 255 255 255;
122                }
123                description { state: "disabled" 0.0;
124                    inherit:  "default" 0.0;
125                }
126            }
127            part {          name: "over_disabled";
128                mouse_events: 0;
129                description { state: "default" 0.0;
130                    color: 255 255 255 0;
131                    rel2.relative: 1.0 0.5;
132                    image {
133                        normal: "bt_dis_hilight.png";
134                        border: 4 4 4 0;
135                    }
136                }
137                description { state: "disabled" 0.0;
138                    inherit:  "default" 0.0;
139                    color: 255 255 255 255;
140                }
141            }
142            part { name: "over2";
143                mouse_events: 1;
144                repeat_events: 1;
145                ignore_flags: ON_HOLD;
146                description { state: "default" 0.0;
147                    image {
148                        normal: "bt_shine.png";
149                        border: 7 7 7 7;
150                    }
151                }
152                description { state: "disabled" 0.0;
153                    inherit:  "default" 0.0;
154                    visible: 0;
155                }
156            }
157            part { name: "over3";
158                mouse_events: 1;
159                repeat_events: 1;
160                description { state: "default" 0.0;
161                    color: 255 255 255 0;
162                    image {
163                        normal: "bt_glow.png";
164                        border: 12 12 12 12;
165                    }
166                    fill.smooth : 0;
167                }
168                description { state: "clicked" 0.0;
169                    inherit:  "default" 0.0;
170                    visible: 1;
171                    color: 255 255 255 255;
172                }
173            }
174            part { name: "disabler";
175                type: RECT;
176                description { state: "default" 0.0;
177                    color: 0 0 0 0;
178                    visible: 0;
179                }
180                description { state: "disabled" 0.0;
181                    inherit: "default" 0.0;
182                    visible: 1;
183                }
184            }
185        }
186        programs {
187           //
188            program {
189                name:   "item_mouse_in";
190                signal: "mouse,in";
191                source: "over2";
192                action: SIGNAL_EMIT "elm,action,activate" "";
193                after: "item_mouse_in_2";
194                after: "item_mouse_in_3";
195            }
196            program {
197                name:   "item_mouse_in_2";
198                transition: DECELERATE 0.5;
199                script {
200                    new v, d;
201                    v = get_int(menu_text_visible);
202                    d = get_int(menu_disable);
203
204                    if (v==1 && d==0)
205                         run_program(PROGRAM:"selected_text");
206                }
207            }
208            program {
209                name:   "item_mouse_in_3";
210                action : STATE_SET "visible" 0.0;
211                target: "item_image";
212                target: "over1";
213                transition: DECELERATE 0.5;
214            }
215            program {
216                name:   "selected_text";
217                action: STATE_SET "selected" 0.0;
218                target: "elm.text";
219                transition: DECELERATE 0.5;
220            }
221            //
222
223            //
224            program {
225                name:   "item_mouse_out";
226                signal: "mouse,out";
227                source: "over2";
228                action: SIGNAL_EMIT "elm,action,inactivate" "";
229                after: "item_mouse_out_2";
230                after: "item_mouse_out_3";
231            }
232            program {
233                name:   "item_mouse_out_2";
234                transition: DECELERATE 0.5;
235                script {
236                    new v, d;
237                    v = get_int(menu_text_visible);
238                    d = get_int(menu_disable);
239
240                    if (v==1 && d==0)
241                         run_program(PROGRAM:"visible_text");
242                }
243            }
244            program {
245                name:   "item_mouse_out_3";
246                action: STATE_SET "default" 0.0;
247                target: "item_image";
248                target: "over1";
249                transition: DECELERATE 0.5;
250            }
251            program {
252                name:   "visible_text";
253                action: STATE_SET "visible" 0.0;
254                target: "elm.text";
255                transition: DECELERATE 0.5;
256            }
257            //
258
259            program {
260                name:   "item_unclick";
261                signal: "mouse,up,1";
262                source: "over2";
263                action: STATE_SET "visible" 0.0;
264                target: "item_image";
265            }
266            program {
267                name:   "item_click2";
268                signal: "mouse,down,1";
269                source: "over3";
270                action: STATE_SET "clicked" 0.0;
271                target: "over3";
272            }
273            program {
274                name:   "item_unclick2";
275                signal: "mouse,up,1";
276                source: "over3";
277                action: STATE_SET "default" 0.0;
278                transition: DECELERATE 0.5;
279                target: "over3";
280            }
281            program {
282                name:   "item_unclick3";
283                signal: "mouse,up,1";
284                source: "over2";
285                action: SIGNAL_EMIT "elm,action,click" "";
286            }
287            program { name: "text_show";
288                signal: "elm,state,text,visible";
289                source: "elm";
290                script {
291                    set_int(menu_text_visible, 1);
292                    set_state(PART:"elm.text", "visible", 0.0);
293                }
294            }
295            program { name: "text_hide";
296                signal: "elm,state,text,hidden";
297                source: "elm";
298                script {
299                    set_int(menu_text_visible, 0);
300                    set_state(PART:"elm.text", "default", 0.0);
301                }
302            }
303            program { name: "disable";
304                signal: "elm,state,disabled";
305                source: "elm";
306                action: STATE_SET "disabled" 0.0;
307                target: "item_image";
308                target: "item_image_disabled";
309                target: "over1";
310                target: "over2";
311                target: "over_disabled";
312                target: "disabler";
313                after: "disable_text";
314            }
315            program { name: "disable_text";
316                script {
317                    new v;
318                    v = get_int(menu_text_visible);
319                    if (v==1)
320                     set_state(PART:"elm.text", "disabled_visible", 0.0);
321                    else if (v==0)
322                     set_state(PART:"elm.text", "disabled", 0.0);
323                    set_int(menu_disable, 1);
324                }
325            }
326            program { name: "item_select";
327                signal: "elm,state,selected";
328                source: "elm";
329                after: "item_mouse_in_2";
330                after: "item_mouse_in_3";
331            }
332            program { name: "item_unselect";
333                signal: "elm,state,unselected";
334                source: "elm";
335                after: "item_mouse_out_2";
336                after: "item_mouse_out_3";
337            }
338            program { name: "enable";
339                signal: "elm,state,enabled";
340                source: "elm";
341                action: STATE_SET "default" 0.0;
342                target: "item_image";
343                target: "item_image_disabled";
344                target: "over1";
345                target: "over2";
346                target: "over_disabled";
347                target: "disabler";
348                after: "enable_text";
349            }
350            program { name: "enable_text";
351                script {
352                    new v;
353                    v = get_int(menu_text_visible);
354                    if (v==1)
355                     set_state(PART:"elm.text", "visible", 0.0);
356                    else  if (v==0)
357                     set_state(PART:"elm.text", "default", 0.0);
358                    set_int(menu_disable, 0);
359                }
360            }
361        }
362    }
363
364    group { name: "elm/menu/item_with_submenu/default";
365        images {
366            image: "bt_base1.png" COMP;
367            image: "bt_base2.png" COMP;
368            image: "bt_hilight.png" COMP;
369            image: "bt_shine.png" COMP;
370            image: "bt_glow.png" COMP;
371            image: "bt_dis_base.png" COMP;
372            image: "bt_dis_hilight.png" COMP;
373            image: "arrow_right.png" COMP;
374            image: "arrow_left.png" COMP;
375        }
376        script {
377             public menu_text_visible; //0:hide (default), 1:visible
378             public menu_disable; //0:enable, 1:disable
379        }
380        parts {
381            part { name: "item_image";
382                mouse_events: 1;
383                description { state: "default" 0.0;
384                    color: 255 255 255 0;
385                    image {
386                        normal: "bt_base2.png";
387                        border: 7 7 7 7;
388                    }
389                    image.middle: SOLID;
390                }
391                description { state: "visible" 0.0;
392                    inherit: "default" 0.0;
393                    color: 255 255 255 255;
394                }
395                description { state: "clicked" 0.0;
396                    inherit: "default" 0.0;
397                    inherit: "visible" 0.0;
398                    image.normal: "bt_base1.png";
399                    image.middle: SOLID;
400                }
401                description { state: "disabled" 0.0;
402                    inherit:  "default" 0.0;
403                }
404            }
405            part { name: "item_image_disabled";
406                mouse_events: 1;
407                description { state: "default" 0.0;
408                    color: 255 255 255 0;
409                    image {
410                        normal: "bt_dis_base.png";
411                        border: 4 4 4 4;
412                    }
413                    image.middle: SOLID;
414                }
415                description { state: "disabled" 0.0;
416                    inherit:  "default" 0.0;
417                    color: 255 255 255 255;
418                }
419            }
420            part { name: "arrow";
421                mouse_events: 1;
422                description { state: "default" 0.0;
423                    color: 255 255 255 255;
424                    align: 1.0 0.5;
425                    aspect: 1 1;
426                    aspect_preference: BOTH;
427                    image {
428                        normal: "arrow_right.png";
429                    }
430                }
431                description { state: "rtl" 0.0;
432                   inherit: "default" 0.0;
433                   image.normal: "arrow_left.png";
434                }
435            }
436            part { name: "elm.swallow.content";
437                type: SWALLOW;
438                description { state: "default" 0.0;
439                    fixed: 1 0;
440                    visible: 1;
441                    align: 0.0 0.5;
442                    rel1.offset: 4 4;
443                    rel2.offset: 3 -5;
444                    rel2.relative: 0.0 1.0;
445                    aspect: 1.0 1.0;
446                    aspect_preference: VERTICAL;
447                    rel2.offset: 4 -5;
448                }
449            }
450            part {
451                name:          "elm.text";
452                type:          TEXT;
453                mouse_events:  0;
454                scale: 1;
455                description { state: "default" 0.0;
456                    visible: 0;
457                    rel1.to_x: "elm.swallow.content";
458                    rel1.relative: 1.0 0.0;
459                    rel1.offset: 5 7;
460                    rel2.offset: -10 -8;
461                    color: 0 0 0 255;
462                    text {
463                        font:     "Sans,Edje-Vera";
464                        size:     10;
465                        min:      1 1;
466                        align:    0.0 0.5;
467                        text_class: "menu_item";
468                    }
469                }
470                description { state: "visible" 0.0;
471                    inherit: "default" 0.0;
472                    visible: 1;
473                    text.min: 1 1;
474                }
475                description { state: "selected" 0.0;
476                    inherit: "default" 0.0;
477                    inherit: "visible" 0.0;
478                    color: 254 254 254 255;
479                }
480                description { state: "disabled" 0.0;
481                    inherit: "default" 0.0;
482                    color: 0 0 0 128;
483                }
484                description { state: "disabled_visible" 0.0;
485                    inherit: "default" 0.0;
486                    inherit: "visible" 0.0;
487                    color: 0 0 0 128;
488                }
489            }
490            part {          name: "over1";
491                mouse_events: 0;
492                description { state: "default" 0.0;
493                    color: 255 255 255 0;
494                    rel2.relative: 1.0 0.5;
495                    image {
496                        normal: "bt_hilight.png";
497                        border: 7 7 7 0;
498                    }
499                }
500                description { state: "visible" 0.0;
501                    inherit:  "default" 0.0;
502                    color: 255 255 255 255;
503                }
504                description { state: "disabled" 0.0;
505                    inherit:  "default" 0.0;
506                }
507            }
508            part { name: "over_disabled";
509                mouse_events: 0;
510                description { state: "default" 0.0;
511                    color: 255 255 255 0;
512                    rel2.relative: 1.0 0.5;
513                    image {
514                        normal: "bt_dis_hilight.png";
515                        border: 4 4 4 0;
516                    }
517                }
518                description { state: "disabled" 0.0;
519                    inherit:  "default" 0.0;
520                    color: 255 255 255 255;
521                }
522            }
523            part { name: "over2";
524                mouse_events: 1;
525                repeat_events: 1;
526                ignore_flags: ON_HOLD;
527                description { state: "default" 0.0;
528                    image {
529                        normal: "bt_shine.png";
530                        border: 7 7 7 7;
531                    }
532                }
533                description { state: "disabled" 0.0;
534                    inherit:  "default" 0.0;
535                    visible: 0;
536                }
537            }
538            part { name: "over3";
539                mouse_events: 1;
540                repeat_events: 1;
541                description { state: "default" 0.0;
542                    color: 255 255 255 0;
543                    image {
544                        normal: "bt_glow.png";
545                        border: 12 12 12 12;
546                    }
547                    fill.smooth : 0;
548                }
549                description { state: "clicked" 0.0;
550                    inherit:  "default" 0.0;
551                    visible: 1;
552                    color: 255 255 255 255;
553                }
554            }
555            part { name: "disabler";
556                type: RECT;
557                description { state: "default" 0.0;
558                    color: 0 0 0 0;
559                    visible: 0;
560                }
561                description { state: "disabled" 0.0;
562                    inherit: "default" 0.0;
563                    visible: 1;
564                }
565            }
566        }
567        programs {
568            //
569            program {
570                name:   "item_mouse_in";
571                signal: "mouse,in";
572                source: "over2";
573                action: SIGNAL_EMIT "elm,action,activate" "";
574                after: "item_mouse_in_2";
575                after: "item_mouse_in_3";
576            }
577            program {
578                name:   "item_mouse_in_2";
579                transition: DECELERATE 0.5;
580                script {
581                    new v, d;
582                    v = get_int(menu_text_visible);
583                    d = get_int(menu_disable);
584
585                    if (v==1 && d==0)
586                         run_program(PROGRAM:"selected_text");
587                }
588            }
589            program {
590                name:   "item_mouse_in_3";
591                action : STATE_SET "visible" 0.0;
592                target: "item_image";
593                target: "over1";
594                transition: DECELERATE 0.5;
595            }
596            program {
597                name:   "selected_text";
598                action: STATE_SET "selected" 0.0;
599                target: "elm.text";
600                transition: DECELERATE 0.5;
601            }
602            //
603
604            //
605            program {
606                name:   "item_mouse_out";
607                signal: "mouse,out";
608                source: "over2";
609                after: "item_mouse_out_2";
610                after: "item_mouse_out_3";
611            }
612            program {
613                name:   "item_mouse_out_2";
614                transition: DECELERATE 0.5;
615                script {
616                    new v, d;
617                    v = get_int(menu_text_visible);
618                    d = get_int(menu_disable);
619
620                    if (v==1 && d==0)
621                         run_program(PROGRAM:"visible_text");
622                }
623            }
624            program {
625                name:   "item_mouse_out_3";
626                action: STATE_SET "default" 0.0;
627                target: "item_image";
628                target: "over1";
629                transition: DECELERATE 0.5;
630            }
631            program {
632                name:   "visible_text";
633                action: STATE_SET "visible" 0.0;
634                target: "elm.text";
635                transition: DECELERATE 0.5;
636            }
637            //
638
639            program {
640                name:   "item_unclick";
641                signal: "mouse,up,1";
642                source: "over2";
643                action: STATE_SET "visible" 0.0;
644                target: "item_image";
645            }
646            program {
647                name:   "item_click2";
648                signal: "mouse,down,1";
649                source: "over3";
650                action: STATE_SET "clicked" 0.0;
651                target: "over3";
652            }
653            program {
654                name:   "item_unclick2";
655                signal: "mouse,up,1";
656                source: "over3";
657                action: STATE_SET "default" 0.0;
658                transition: DECELERATE 0.5;
659                target: "over3";
660            }
661            program {
662                name:   "item_unclick3";
663                signal: "mouse,up,1";
664                source: "over2";
665                action: SIGNAL_EMIT "elm,action,click" "";
666            }
667            program {
668                name:   "menu_open";
669                signal: "mouse,in";
670                source: "over2";
671                action: SIGNAL_EMIT "elm,action,open" "";
672            }
673             program { name: "text_show";
674                signal: "elm,state,text,visible";
675                source: "elm";
676                script {
677                    set_int(menu_text_visible, 1);
678                    set_state(PART:"elm.text", "visible", 0.0);
679                }
680            }
681            program { name: "text_hide";
682                signal: "elm,state,text,hidden";
683                source: "elm";
684                script {
685                    set_int(menu_text_visible, 0);
686                    set_state(PART:"elm.text", "default", 0.0);
687                }
688            }
689            program { name: "disable";
690                signal: "elm,state,disabled";
691                source: "elm";
692                action: STATE_SET "disabled" 0.0;
693                target: "item_image";
694                target: "item_image_disabled";
695                target: "over1";
696                target: "over2";
697                target: "over_disabled";
698                target: "disabler";
699                after: "disable_text";
700            }
701            program { name: "disable_text";
702                script {
703                    new st[31];
704                    new Float:vl;
705                    get_state(PART:"elm.text", st, 30, vl);
706                    if (!strcmp(st, "visible"))
707                    set_state(PART:"elm.text", "disabled_visible", 0.0);
708                    else if (!strcmp(st, "default"))
709                    set_state(PART:"elm.text", "disabled", 0.0);
710                }
711            }
712            program { name: "enable";
713                signal: "elm,state,enabled";
714                source: "elm";
715                action: STATE_SET "default" 0.0;
716                target: "item_image";
717                target: "item_image_disabled";
718                target: "over1";
719                target: "over2";
720                target: "over_disabled";
721                target: "disabler";
722                after: "enable_text";
723            }
724            program { name: "enable_text";
725                script {
726                    new v;
727                    v = get_int(menu_text_visible);
728                    if (v==1)
729                     set_state(PART:"elm.text", "visible", 0.0);
730                    else  if (v==0)
731                     set_state(PART:"elm.text", "default", 0.0);
732                    set_int(menu_disable, 0);
733                }
734            }
735            program { name: "to_rtl";
736                signal: "edje,state,rtl";
737                source: "edje";
738                action: STATE_SET "rtl" 0.0;
739                target: "arrow";
740            }
741            program { name: "to_ltr";
742                signal: "edje,state,ltr";
743                source: "edje";
744                action: STATE_SET "default" 0.0;
745                target: "arrow";
746            }
747        }
748    }
749
750    group { name: "elm/menu/separator/default";
751        images {
752            image: "separator_h.png" COMP;
753        }
754        parts {
755            part { name: "separator"; // separator group
756                description { state: "default" 0.0;
757                    min: 2 2;
758                    rel1.offset: 4 4;
759                    rel2.offset: -5 -5;
760                    image {
761                        normal: "separator_h.png";
762                    }
763                    fill {
764                        smooth: 0;
765                    }
766                }
767            }
768        }
769    }