a831ae649556d0edf87ac23e9d1a76af9e061c9a
[platform/core/uifw/e17.git] / data / themes / samsung.edc
1 // TODO:
2 // Add group{} locations to all sections. eg. "widget/preview" is found in Wallpaper selector"
3 //      Icons:
4 //              EFM - All popup icons ... eg, paste copy delete properties
5 //              Icons for Menus modules
6 //              Icon for Edge Bindings
7 //              Icon for Modes?
8 //
9
10 /*
11  * So how do themes work?
12  *
13  * Themes DECLARE objects (groups of parts) inside a 'collections' section.
14  * Each of these groups are an element of a theme - much like an image in a
15  * web page with <img src=blah.jpg>, but MUCH more powerful. They can scale
16  * without just being stretched or tiled, they can react to all sorts of events
17  * from the user (mouse for example) or other logical events (like being shown
18  * or hidden, etc.) or synthetic signals from enlightenment itself indicating
19  * some new state.
20  *
21  * Each group is split into a parts section that contains all the elements
22  * that make up that group, and how they are laid out. Each part can have
23  * multiple states - described in description sections. There must always be
24  * at least a default description of value 0.0. After this there may possibly
25  * be a programs section. This defines behavior and how the group will react
26  * to events/signals.
27  *
28  * A theme is simply made up of a LOT of these. If a group is not provided in
29  * the theme you are using, it will fall back to the default theme to get the
30  * element. It is assumed the default theme is 100% complete and provides
31  * everything E needs. If this is not the case, there will be problems, so
32  * replace the default theme with great care. As long as the theme you make is
33  * just a normal "overlay" (and falls back to the default where things are
34  * missing) Things will be fairly safe. If you want to make a full default
35  * replacement you will need to methodically go through all of this file
36  * and make sure you have replaced/provided everything here.
37  */
38
39 /* Specturm used in all the gradient icons
40  * This needs to be defined outside of the collections
41  *
42  * FIXME: this is bad. namespacing! FIXME!
43  */
44 /*
45 spectra {
46    spectrum { name: "black_to_trans";
47       color: 0 0 0 255 1;
48       color: 0 0 0 0 1;
49    }
50 }
51 */
52 /*
53  * this section defined all the theme elements (a collection of groupings of
54  * parts (images, text, rects etc.))
55  */
56 collections { /* begin the collection of edje groups that are in this file */
57
58 /////////////////////////////////////////////////////////////////////////////
59    /*** DEFAULT WALLPAPER ***/
60    group { name: "e/desktop/background"; /* the name of the group */
61       /* this section defines that images are to be included and how to
62        * encode them */
63       /* this section actually contains the list of parts from bottom to top
64        * (defining the layering/stacking order) */
65       parts {
66          part { name: "background_image"; /* this is the base background */
67             type: RECT;
68             description { state: "default" 0.0; /* its default state */
69                color: 0 0 0 255;
70             }
71          }
72       }
73    }
74
75    group { name: "e/desktop/background/scrollframe";
76       parts {
77          part { name: "clipper";
78             type: RECT;
79             mouse_events: 0;
80             description { state: "default" 0.0;
81             }
82          }
83          part { name: "e.swallow.content";
84             clip_to: "clipper";
85             type: SWALLOW;
86             description { state: "default" 0.0;
87                rel1.offset: 0 0;
88                rel2 {
89                   relative: 0.0  0.0;
90                   offset:   -1   -1;
91                }
92             }
93          }
94       }
95    }
96
97 /////////////////////////////////////////////////////////////////////////////
98    /*** DEFAULT WINDOW BORDER ***/
99    group { name: "e/widgets/border/default/border";
100       alias: "e/widgets/border/shaped/border";
101       alias: "e/widgets/border/noresize/border";
102       alias: "e/widgets/border/dialog/border";
103       alias: "e/widgets/border/noresize_dialog/border";
104       alias: "e/widgets/border/pixel/border";
105       parts {
106          part { name: "top";
107             mouse_events: 0; /* accept no mouse events here */
108             type: RECT;
109             description { state: "default" 0.0;
110                color: 0 0 0 255;
111                rel1 { /* this defines the top-left (rel1) point of the part
112                        * and where it is placed. the below values are
113                        * actually the default values, so there is no need
114                        * to actually declare them. */
115                   relative: 0.0 0.0; /* make this point relative to the top
116                                       * left of the whole eje object (there
117                                       * is no to: section so it's the whole
118                                       * object). note that the point is
119                                       * calculated as:
120                                       *   p.x = obj.width * relative.x
121                                       *   p.y = obj.height * relative.y
122                                       * (as the to item is the whole object)
123                                       */
124                   offset: 0 0; /* and from the relative point, have an offset
125                                 * of 0 pixels - i.e. - none */
126                }
127                rel2 {
128                   relative: 1.0 1.0; /* the bottom-right is relative to the
129                                       * base of the title - this way the
130                                       * title region will scale based on font
131                                       * size */
132                   offset: -1 -1; /* relative to the bottom right */
133                   to_y: "title_base"; /* only y is relative to title_base. the
134                                        * rest is relative to the whole object
135                                        * (because its not specified) */
136                }
137             }
138          }
139          part { name: "bottom"; /* this is the bottom of the window */
140             type: RECT;
141             mouse_events: 0;
142             description { state: "default" 0.0;
143                color: 0 0 0 255;
144                rel1 {
145                   relative: 0.0 1.0; /* relative to the bottom-left of the edje
146                                       * but 4 pixels up */
147                   offset: 0 -8;
148                }
149                rel2 {
150                   relative: 1.0 1.0;
151                   offset: -1 -1;
152                }
153             }
154             description { state: "shaded" 0.0; /* when in a shaded state then
155                                                 * don't display this part */
156                inherit: "default" 0.0;
157                visible: 0;
158             }
159             description { state: "max" 0.0; /* whem maximised too */
160                inherit: "default" 0.0;
161                visible: 0;
162             }
163          }
164          part { name: "icon_area"; /* this is an invisible rectangle that we
165                                     * use to place icons within. we use this
166                                     * to keep it fixed as the "icone area" so
167                                     * the actual swallow part that swallows
168                                     * the icon can be moved/resized for
169                                     * animations */
170             type: RECT;
171             description { state: "default" 0.0;
172                visible: 0;
173                align: 0.0 0.5; /* alignt to the left, but center vertically */
174                aspect: 1.0 1.0; /* prefer ans aspect of 1.0 (ie width / height
175                                  * is 1.0 - i.e. - square. aspect here is
176                                  * min and max aspect that will be "allowed"
177                                  * (since both min and max are 1.0 respectively
178                                  * in order). */
179                aspect_preference: VERTICAL; /* this means that the vertical
180                                              * axis controls aspect and the
181                                              * icon_area part size will be
182                                              * governed by the height of the
183                                              * part (the width simply following
184                                              * along behind) */
185                rel1 { /* rel1 - top-left corner of this part */
186                   relative: 0.0 0.0;
187                   offset: 2 2; /* 2 pixels in from the top-left of the border
188                                 * corner */
189                }
190                rel2 {
191                   relative: 0.0 1.0; /* bottom-right of this part is also 2
192                                       * pixels in from the left (but align will
193                                       * mean it goes to the right) and be 2
194                                       * pixels in from the bottom edge of
195                                       * "title_base" (remember rel2 is the
196                                       * pixel immediately OUTSIDE the part.
197                                       * i.e. x + width & y + height). */
198                   offset: 2 -3;
199                   to_y: "title_base";
200                }
201             }
202             description { state: "active" 0.0; /* and an active state */
203                inherit: "default" 0.0;
204                rel1 {
205                   offset: 2 3; /* 1 pixel down from default so it looks like it
206                                 * is pressed down a bit */
207                }
208                rel2 {
209                   offset: 2 -2; /* same here - down 1 pixel from "default" */
210                }
211             }
212          }
213          part { name: "icon_area2"; /* this area is another invisible rect
214                                      * that is used for shuffling around parts
215                                      * that are relative to it. the states
216                                      * below are just a few "random" offsets
217                                      * to make it look like whatever is
218                                      * relative to icon_area2 is "jiggling"
219                                      * around */
220             type: RECT;
221             description { state: "default" 0.0;
222                visible: 0;
223                rel1.to: "icon_area";
224                rel2.to: "icon_area";
225             }
226             description { state: "uw0" 0.0; /* jiggle */
227                inherit: "default" 0.0;
228                rel1.offset: -3 -2;
229                rel2.offset: -4 -3;
230             }
231             description { state: "uw1" 0.0; /* jiggle some more */
232                inherit: "default" 0.0;
233                rel1.offset: 5 -2;
234                rel2.offset: 4 -3;
235             }
236             description { state: "uw2" 0.0; /* look at me - jiggling! */
237                inherit: "default" 0.0;
238                rel1.offset: -1 4;
239                rel2.offset: -2 3;
240             }
241             description { state: "uw3" 0.0; /* jiggling about */
242                inherit: "default" 0.0;
243                rel1.offset: -2 -1;
244                rel2.offset: -3 -2;
245             }
246             description { state: "uw4" 0.0; /* one more jiggle for the dummies */
247                inherit: "default" 0.0;
248                rel1.offset: -4 1;
249                rel2.offset: -5 0;
250             }
251          }
252          part { name: "e.swallow.icon"; /* finally a swallow part - this is
253                                          * just a placeholder to SWALLOW
254                                          * other external evas objects into
255                                          * this region and edje will control
256                                          * any object swallowed as if it were
257                                          * this part itself (move, resize,
258                                          * etc.) */
259             type: SWALLOW;
260             description { state: "default" 0.0;
261                aspect: 1.0 1.0;
262                aspect_preference: BOTH;
263                rel1.to: "icon_area2";
264                rel2.to: "icon_area2";
265             }
266             description { state: "shrunk" 0.0;
267                inherit: "default" 0.0;
268                rel1.relative: 0.3 0.3;
269                rel2.relative: 0.7 0.7;
270             }
271          }
272          part { name: "e.text.title"; /* this is a text part - the black
273                                        * text on the white title top image */
274             type: TEXT;
275             mouse_events: 0;
276             scale: 1; /* allow this part to scale by a scale factor (dpi) */
277             description { state: "default" 0.0;
278                visible: 1;
279                align: 0.0 0.0; /* align top and left */
280                rel1 {
281                   relative: 1.0 0.0;
282                   offset: 9 2;
283                   to_x: "icon_area"; /* relative to the right side of the icon
284                                       * area but 9 pixels away */
285                }
286                rel2 {
287                   relative: 1.0 0.0; /* and the bottom right is inset by 8
288                                       * pixels from the right of "title_base"
289                                       * but as its aligned to the top we can
290                                       * keep this at 2 pixels from the top of
291                                       * the whole edje object and let alignment
292                                       * make it extend downward from that point
293                                       * with the text size defining the min size
294                                       * vertically below */
295                   offset: -8 2;
296                   to_x: "title_base";
297                }
298                color: 200 200 200 255; /* black */
299                text {
300                   font: "Sans:style=Bold"; /* Use the Bold style
301                                             * of the Sans font from
302                                             * fontconfig */
303                   size: 10; /* size in pixels - 10 */
304                   min: 0 1; /* the text will not determine minimum horizontal
305                              * size but WILL determine minimal vertical size
306                              * (thus 0 1 - horiz then vert flags) */
307                   align: 0.0 0.0; /* align text to top-left of the region
308                                    * given */
309                   text_class: "title_bar"; /* text class - so font and size
310                                             * can be changed by users */
311                }
312             }
313             description { state: "focused" 0.0; /* when the border is focused
314                                                  * then make the text fade out
315                                                  * and vanish */
316                inherit: "default" 0.0;
317                color: 255 255 255 255;
318             }
319          }
320
321          part { name: "bt_close"; /* the close button shadow */
322             mouse_events: 0;
323             type: RECT;
324             description { state: "default" 0.0;
325                color: 255 0 0 255;
326                align: 1.0 0.5;
327                min: 20 20; /* min and max size are the same, so never
328                             * resize this */
329                aspect: 1.0 1.0; /* square - always */
330                aspect_preference: VERTICAL; /* the vetical axis controls size
331                                              * when applying the aspect ratio
332                                              * hint above */
333                rel1 {
334                   relative: 1.0 0.0;
335                   offset: -2 1;
336                   to_x: "top";
337                   to_y: "top";
338                }
339                rel2 {
340                   relative: 1.0 1.0;
341                   offset: -2 -2;
342                   to_x: "top";
343                   to_y: "top";
344                }
345             }
346          }
347          part { name: "bt_max"; /* maximize button shadow */
348             mouse_events: 0;
349             type: RECT;
350             description { state: "default" 0.0;
351                color: 255 128 0 255;
352                align: 1.0 0.5;
353                min: 20 20;
354                aspect: 1.0 1.0;
355                aspect_preference: VERTICAL;
356                rel1 {
357                   relative: 0.0 0.0;
358                   offset: -2 1;
359                   to_x: "bt_close"; /* left of the close button */
360                   to_y: "top";
361                }
362                rel2 {
363                   relative: 0.0 1.0;
364                   offset: -2 -2;
365                   to_x: "bt_close"; /* left of the close button */
366                   to_y: "top";
367                }
368             }
369          }
370          part { name: "bt_min"; /* minimize button shadow */
371             mouse_events: 0;
372             type: RECT;
373             description { state: "default" 0.0;
374                color: 255 255 0 255;
375                align: 1.0 0.5;
376                min: 20 20;
377                aspect: 1.0 1.0;
378                aspect_preference: VERTICAL;
379                rel1 {
380                   relative: 0.0 0.0;
381                   offset: -2 1;
382                   to_x: "bt_max"; /* left of the maximize button */
383                   to_y: "top";
384                }
385                rel2 {
386                   relative: 0.0 1.0;
387                   offset: -2 -2;
388                   to_x: "bt_max"; /* left of the maximize button */
389                   to_y: "top";
390                }
391             }
392          }
393
394          part { name: "title_base"; /* an invisible rect part/object used for
395                                      * layout purposes */
396             type: RECT;
397             mouse_events:  0;
398             description { state: "default" 0.0;
399                visible: 0;
400                rel1 {
401                   relative: 1.0 0.0;
402                   offset: 0 0;
403                   to_x: "icon_area";
404                }
405                rel2 {
406                   relative: 0.0 1.0;
407                   offset: -3 4;
408                   to_y: "e.text.title";
409                   to_x: "bt_min";
410                }
411             }
412          }
413          part { name: "bottom_clip";
414             type: RECT;
415             description { state: "default" 0.0;
416                rel1.to: "bottom";
417                rel2.to: "bottom";
418                color: 255 255 255 255;
419             }
420          }
421          part { name: "resize_b";
422             mouse_events:  0;
423             clip_to: "bottom_clip";
424             type: RECT;
425             description { state: "default" 0.0;
426                color: 0 0 0 255;
427                min: 20 10;
428                max: 20 10;
429                rel1 {
430                   to: "bottom";
431                   relative: 0.5 0.0;
432                   offset: 0 -10;
433                }
434                rel2 {
435                   to: "bottom";
436                   relative: 0.5 0.0;
437                   offset: 0 -1;
438                }
439             }
440             description { state: "past" 0.0;
441                inherit: "default" 0.0;
442                rel1 {
443                   relative: 0.5 1.0;
444                   offset: 0 0;
445                }
446                rel2 {
447                   relative: 0.5 1.0;
448                   offset: 0 9;
449                }
450             }
451          }
452
453
454          part { name: "e.swallow.client"; /* this determines where the actual
455                                            * client window will be placed in
456                                            * the border design */
457             type: SWALLOW;
458             description { state: "default" 0.0;
459                rel1 {
460                   relative: 0.0 1.0;
461                   offset: 0 0;
462                   to_y: "top";
463                }
464                rel2 {
465                   relative: 1.0 0.0;
466                   offset: -1 -1;
467                   to_y: "bottom";
468                }
469             }
470             description { state: "shaded" 0.0;
471                inherit: "default" 0.0;
472                rel2 {
473                   relative: 1.0 1.0;
474                   offset: -1 -1;
475                   to_y: "bottom";
476                }
477             }
478             description { state: "max" 0.0;
479                inherit: "default" 0.0;
480                rel1 {
481                   relative: 0.0 1.0;
482                   offset: 0 0;
483                   to_y: "top";
484                }
485                rel2 {
486                   relative: 1.0 1.0;
487                   offset: -1 -1;
488                   to_y: "bottom";
489                }
490             }
491          }
492
493          /* these transparent rect parts are used for catching events in a way
494           * here objects for design don't affect the events. these parts
495           * are named speciifcally because E has config listening for specific
496           * signals (events) coming from these named parts and based on those
497           * will perform certain actions. these are actually all configurable
498           * by the user, so if they want, clicking the logical "titlebar" could
499           * close the window, not move it, and so on. the user decides this.
500           * the theme designer simply indicates the "logcal" use of the theme
501           * elements they have created */
502          part { name: "e.event.titlebar";
503             type: RECT;
504             description { state: "default" 0.0;
505                rel1.to: "title_base";
506                rel2.to: "title_base";
507                color: 0 0 0 0;
508             }
509          }
510
511          part { name: "e.event.resize.t";
512             type: RECT;
513             description { state: "default" 0.0;
514                rel1 {
515                   relative: 0.0 0.0;
516                   offset: 0 0;
517                }
518                rel2 {
519                   relative: 1.0 0.0;
520                   offset: -1 3;
521                }
522                color: 0 0 0 0;
523             }
524             description { state: "shaded" 0.0;
525                inherit: "default" 0.0;
526                visible: 0;
527             }
528          }
529          part { name: "e.event.resize.b";
530             type: RECT;
531             description { state: "default" 0.0;
532                rel1 {
533                   relative: 0.0 1.0;
534                   offset: 0 -4;
535                }
536                rel2 {
537                   relative: 1.0 1.0;
538                   offset: -1 -1;
539                }
540                color: 0 0 0 0;
541             }
542             description { state: "shaded" 0.0;
543                inherit: "default" 0.0;
544                visible: 0;
545             }
546          }
547
548          part { name: "e.event.resize.tl";
549             type: RECT;
550             description { state: "default" 0.0;
551                rel1 {
552                   relative: 0.0 0.0;
553                   offset: 0 0;
554                }
555                rel2 {
556                   relative: 0.0 0.0;
557                   offset: 15 15;
558                }
559                color: 0 0 0 0;
560             }
561             description { state: "shaded" 0.0;
562                inherit: "default" 0.0;
563                visible: 0;
564             }
565          }
566          part { name: "e.event.resize.tr";
567             type: RECT;
568             description { state: "default" 0.0;
569                rel1 {
570                   relative: 1.0 0.0;
571                   offset: -16 0;
572                }
573                rel2 {
574                   relative: 1.0 0.0;
575                   offset: -1 15;
576                }
577                color: 0 0 0 0;
578             }
579             description { state: "shaded" 0.0;
580                inherit: "default" 0.0;
581                visible: 0;
582             }
583          }
584          part { name: "e.event.resize.bl";
585             type: RECT;
586             description { state: "default" 0.0;
587                rel1 {
588                   relative: 0.0 1.0;
589                   offset: 0 -16;
590                }
591                rel2 {
592                   relative: 0.0 1.0;
593                   offset: 15 -1;
594                }
595                color: 0 0 0 0;
596             }
597             description { state: "shaded" 0.0;
598                inherit: "default" 0.0;
599                visible: 0;
600             }
601          }
602          part { name: "e.event.resize.br";
603             type: RECT;
604             description { state: "default" 0.0;
605                rel1 {
606                   relative: 1.0 1.0;
607                   offset: -16 -16;
608                }
609                rel2 {
610                   relative: 1.0 1.0;
611                   offset: -1 -1;
612                }
613                color: 0 0 0 0;
614             }
615             description { state: "shaded" 0.0;
616                inherit: "default" 0.0;
617                visible: 0;
618             }
619          }
620
621          part { name: "e.event.icon";
622             type: RECT;
623             description { state: "default" 0.0;
624                rel1.to: "icon_area";
625                rel2.to: "icon_area";
626                color: 0 0 0 0;
627             }
628          }
629
630          part { name: "e.event.close";
631             type: RECT;
632             description { state: "default" 0.0;
633                rel1.to: "bt_close";
634                rel2.to: "bt_close";
635                color: 0 0 0 0;
636             }
637          }
638          part { name: "e.event.minimize";
639             type: RECT;
640             description { state: "default" 0.0;
641                rel1.to: "bt_min";
642                rel2.to: "bt_min";
643                color: 0 0 0 0;
644             }
645          }
646          part { name: "e.event.maximize";
647             type: RECT;
648             description { state: "default" 0.0;
649                rel1.to: "bt_max";
650                rel2.to: "bt_max";
651                color: 0 0 0 0;
652             }
653          }
654       }
655       /* programs - these are basically snippets of simple logic to respond to
656        * incoming signals (generated by signal emisions by code or events) */
657       programs {
658          program { name: "focus_in"; /* name of the program. must be unique
659                                       * within the list of programs attached
660                                       * to a group of parts */
661             signal: "e,state,focused"; /* what signal triggers this program,
662                                         * if any. this can also be a glob like
663                                         * "mouse,down,*" for example. note
664                                         * that globs are slower to match
665                                         * and empty strings are literal matches
666                                         * too */
667             source: "e"; /* the source of the signal - this must also match for
668                           * the program to be run */
669             action: STATE_SET "focused" 0.0; /* the action the program will
670                                               * perform. in this case
671                                               * it will set the state to
672                                               * "focused" @ value 0.0 */
673             target: "e.text.title";
674          }
675          program { name: "focus_out"; /* this program is run when focus is
676                                        * removed from a window border */
677             signal: "e,state,unfocused";
678             source: "e";
679             action: STATE_SET "default" 0.0;
680             target: "e.text.title";
681          }
682
683          program { name: "max_full"; /* run on fullscreen maximize */
684             signal: "e,action,maximize,fullscreen";
685             source: "e";
686             action: STATE_SET "max" 0.0;
687             target: "bottom";
688             target: "e.swallow.client";
689          }
690          program { name: "unmax_full"; /* run on unmaximize from fullscreen */
691             signal: "e,action,unmaximize,fullscreen";
692             source: "e";
693             action: STATE_SET "default" 0.0;
694             target: "bottom";
695             target: "e.swallow.client";
696          }
697
698 // don't have any animation or stat change to do at the start of shading
699 //       program { name: "xx";
700 //          signal: "e,state,shading";
701 //          source: "e";
702 //       }
703          program { name: "shade_end"; /* run when the window finishes its
704                                        * shading animation */
705             signal: "e,state,shaded";
706             source: "e";
707             action: STATE_SET "shaded" 0.0;
708             target: "bottom";
709             target: "e.swallow.client";
710             target: "e.event.resize.tl";
711             target: "e.event.resize.tr";
712             target: "e.event.resize.bl";
713             target: "e.event.resize.br";
714             target: "e.event.resize.t";
715             target: "e.event.resize.b";
716          }
717          program { name: "unshade_start"; /* run when the window starts
718                                            * unshading itself */
719             signal: "e,state,unshading";
720             source: "e";
721             action: STATE_SET "default" 0.0;
722             target: "bottom";
723             target: "e.swallow.client";
724             target: "e.event.resize.tl";
725             target: "e.event.resize.tr";
726             target: "e.event.resize.bl";
727             target: "e.event.resize.br";
728             target: "e.event.resize.t";
729             target: "e.event.resize.b";
730          }
731 // don't have any animation or stat change to do at the end of unshading
732 //       program { name: "xx";
733 //          signal: "e,state,unshaded";
734 //          source: "e";
735 //       }
736          program { name: "resize_b_on";
737             signal: "mouse,in"; /* on mouse enter... */
738             source: "e.event.resize.b"; /* in this named part */
739             action: ACTION_STOP; /* stop the following programs */
740             target: "resize_b_on2";
741             target: "resize_b_on3";
742             after: "resize_b_on2"; /* then run... */
743          }
744          program { name: "resize_b_on2";
745             action: STATE_SET "default" 0.0;
746             target: "resize_b";
747             after: "resize_b_on3";
748          }
749          program { name: "resize_b_on3";
750             action: STATE_SET "past" 0.0;
751             transition: LINEAR 0.5;
752             target: "resize_b";
753             after: "resize_b_on2";
754          }
755          program { name: "resize_b_off";
756             signal: "mouse,out"; /* on mouse leave... */
757             source: "e.event.resize.b";
758             action: ACTION_STOP;
759             target: "resize_b_on";
760             target: "resize_b_on2";
761             target: "resize_b_on3";
762          }
763       }
764    }
765
766 /////////////////////////////////////////////////////////////////////////////
767 /*** DIALOG ***/
768 /* Used in all dialogs eg; Wallpaper selector */
769
770    group {
771       name: "e/widgets/dialog/main";
772       images {
773          image: "dia_grad.png" COMP;
774          image: "dia_topshad.png" COMP;
775          image: "dia_botshad.png" COMP;
776          image: "menu_sep.png" COMP;
777       }
778       parts {
779          part {
780             name: "base";
781             mouse_events: 0;
782             description {
783                state: "default" 0.0;
784                color_class: "dialog_base";
785                image.normal: "dia_grad.png";
786                fill {
787                   smooth: 0;
788                   size {
789                      relative: 0.0 1.0;
790                      offset: 64 0;
791                   }
792                }
793             }
794          }
795          part {
796             name: "shadow";
797             mouse_events: 0;
798             description {
799                state: "default" 0.0;
800                rel2.relative: 1.0 0.0;
801                rel2.offset: -1 31;
802                image.normal: "dia_topshad.png";
803                fill {
804                   smooth: 0;
805                   size {
806                      relative: 0.0 1.0;
807                      offset: 64 0;
808                   }
809                }
810             }
811          }
812          part {
813             name: "shadow2";
814             mouse_events: 0;
815             description {
816                state: "default" 0.0;
817                rel1.relative: 0.0 1.0;
818                rel1.offset: 0 -4;
819                image.normal: "dia_botshad.png";
820                fill {
821                   smooth: 0;
822                   size {
823                      relative: 0.0 1.0;
824                      offset: 64 0;
825                   }
826                }
827             }
828          }
829          part {
830             name: "e.swallow.icon";
831             type: SWALLOW;
832             description {
833                state: "default" 0.0;
834                align: 0.0 0.5;
835                fixed: 1 0;
836                rel1 {
837                   relative: 0.0 0.0;
838                   offset: 2  2;
839                }
840                rel2 {
841                   relative: 0.0 0.0;
842                   offset: 2  -5;
843                   to_y: "e.swallow.buttons";
844                }
845             }
846          }
847          part {
848             name: "e.swallow.content";
849             type: SWALLOW;
850             description {
851                state: "default" 0.0;
852                rel1 {
853                   relative: 1.0 0.0;
854                   offset: 2   2;
855                   to_x: "e.swallow.icon";
856                }
857                rel2 {
858                   relative: 1.0 0.0;
859                   offset: -3  -5;
860                   to_y: "e.swallow.buttons";
861                }
862             }
863          }
864          part {
865             name: "separator";
866             mouse_events: 0;
867             description {
868                state: "default" 0.0;
869                min: 16 2;
870                rel1 {
871                   relative: 0.0  1.0;
872                   offset: 4    -1;
873                   to_y: "e.swallow.content";
874                }
875                rel2 {
876                   relative: 1.0  1.0;
877                   offset: -5   0;
878                   to_y: "e.swallow.content";
879                }
880                image {
881                   normal: "menu_sep.png";
882                   border: 2 2 0 0;
883                }
884                fill.smooth: 0;
885             }
886          }
887          part {
888             name: "e.swallow.buttons";
889             type: SWALLOW;
890             description {
891                state: "default" 0.0;
892                align: 0.5 1.0;
893                fixed: 0 1;
894                rel1 {
895                   relative: 0.0 1.0;
896                   offset: 4   -5;
897                }
898                rel2 {
899                   relative: 1.0 1.0;
900                   offset: -5  -5;
901                }
902             }
903          }
904       }
905    }
906    group {
907       name: "e/widgets/dialog/text";
908       styles {
909          style {
910             name: "dialog_style";
911             base: "font=Sans font_size=10 text_class=tb_plain align=center color=#000 style=shadow shadow_color=#ffffff80 wrap=word";
912             tag: "br" "\n";
913             tag: "hilight" "+ font=Sans:style=Bold text_class=tb_light";
914          }
915       }
916       parts {
917          part {
918             name: "e.textblock.message";
919             type: TEXTBLOCK;
920             mouse_events: 0;
921             scale: 1;
922             description {
923                state: "default" 0.0;
924                rel1.offset: 4 4;
925                rel2.offset: -5 -5;
926                text {
927                   style: "dialog_style";
928                   min: 1 1;
929                }
930             }
931          }
932       }
933    }
934
935    group {
936       name: "e/widgets/button";
937       images {
938          image: "bt_base1.png" COMP;
939          image: "bt_base2.png" COMP;
940          image: "bt_hilight.png" COMP;
941          image: "bt_shine.png" COMP;
942          image: "bt_glow.png" COMP;
943          image: "bt_dis_base.png" COMP;
944          image: "bt_dis_hilight.png" COMP;
945       }
946       parts {
947          part {
948             name: "button_image";
949             mouse_events: 1;
950             description {
951                state: "default" 0.0;
952                min: 32 16;
953                image {
954                   normal: "bt_base2.png";
955                   border: 7 7 7 7;
956                }
957             }
958             description {
959                state: "clicked" 0.0;
960                inherit: "default" 0.0;
961                image.normal: "bt_base1.png";
962             }
963             description {
964                state: "disabled" 0.0;
965                inherit: "default" 0.0;
966                image {
967                   normal: "bt_dis_base.png";
968                   border: 4 4 4 4;
969                }
970             }
971          }
972          part {
973             name: "e.swallow.icon";
974             type: SWALLOW;
975             mouse_events: 0;
976             description {
977                state: "default" 0.0;
978                align: 0.0 0.5;
979                rel1 {
980                   relative: 0.0 0.0;
981                   offset: 3   3;
982                   to: "button_image";
983                }
984                rel2 {
985                   relative: 0.0 1.0;
986                   offset: 3  -4;
987                   to: "button_image";
988                }
989             }
990             description {
991                state: "combo" 0.0;
992                inherit: "default" 0.0;
993                aspect: 1.0 1.0;
994                aspect_preference: VERTICAL;
995                align: 0.0 0.5;
996                rel1 {
997                   relative: 0.0 0.0;
998                   offset: 3  3;
999                   to: "button_image";
1000                }
1001                rel2 {
1002                   relative: 0.0 1.0;
1003                   offset: 3   -4;
1004                   to: "button_image";
1005                }
1006             }
1007             description {
1008                state: "icon" 0.0;
1009                inherit: "default" 0.0;
1010                aspect: 1.0 1.0;
1011                aspect_preference: BOTH;
1012                align: 0.5 0.5;
1013                rel1 {
1014                   relative: 0.0 0.0;
1015                   offset: 3  3;
1016                   to: "button_image";
1017                }
1018                rel2 {
1019                   relative: 1.0 1.0;
1020                   offset: -4   -4;
1021                   to: "button_image";
1022                }
1023             }
1024          }
1025          part {
1026             name: "e.text.label";
1027             type: TEXT;
1028             effect: SOFT_SHADOW;
1029             mouse_events: 0;
1030             scale: 1;
1031             description {
1032                state: "default" 0.0;
1033                rel1 {
1034                   relative: 1.0  0.0;
1035                   offset: 2    3;
1036                   to_x: "e.swallow.icon";
1037                   to_y: "button_image";
1038                }
1039                rel2 {
1040                   relative: 1.0  1.0;
1041                   offset: -4   -4;
1042                   to: "button_image";
1043                }
1044                color_class: "button_text";
1045                text {
1046                   font: "Sans";
1047                   size: 10;
1048                   min: 1 1;
1049                   align: 0.5 0.5;
1050                   text_class: "button";
1051                }
1052             }
1053             description {
1054                state: "disabled" 0.0;
1055                inherit: "default" 0.0;
1056                color_class: "button_text_disabled";
1057             }
1058             description {
1059                state: "icon" 0.0;
1060                inherit: "default" 0.0;
1061                visible: 0;
1062             }
1063          }
1064          part {
1065             name: "over1";
1066             mouse_events: 0;
1067             description {
1068                state: "default" 0.0;
1069                rel2.relative: 1.0 0.5;
1070                image {
1071                   normal: "bt_hilight.png";
1072                   border: 7 7 7 0;
1073                }
1074             }
1075             description {
1076                state: "disabled" 0.0;
1077                inherit: "default" 0.0;
1078                image {
1079                   normal: "bt_dis_hilight.png";
1080                   border: 4 4 4 0;
1081                }
1082             }
1083          }
1084          part {
1085             name: "over2";
1086             mouse_events: 0;
1087             description {
1088                state: "default" 0.0;
1089                image {
1090                   normal: "bt_shine.png";
1091                   border: 7 7 7 7;
1092                }
1093             }
1094             description {
1095                state: "disabled" 0.0;
1096                inherit: "default" 0.0;
1097                visible: 0;
1098             }
1099          }
1100          part {
1101             name: "over3";
1102             mouse_events: 0;
1103             description {
1104                state: "default" 0.0;
1105                visible: 0;
1106                color: 255 255 255 0;
1107                image {
1108                   normal: "bt_glow.png";
1109                   border: 7 7 9 9;
1110                }
1111                fill.smooth : 0;
1112             }
1113             description {
1114                state: "clicked" 0.0;
1115                inherit: "default" 0.0;
1116                visible: 1;
1117                color: 255 255 255 255;
1118             }
1119          }
1120          part {
1121             name: "disabler";
1122             type: RECT;
1123             description {
1124                state: "default" 0.0;
1125                color: 0 0 0 0;
1126                visible: 0;
1127             }
1128             description {
1129                state: "disabled" 0.0;
1130                inherit: "default" 0.0;
1131                visible: 1;
1132             }
1133          }
1134       }
1135       programs {
1136          program {
1137             name: "button_click";
1138             signal: "mouse,down,1";
1139             source: "button_image";
1140             action: STATE_SET "clicked" 0.0;
1141             target: "button_image";
1142             target: "over3";
1143          }
1144          program {
1145             name: "button_unclick";
1146             signal: "mouse,up,1";
1147             source: "button_image";
1148             action: STATE_SET "default" 0.0;
1149             target: "button_image";
1150             target: "over3";
1151          }
1152          program {
1153             name: "button_unclick2";
1154             signal: "mouse,clicked,1";
1155             source: "button_image";
1156             action: SIGNAL_EMIT "e,action,click" "";
1157          }
1158          program {
1159             name: "text_state";
1160             signal: "e,state,text";
1161             source: "e";
1162             action: STATE_SET "default" 0.0;
1163             target: "e.swallow.icon";
1164             target: "e.text.label";
1165          }
1166          program {
1167             name: "icon_state";
1168             signal: "e,state,icon";
1169             source: "e";
1170             action: STATE_SET "icon" 0.0;
1171             target: "e.swallow.icon";
1172             target: "e.text.label";
1173          }
1174          program {
1175             name: "combo_state";
1176             signal: "e,state,combo";
1177             source: "e";
1178             action: STATE_SET "combo" 0.0;
1179             target: "e.swallow.icon";
1180             target: "e.text.label";
1181          }
1182          program {
1183             name: "disable";
1184             signal: "e,state,disabled";
1185             source: "e";
1186             action: STATE_SET "disabled" 0.0;
1187             target: "button_image";
1188             target: "over1";
1189             target: "e.text.label";
1190             target: "disabler";
1191          }
1192          program {
1193             name: "enable";
1194             signal: "e,state,enabled";
1195             source: "e";
1196             action: STATE_SET "default" 0.0;
1197             target: "button_image";
1198             target: "over1";
1199             target: "e.text.label";
1200             target: "disabler";
1201          }
1202       }
1203    }
1204
1205    group {
1206       name: "e/widgets/label";
1207       parts {
1208          part {
1209             name: "e.text.label";
1210             type: TEXT;
1211             mouse_events: 0;
1212             scale: 1;
1213             description {
1214                state: "default" 0.0;
1215                rel1.offset: 2 2;
1216                rel2.offset: -3 -3;
1217                color: 0 0 0 255;
1218                text {
1219                   font: "Sans";
1220                   size: 10;
1221                   min: 1 1;
1222                   align: 0.0 0.5;
1223                   text_class: "label";
1224                }
1225             }
1226             description {
1227                state: "disabled" 0.0;
1228                inherit: "default" 0.0;
1229                color: 0 0 0 128;
1230             }
1231          }
1232       }
1233       programs {
1234          program {
1235             name: "disable";
1236             signal: "e,state,disabled";
1237             source: "e";
1238             action: STATE_SET "disabled" 0.0;
1239             target: "e.text.label";
1240          }
1241          program {
1242             name: "enable";
1243             signal: "e,state,enabled";
1244             source: "e";
1245             action: STATE_SET "default" 0.0;
1246             target: "e.text.label";
1247          }
1248       }
1249    }
1250    
1251    group { name: "e/widgets/slidesel";
1252       alias: "e/pointer/enlightenment/default/mono";
1253       alias: "e/widgets/toolbar";
1254       alias: "e/widgets/menu/default/submenu_bg";
1255       alias: "e/modules/connman/network";
1256       alias: "e/modules/ibar/icon";
1257       alias: "e/modules/ibar/icon_overlay";
1258       alias: "e/modules/ibar/drop";
1259       alias: "e/modules/ibar/drop_overlay";
1260       alias: "e/fileman/default/list/drop_between";
1261       alias: "e/fileman/desktop/list/drop_in";
1262       alias: "e/fileman/desktop/list/drop_between";
1263       alias: "e/fileman/desktop/overlay";
1264       alias: "e/fileman/desktop/list/fixed";
1265       alias: "e/fileman/desktop/list_odd/fixed";
1266       alias: "e/sys/halt";
1267       alias: "e/sys/reboot";
1268       alias: "e/sys/suspend";
1269       alias: "e/sys/hibernate";
1270       alias:  "e/widgets/gradpreview";
1271       alias: "e/widgets/toolbar/item";
1272       alias: "e/widgets/menu/default/background";
1273       alias: "e/widgets/menu/default/separator";
1274       alias: "e/widgets/menu/default/item_bg";
1275       alias: "e/widgets/menu/default/icon";
1276       alias: "e/widgets/menu/default/label";
1277       alias: "e/widgets/menu/default/submenu";
1278       alias: "e/widgets/menu/default/check";
1279       alias: "e/widgets/menu/default/radio";
1280       alias: "e/shelf/default/base";
1281       alias: "e/shelf/default/inset";
1282       alias: "e/shelf/default/plain";
1283       alias: "e/shelf/invisible/base";
1284       alias: "e/shelf/invisible/inset";
1285       alias: "e/shelf/invisible/plain";
1286       alias: "e/shelf/alternate/base";
1287       alias: "e/shelf/alternate/inset";
1288       alias: "e/shelf/alternate/plain";
1289       alias: "e/modules/connman/main";
1290       alias: "e/modules/conf_edgebindings/selection";
1291       alias: "e/modules/start/main";
1292       alias: "e/modules/pager/popup";
1293       alias: "e/modules/pager/desk";
1294       alias: "e/modules/pager/window";
1295       alias: "e/modules/battery/main";
1296       alias: "e/modules/battery/popup";
1297       alias: "e/modules/temperature/main";
1298       alias: "e/modules/clock/main";
1299       alias: "e/modules/cpufreq/main";
1300       alias: "e/modules/ibox/icon";
1301       alias: "e/modules/ibox/icon_overlay";
1302       alias: "e/modules/ibox/drop";
1303       alias: "e/modules/ibox/drop_overlay";
1304       alias: "e/widgets/winlist/main";
1305       alias: "e/widgets/winlist/item";
1306       alias: "e/widgets/exebuf/main";
1307       alias: "e/widgets/exebuf/item";
1308       alias: "e/widgets/syscon/main";
1309       alias: "e/widgets/syscon/item/button";
1310       alias: "e/modules/mixer/main";
1311       alias: "e/fileman/default/window/main";
1312       alias: "e/fileman/default/progress";
1313       alias: "e/fileman/default/scrollframe";
1314       alias: "e/fileman/desktop/scrollframe";
1315       alias: "e/fileman/default/list/drop_in";
1316       alias: "e/fileman/default/rubberband";
1317       alias: "e/fileman/default/overlay";
1318       alias: "e/fileman/default/icon/variable";
1319       alias: "e/fileman/default/icon/fixed";
1320       alias: "e/fileman/desktop/icon/variable";
1321       alias: "e/fileman/desktop/icon/fixed";
1322       alias: "e/fileman/default/list/variable";
1323       alias: "e/fileman/default/list_odd/variable";
1324       alias: "e/fileman/default/list/fixed";
1325       alias: "e/fileman/default/list_odd/fixed";
1326       alias: "e/sys/logout";
1327       alias: "e/widgets/configure/main";
1328       alias: "e/widgets/border/default/move";
1329       alias: "e/widgets/border/default/resize";
1330       alias: "e/toolbar/default/base";
1331       alias: "e/transpreview/0";
1332       alias: "e/transpreview/1";
1333       alias: "e/transitions/crossfade";
1334       alias: "e/transitions/vswipe";
1335       alias: "e/widgets/check";
1336       alias: "e/widgets/check_icon";
1337       alias: "e/widgets/radio";
1338       alias: "e/widgets/radio_icon";
1339       alias: "e/widgets/scrollframe";
1340       alias: "e/widgets/ilist";
1341       alias: "e/widgets/ilist_odd";
1342       alias: "e/widgets/ilist_header";
1343       alias: "e/widgets/ilist_header_odd";
1344       alias: "e/widgets/entry";
1345       alias: "e/widgets/entry/text";
1346       alias: "e/widgets/entry/cursor";
1347       alias: "e/widgets/entry/selection";
1348       alias: "e/widgets/preview";
1349       alias: "e/widgets/deskpreview/desk";
1350       alias: "e/widgets/color_well";
1351       alias: "e/widgets/spectrum";
1352       alias: "e/widgets/cslider";
1353       alias: "e/widgets/slider_vertical";
1354       alias: "e/widgets/slider_horizontal";
1355       alias: "e/widgets/frame";
1356       alias: "e/widgets/fontpreview";
1357       alias: "e/widgets/textblock";
1358       alias: "e/desklock/background";
1359       alias: "e/desklock/login_box";
1360       alias: "e/gadman/popup";
1361       alias: "e/gadman/full_bg";
1362       alias: "e/gadman/frame";
1363       alias: "e/gadman/control";
1364       alias: "e/wizard/extra";
1365       alias: "e/wizard/main";
1366       alias: "e/widgets/about/main";
1367       alias: "e/theme/about";
1368       alias: "e/icons/enlightenment/wallpaper_stretch";
1369       alias: "e/icons/enlightenment/wallpaper_tile";
1370       alias: "e/icons/enlightenment/wallpaper_center";
1371       alias: "e/icons/enlightenment/wallpaper_scale_aspect_in";
1372       alias: "e/icons/enlightenment/wallpaper_scale_aspect_out";
1373       alias: "e/icons/enlightenment/gradient_h";
1374       alias: "e/icons/enlightenment/gradient_v";
1375       alias: "e/icons/enlightenment/gradient_du";
1376       alias: "e/icons/enlightenment/gradient_dd";
1377       alias: "e/icons/enlightenment/gradient_rad";
1378       alias: "e/init/splash";
1379       alias: "e/init/extra_screen";
1380       alias: "e/conf/wallpaper/main/window";
1381       alias: "e/conf/wallpaper/main/mini";
1382       alias: "e/conf/wallpaper/main/mini-theme";
1383       alias: "e/conf/wallpaper/main/mini-remote";
1384       alias: "e/conf/wallpaper/main/scrollframe";
1385       alias: "e/widgets/everything/main";
1386       alias: "e/widgets/everything/item";
1387       parts {
1388          part { name: "base";
1389             mouse_events: 0;
1390             type: RECT;
1391             description { state: "default" 0.0;
1392                color: 0 0 0 0;
1393             }
1394          }
1395       }
1396    }
1397 }