2 * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
4 * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
9 * 1. Redistributions of source code must retain the above copyright notice, this
10 * list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 group { name: "elm/index/base/vertical/default";
29 public timer_id, timer_flag, timer_id_2, timer_flag_2;
30 public index_hide_timer(val) {
31 if (get_int(timer_flag) == 1)
32 run_program(PROGRAM:"index0.hide");
37 image: "b_fast_scroll_rollover_bg_line.png" COMP;
44 description { state: "default" 0.0;
48 description { state: "active" 0.0;
50 color: 255 255 255 255;
58 description { state: "default" 0.0;
62 description { state: "active" 0.0;
64 color: 255 255 255 255;
67 part { name: "elm.dragable.index.1";
74 confine: "elm.swallow.index.0";
76 description { state: "default" 0.0;
78 min: INDEX_SCROLL_DRAG_PART_SIZE;
79 rel1.to: "elm.swallow.index.0";
82 to: "elm.swallow.index.0";
86 part { name: "elm.swallow.index.1.padding.right";
89 description { state: "default" 0.0;
94 rel1.to: "elm.swallow.index.0";
97 to: "elm.swallow.index.0";
100 description { state: "active" 0.0;
103 color: 33 33 33 255; /*(Changeable UI) color_class: "B0722";*/
106 part { name: "elm.swallow.index.1";
110 description { state: "default" 0.0;
115 to: "elm.dragable.index.1";
119 to: "elm.dragable.index.1";
124 description { state: "active" 0.0;
125 inherit: "default" 0.0;
128 description { state: "align_bottom" 0.0;
129 inherit: "default" 0.0;
134 to: "index.bottom.padding";
138 to: "index.bottom.padding";
141 description { state: "align_top" 0.0;
142 inherit: "default" 0.0;
145 rel1.to: "index.top.padding";
148 to: "index.top.padding";
152 part { name: "index.top.padding";
157 min: 0 INDEX_SCROLL_PADDING_SIZE;
160 to_x: "elm.swallow.index.0";
164 to_x: "elm.swallow.index.0";
169 part { name: "index.bottom.padding";
174 min: 0 INDEX_SCROLL_PADDING_SIZE;
177 to_x: "elm.swallow.index.0";
181 to_x: "elm.swallow.index.0";
186 part { name: "bg_index.0";
190 description { state: "default" 0.0;
191 rel1.to: "index.top.padding";
192 rel2.to: "index.bottom.padding";
193 color: 33 33 33 255; /*(Changeable UI) color_class: "B0722";*/
196 part { name: "elm.swallow.index.0";
200 description { state: "default" 0.0;
205 to_y: "index.top.padding";
209 to_y: "index.bottom.padding";
214 part { name: "popup_bg";
218 description { state: "default" 0.0;
220 color: 0 60 117 242; /*(Changeable UI) color_class: "B0731";*/
221 min: INDEX_SCROLL_POPUP_SIZE;
222 max: INDEX_SCROLL_POPUP_SIZE;
225 to: "elm.swallow.index.0";
229 part { name: "popup_bg_line";
232 description { state: "default" 0.0;
235 color: 0 60 117 242; /*(Changeable UI) color_class: "B151";*/
236 image.normal: "b_fast_scroll_rollover_bg_line.png";
246 state: "default" 0.0;
267 state: "default" 0.0;
269 text.style: "Index_scroll_1depth_popup";
283 inherit: "default" 0.0;
284 text.style: "Index_scroll_1depth_popup_left_align";
299 state: "default" 0.0;
301 text.style: "Index_scroll_bar_2depth_popup";
305 rel1.to: "align_prop";
313 inherit: "default" 0.0;
317 part { name: "elm.swallow.event.0";
320 description { state: "default" 0.0;
323 rel1.to: "elm.swallow.index.0";
324 rel2.to: "elm.swallow.index.0";
327 part { name: "elm.swallow.event.1";
330 description { state: "default" 0.0;
333 rel1.to: "elm.swallow.index.1";
334 rel2.to: "elm.swallow.index.1";
340 description { state: "default" 0.0;
343 to: "elm.swallow.index.0";
346 rel2.to: "elm.swallow.index.0";
350 description { state: "active" 0.0;
351 inherit: "default" 0.0;
357 program { name: "load";
361 run_program(PROGRAM:"initial.index0.active");
364 program { name: "drag2";
366 source: "elm.dragable.index.1";
370 get_drag(PART:"elm.dragable.index.1", dx, dy);
371 custom_state(PART:"elm.dragable.index.1", "default", 0.0);
372 set_state_val(PART:"elm.dragable.index.1", STATE_ALIGNMENT, 0.5, dy);
375 program { name: "initial.index0.active";
376 action: STATE_SET "active" 0.0;
378 after: "index0.inactive";
380 program { name: "index0.active";
381 signal: "elm,state,active";
383 action: STATE_SET "active" 0.0;
385 after: "disable_timer";
387 program { name: "index0.inactive";
388 signal: "elm,state,inactive";
392 v = get_int(timer_id);
393 if (v > 0) cancel_timer(v);
394 run_program(PROGRAM:"enable_timer");
395 v = timer(2.0, "index_hide_timer", 0);
396 set_int(timer_id, v);
399 program { name: "index1.inactive";
400 signal: "elm,state,level,0";
402 action: STATE_SET "default" 0.0;
403 target: "elm.swallow.index.1";
404 target: "elm.text.1";
406 target: "elm.swallow.index.1.padding.right";
408 program { name: "index1.active";
409 signal: "elm,state,level,1";
412 new x1, x2, y1, y2, w1, w2, h1, h2;
415 get_drag(PART:"elm.dragable.index.1", dx, dy);
416 get_geometry(PART:"elm.swallow.index.1", x1, y1, w1, h1);
417 get_geometry(PART:"clip", x2, y2, w2, h2);
418 if ((y1+h1) > (y2+h2)) {
419 set_state(PART:"elm.swallow.index.1", "align_bottom", 0.0);
422 set_state(PART:"elm.swallow.index.1", "align_top", 0.0);
425 set_state(PART:"elm.swallow.index.1", "active", 0.0);
427 set_state(PART:"clip2", "active", 0.0);
428 set_state(PART:"elm.swallow.index.1.padding.right", "active", 0.0);
431 program { name: "index1.text";
432 signal: "index1.text.enable";
434 action: STATE_SET "active" 0.0;
435 target: "elm.text.1";
438 program { name: "index0.hide";
439 action: STATE_SET "default" 0.0;
440 transition: DECELERATE 0.3;
443 program { name: "index.active";
444 signal: "elm,indicator,state,active";
446 action: STATE_SET "active" 0.0;
449 program { name: "index.inactive";
450 signal: "elm,indicator,state,inactive";
452 action: STATE_SET "default" 0.0;
453 transition: DECELERATE 0.3;
456 program { name: "event.inactive";
457 signal: "elm,priority,up";
459 action: STATE_SET "inactive" 0.0;
460 target: "elm.swallow.event.0";
462 program { name: "index.up";
463 signal: "elm,priority,up";
465 action: STATE_SET "up" 0.0;
466 target: "elm.swallow.index.0";
467 after: "index.go.down";
469 program { name: "index.go.down";
470 action: STATE_SET "default" 0.0;
471 transition: LINEAR 0.3;
472 target: "elm.swallow.index.0";
473 after: "event.active";
475 program { name: "event.inactive2";
476 signal: "elm,priority,down";
478 action: STATE_SET "inactive" 0.0;
479 target: "elm.swallow.event.0";
481 program { name: "index.down";
482 signal: "elm,priority,down";
484 action: STATE_SET "down" 0.0;
485 target: "elm.swallow.index.0";
486 after: "index.go.up";
488 program { name: "index.go.up";
489 action: STATE_SET "default" 0.0;
490 transition: LINEAR 0.3;
491 target: "elm.swallow.index.0";
492 after: "event.active";
494 program { name: "event.active";
495 action: STATE_SET "default" 0.0;
496 target: "elm.swallow.event.0";
499 name: "access.active";
500 signal: "elm,access,state,active";
502 action: STATE_SET "active" 0.0;
506 name: "access.inactive";
507 signal: "elm,access,state,inactive";
509 action: STATE_SET "default" 0.0;
512 program { name: "disable_timer";
514 set_int(timer_flag, 0);
517 program { name: "enable_timer";
519 set_int(timer_flag, 1);
522 program { name: "disable_timer_2";
524 set_int(timer_flag_2, 0);
527 program { name: "enable_timer_2";
529 set_int(timer_flag_2, 1);
535 group { name: "elm/index/item1/vertical/default";
536 alias: "elm/index/item1_odd/vertical/default";
537 data.item: "stacking" "above";
538 data.item: "selectraise" "on";
540 image: "b_index_scroll_press_bg_line.png" COMP;
547 description { state: "default" 0.0;
548 min: INDEX_SCROLL_HANDLE_ITEM_WIDTH INDEX_SCROLL_HANDLE_ITEM_HEIGHT;
549 color: 33 33 33 255; /*(Changeable UI) color_class: "B0722";*/
553 description { state: "active" 0.0;
554 inherit: "default" 0.0;
555 color: 43 43 43 255; /*(Changeable UI) color_class: "B0724";*/
558 part { name: "bg_divider_line";
561 description { state: "default" 0.0;
563 rel2 {to: "bg"; relative: 0.0 1.0;}
565 min: INDEX_SCROLL_DIVIDER_WIDTH_INC 0;
566 max: INDEX_SCROLL_DIVIDER_WIDTH_INC -1;
567 color: 63 63 63 255; /*(Changeable UI) color_class: "B171";*/
570 description { state: "inactive" 0.0;
571 inherit: "default" 0.0;
575 part { name: "bg_press_line";
577 description { state: "default" 0.0;
578 rel1.to: "focus.top.pad";
579 rel2.to: "focus.bottom.pad";
580 image.normal: "b_index_scroll_press_bg_line.png";
581 color: 63 63 63 255; /*(Changeable UI) color_class: "B171";*/
584 description { state: "active" 0.0;
585 inherit: "default" 0.0;
589 part { name: "divider";
594 state: "default" 0.0;
596 min: 0 INDEX_DIVIDER_WIDTH_INC;
598 rel1.relative: 0.0 1.0;
599 color: 96 96 96 51; /*(Changeable UI) color_class: "B0725";*/
602 state: "inactive" 0.0;
603 inherit: "default" 0.0;
607 part { name: "focus.top.pad";
612 state: "default" 0.0;
614 min: 0 INDEX_SCROLL_BG_LINE_WIDTH_INC;
616 rel2.relative: 1.0 0.0;
619 part { name: "focus.bottom.pad";
624 state: "default" 0.0;
626 min: 0 INDEX_SCROLL_BG_LINE_WIDTH_INC;
628 rel1.relative: 0.0 1.0;
631 part { name: "elm.text";
637 state: "default" 0.0;
638 text.style: "Index_scroll_bar_unselect";
640 description { state: "active" 0.0;
641 inherit: "default" 0.0;
642 text.style: "Index_scroll_bar_select";
647 program { name: "active";
648 signal: "elm,state,active";
650 action: STATE_SET "active" 0.0;
651 transition: DECELERATE 0.0;
654 target: "bg_press_line";
655 after: "divider.inactive";
657 program { name: "divider.inactive";
658 action: STATE_SET "inactive" 0.0;
660 target: "bg_divider_line";
662 program { name: "inactive";
663 signal: "elm,state,inactive";
665 action: STATE_SET "default" 0.0;
666 transition: DECELERATE 0.0;
669 target: "bg_press_line";
670 after: "divider.active";
672 program { name: "divider.active";
673 action: STATE_SET "default" 0.0;
675 target: "bg_divider_line";
678 signal: "elm,last,item";
680 action: STATE_SET "inactive" 0.0;
686 group { name: "elm/index/item2/vertical/default";
687 alias: "elm/index/item2_odd/vertical/default";
688 data.item: "stacking" "above";
689 data.item: "selectraise" "on";
695 description { state: "default" 0.0;
696 min: INDEX_SCROLL_HANDLE_ITEM_WIDTH INDEX_SCROLL_HANDLE_ITEM_HEIGHT;
697 color: 43 43 43 255; /*(Changeable UI) color_class: "B0723";*/
702 part { name: "bg_divider_line";
705 description { state: "default" 0.0;
707 rel2 {to: "bg"; relative: 0.0 1.0;}
709 min: INDEX_SCROLL_DIVIDER_WIDTH_INC 0;
710 max: INDEX_SCROLL_DIVIDER_WIDTH_INC -1;
711 color: 63 63 63 255; /*(Changeable UI) color_class: "B171";*/
714 description { state: "inactive" 0.0;
715 inherit: "default" 0.0;
719 part { name: "divider";
724 state: "default" 0.0;
726 min: 0 INDEX_DIVIDER_WIDTH_INC;
728 rel1.relative: 0.0 1.0;
729 color: 96 96 96 51; /*(Changeable UI) color_class: "B0725";*/
732 state: "inactive" 0.0;
733 inherit: "default" 0.0;
737 part { name: "elm.text";
743 state: "default" 0.0;
744 text.style: "Index_scroll_bar_unselect";
746 description { state: "active" 0.0;
747 inherit: "default" 0.0;
748 text.style: "Index_scroll_bar_2depth_focus_bar";
753 program { name: "active";
754 signal: "elm,state,active";
756 action: STATE_SET "active" 0.0;
757 transition: DECELERATE 0.0;
760 program { name: "inactive";
761 signal: "elm,state,inactive";
763 action: STATE_SET "default" 0.0;
764 transition: DECELERATE 0.0;
768 signal: "elm,last,item";
770 action: STATE_SET "inactive" 0.0;
777 name: "elm/index/base/vertical/tab";
778 alias: "elm/index/base/horizontal/tab";
783 description { state: "default" 0.0;
786 description { state: "active" 0.0;
790 part { name: "elm.swallow.index.0";
795 state: "default" 0.0;
796 min: 0 INDEX_TAB_HEIGHT;
797 max: -1 INDEX_TAB_HEIGHT;
802 part { name: "elm.swallow.event.0";
804 description { state: "default" 0.0;
810 program { name: "active";
811 signal: "elm,state,active";
813 action: STATE_SET "active" 0.0;
814 transition: DECELERATE 0.5;
817 program { name: "inactive";
818 signal: "elm,state,inactive";
820 action: STATE_SET "default" 0.0;
821 transition: DECELERATE 0.5;
827 name: "elm/index/item/vertical/tab";
828 alias: "elm/index/item_odd/vertical/tab";
829 alias: "elm/index/item/horizontal/tab";
830 alias: "elm/index/item_odd/horizontal/tab";
835 description { state: "default" 0.0;
839 part { name: "indicator1";
843 description { state: "default" 0.0;
844 color: 19 50 76 255; /*(Changeable UI) color_class: "B0514";*/
846 to_x: "left_padding";
850 to_x: "right_padding";
854 description { state: "active" 0.0;
855 inherit: "default" 0.0;
858 description { state: "active" 0.0;
859 inherit: "default" 0.0;
865 part { name: "left_padding";
868 description { state: "default" 0.0;
871 min: INDEX_TAB_PADDING_SIZE 0;
872 max: INDEX_TAB_PADDING_SIZE -1;
875 description { state: "first" 0.0;
876 inherit: "default" 0.0;
880 description { state: "last" 0.0;
881 inherit: "default" 0.0;
884 part { name: "right_padding";
887 description { state: "default" 0.0;
890 min: INDEX_TAB_PADDING_SIZE 0;
891 max: INDEX_TAB_PADDING_SIZE -1;
894 description { state: "first" 0.0;
895 inherit: "default" 0.0;
897 description { state: "last" 0.0;
898 inherit: "default" 0.0;
903 part { name: "indicator2";
907 description { state: "default" 0.0;
908 color: 0 110 255 255; /*(Changeable UI) color_class: "B0514P1";*/
911 to_x: "left_padding";
915 to_x: "right_padding";
919 description { state: "active" 0.0;
920 inherit: "default" 0.0;
926 program { name: "active";
927 signal: "elm,state,active";
929 action: STATE_SET "active" 0.0;
930 target: "indicator1";
931 target: "indicator2";
933 program { name: "first";
934 signal: "elm,first,item";
936 action: STATE_SET "first" 0.0;
937 target: "left_padding";
938 target: "right_padding";
940 program { name: "last";
941 signal: "elm,last,item";
943 action: STATE_SET "last" 0.0;
944 target: "left_padding";
945 target: "right_padding";
947 program { name: "inactive";
948 signal: "elm,state,inactive";
950 action: STATE_SET "default" 0.0;
951 target: "indicator1";
952 target: "indicator2";
958 name: "elm/index/base/vertical/thumbnail";
959 alias: "elm/index/base/horizontal/thumbnail";
964 description { state: "default" 0.0;
967 description { state: "active" 0.0;
971 part { name: "elm.swallow.index.0";
976 state: "default" 0.0;
978 rel1.relative: 0.5 0.5;
979 rel2.relative: 0.5 0.5;
985 program { name: "active";
986 signal: "elm,state,active";
988 action: STATE_SET "active" 0.0;
989 transition: DECELERATE 0.5;
992 program { name: "inactive";
993 signal: "elm,state,inactive";
995 action: STATE_SET "default" 0.0;
996 transition: DECELERATE 0.5;
1002 name: "elm/index/item/vertical/thumbnail";
1003 alias: "elm/index/item_odd/vertical/thumbnail";
1004 alias: "elm/index/item/horizontal/thumbnail";
1005 alias: "elm/index/item_odd/horizontal/thumbnail";
1007 image: "indicator_on_normal.png" COMP;
1008 image: "indicator_on_focused.png" COMP;
1009 image: "indicator_on_normal_ef.png" COMP;
1010 image: "indicator_on_focused_ef.png" COMP;
1016 description { state: "default" 0.0;
1018 min: INDEX_THUMBNAIL_BG_SIZE;
1019 max: INDEX_THUMBNAIL_BG_SIZE;
1024 part { name: "indicator1";
1027 description { state: "default" 0.0;
1030 min: INDEX_THUMBNAIL_IND_SIZE;
1031 max: INDEX_THUMBNAIL_IND_SIZE;
1032 image.normal: "indicator_on_normal.png";
1033 color: 249 249 249 127; /*(Changeable UI) color_class: "W1912";*/
1035 description { state: "active" 0.0;
1036 inherit: "default" 0.0;
1040 part { name: "indicator2";
1043 description { state: "default" 0.0;
1046 min: INDEX_THUMBNAIL_IND_SIZE;
1047 max: INDEX_THUMBNAIL_IND_SIZE;
1048 image.normal: "indicator_on_focused.png";
1049 color: 249 249 249 255; /*(Changeable UI) color_class: "W1911";*/
1052 description { state: "active" 0.0;
1053 inherit: "default" 0.0;
1057 part { name: "indicator1_effect";
1060 description { state: "default" 0.0;
1061 rel1.to: "indicator1";
1062 rel2.to: "indicator1";
1064 image.normal: "indicator_on_normal_ef.png";
1065 color: 7 7 7 127; /*(Changeable UI) color_class: "W222";*/
1067 description { state: "active" 0.0;
1068 inherit: "default" 0.0;
1072 part { name: "indicator2_effect";
1075 description { state: "default" 0.0;
1076 rel1.to: "indicator2";
1077 rel2.to: "indicator2";
1079 image.normal: "indicator_on_focused_ef.png";
1080 color: 7 7 7 63; /*(Changeable UI) color_class: "W221";*/
1083 description { state: "active" 0.0;
1084 inherit: "default" 0.0;
1090 program { name: "active";
1091 signal: "elm,state,active";
1093 action: STATE_SET "active" 0.0;
1094 target: "indicator1";
1095 target: "indicator2";
1096 target: "indicator1_effect";
1097 target: "indicator2_effect";
1099 program { name: "inactive";
1100 signal: "elm,state,inactive";
1102 action: STATE_SET "default" 0.0;
1103 target: "indicator1";
1104 target: "indicator2";
1105 target: "indicator1_effect";
1106 target: "indicator2_effect";