theme: add tv overlay theme from efl-theme-tizen-tv 98/108298/2
authorSungtaek Hong <sth253.hong@samsung.com>
Wed, 4 Jan 2017 04:22:14 +0000 (13:22 +0900)
committerSungtaek Hong <sth253.hong@samsung.com>
Wed, 4 Jan 2017 04:24:05 +0000 (13:24 +0900)
- TODO: temporarily named image directory as "HD" since
        mobile is already using it.
        Copyright year has to be verified.

Change-Id: I3d5f4d9ebb782b873f0cf1fecf713e1d04110bbb
Signed-off-by: Sungtaek Hong <sth253.hong@samsung.com>
72 files changed:
ElmSharp/theme/tv/HD/images/User_Input_Elements/README [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/bt_bases.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/btn_text_foc.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/btn_text_nor.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/checkbox_check_foc.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/checkbox_check_nor.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/checkbox_uncheck_foc.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/checkbox_uncheck_nor.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/content_innershadow.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_down.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_up.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/elipse_114.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/ico_default_video_180.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/ico_dropdown_menu_check.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/ico_dropdown_menu_open_arrow.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/ico_folder.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/ico_search.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/modal_banner_type_shadow.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/modal_dialogs_banner_bg.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/modal_dialogs_bg.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/popover_arrow.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/progress_wheel.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/progressbar_thumb_foc.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/progressbar_thumb_nor.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/progressbar_thumb_stroke_foc.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/radiobtn_off_foc.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/radiobtn_off_nor.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/radiobtn_on_foc.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/radiobtn_on_nor.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/round_rectangle_4X4.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/round_rectangle_4X4_bottom.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/round_rectangle_4X4_top.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/round_rectangle_8X8_top.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/scrollbar_horizontal.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/scrollbar_mask_bottom.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/scrollbar_mask_top.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/scrollbar_vertical.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/search_searchbar_bg_foc.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/search_searchbar_bg_nor.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_foc.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_nor.png [new file with mode: 0644]
ElmSharp/theme/tv/HD/images/slider_thumb_fill.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/slider_thumb_stroke.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/spincontrol_arrow_down.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/spincontrol_arrow_up.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/tooltip-edge-bottom-tip.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/tooltip-edge-top-tip.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/tooltip_arrow.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/tooltip_arrow_up.png [new file with mode: 0755]
ElmSharp/theme/tv/HD/images/tooltip_bg.png [new file with mode: 0755]
ElmSharp/theme/tv/common.edc [new file with mode: 0644]
ElmSharp/theme/tv/elm-sharp-theme-tv.edc
ElmSharp/theme/tv/macros.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/button.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/check.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/ctxpopup.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/datetime.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/entry.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/gengrid.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/genlist.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/genlist_common.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/hover.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/hoversel.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/layout.edc
ElmSharp/theme/tv/widgets/list.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/popup.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/progressbar.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/radio.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/scroller.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/slider.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/spinner.edc [new file with mode: 0644]
ElmSharp/theme/tv/widgets/tooltip.edc [new file with mode: 0644]

diff --git a/ElmSharp/theme/tv/HD/images/User_Input_Elements/README b/ElmSharp/theme/tv/HD/images/User_Input_Elements/README
new file mode 100644 (file)
index 0000000..8db8ed0
--- /dev/null
@@ -0,0 +1,2 @@
+This is reserved space for User Input Images.
+Please erase this file when any image is added.
diff --git a/ElmSharp/theme/tv/HD/images/bt_bases.png b/ElmSharp/theme/tv/HD/images/bt_bases.png
new file mode 100644 (file)
index 0000000..7d77abe
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/bt_bases.png differ
diff --git a/ElmSharp/theme/tv/HD/images/btn_text_foc.png b/ElmSharp/theme/tv/HD/images/btn_text_foc.png
new file mode 100644 (file)
index 0000000..4a30fec
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/btn_text_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/btn_text_nor.png b/ElmSharp/theme/tv/HD/images/btn_text_nor.png
new file mode 100644 (file)
index 0000000..4834090
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/btn_text_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/checkbox_check_foc.png b/ElmSharp/theme/tv/HD/images/checkbox_check_foc.png
new file mode 100755 (executable)
index 0000000..08ccc25
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/checkbox_check_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/checkbox_check_nor.png b/ElmSharp/theme/tv/HD/images/checkbox_check_nor.png
new file mode 100755 (executable)
index 0000000..543ad01
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/checkbox_check_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/checkbox_uncheck_foc.png b/ElmSharp/theme/tv/HD/images/checkbox_uncheck_foc.png
new file mode 100755 (executable)
index 0000000..b100b99
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/checkbox_uncheck_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/checkbox_uncheck_nor.png b/ElmSharp/theme/tv/HD/images/checkbox_uncheck_nor.png
new file mode 100755 (executable)
index 0000000..dc4469a
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/checkbox_uncheck_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/content_innershadow.png b/ElmSharp/theme/tv/HD/images/content_innershadow.png
new file mode 100755 (executable)
index 0000000..258105f
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/content_innershadow.png differ
diff --git a/ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_down.png b/ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_down.png
new file mode 100755 (executable)
index 0000000..378f2e8
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_down.png differ
diff --git a/ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_up.png b/ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_up.png
new file mode 100755 (executable)
index 0000000..dc17cad
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/core_icon_picker_arrow_up.png differ
diff --git a/ElmSharp/theme/tv/HD/images/elipse_114.png b/ElmSharp/theme/tv/HD/images/elipse_114.png
new file mode 100644 (file)
index 0000000..6a83b38
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/elipse_114.png differ
diff --git a/ElmSharp/theme/tv/HD/images/ico_default_video_180.png b/ElmSharp/theme/tv/HD/images/ico_default_video_180.png
new file mode 100755 (executable)
index 0000000..9e32991
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/ico_default_video_180.png differ
diff --git a/ElmSharp/theme/tv/HD/images/ico_dropdown_menu_check.png b/ElmSharp/theme/tv/HD/images/ico_dropdown_menu_check.png
new file mode 100644 (file)
index 0000000..b896600
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/ico_dropdown_menu_check.png differ
diff --git a/ElmSharp/theme/tv/HD/images/ico_dropdown_menu_open_arrow.png b/ElmSharp/theme/tv/HD/images/ico_dropdown_menu_open_arrow.png
new file mode 100755 (executable)
index 0000000..edb10fb
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/ico_dropdown_menu_open_arrow.png differ
diff --git a/ElmSharp/theme/tv/HD/images/ico_folder.png b/ElmSharp/theme/tv/HD/images/ico_folder.png
new file mode 100755 (executable)
index 0000000..7b5fc69
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/ico_folder.png differ
diff --git a/ElmSharp/theme/tv/HD/images/ico_search.png b/ElmSharp/theme/tv/HD/images/ico_search.png
new file mode 100644 (file)
index 0000000..a276e93
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/ico_search.png differ
diff --git a/ElmSharp/theme/tv/HD/images/modal_banner_type_shadow.png b/ElmSharp/theme/tv/HD/images/modal_banner_type_shadow.png
new file mode 100644 (file)
index 0000000..fa00923
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/modal_banner_type_shadow.png differ
diff --git a/ElmSharp/theme/tv/HD/images/modal_dialogs_banner_bg.png b/ElmSharp/theme/tv/HD/images/modal_dialogs_banner_bg.png
new file mode 100644 (file)
index 0000000..c4a5fe5
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/modal_dialogs_banner_bg.png differ
diff --git a/ElmSharp/theme/tv/HD/images/modal_dialogs_bg.png b/ElmSharp/theme/tv/HD/images/modal_dialogs_bg.png
new file mode 100644 (file)
index 0000000..62e7ed0
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/modal_dialogs_bg.png differ
diff --git a/ElmSharp/theme/tv/HD/images/popover_arrow.png b/ElmSharp/theme/tv/HD/images/popover_arrow.png
new file mode 100755 (executable)
index 0000000..8160bf9
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/popover_arrow.png differ
diff --git a/ElmSharp/theme/tv/HD/images/progress_wheel.png b/ElmSharp/theme/tv/HD/images/progress_wheel.png
new file mode 100644 (file)
index 0000000..c7e9099
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/progress_wheel.png differ
diff --git a/ElmSharp/theme/tv/HD/images/progressbar_thumb_foc.png b/ElmSharp/theme/tv/HD/images/progressbar_thumb_foc.png
new file mode 100755 (executable)
index 0000000..9356150
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/progressbar_thumb_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/progressbar_thumb_nor.png b/ElmSharp/theme/tv/HD/images/progressbar_thumb_nor.png
new file mode 100755 (executable)
index 0000000..ea4b279
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/progressbar_thumb_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/progressbar_thumb_stroke_foc.png b/ElmSharp/theme/tv/HD/images/progressbar_thumb_stroke_foc.png
new file mode 100755 (executable)
index 0000000..dc54299
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/progressbar_thumb_stroke_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/radiobtn_off_foc.png b/ElmSharp/theme/tv/HD/images/radiobtn_off_foc.png
new file mode 100755 (executable)
index 0000000..38ecec9
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/radiobtn_off_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/radiobtn_off_nor.png b/ElmSharp/theme/tv/HD/images/radiobtn_off_nor.png
new file mode 100755 (executable)
index 0000000..6bd4c7e
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/radiobtn_off_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/radiobtn_on_foc.png b/ElmSharp/theme/tv/HD/images/radiobtn_on_foc.png
new file mode 100755 (executable)
index 0000000..e12dc05
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/radiobtn_on_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/radiobtn_on_nor.png b/ElmSharp/theme/tv/HD/images/radiobtn_on_nor.png
new file mode 100755 (executable)
index 0000000..f74c505
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/radiobtn_on_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/round_rectangle_4X4.png b/ElmSharp/theme/tv/HD/images/round_rectangle_4X4.png
new file mode 100644 (file)
index 0000000..bd4edfe
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/round_rectangle_4X4.png differ
diff --git a/ElmSharp/theme/tv/HD/images/round_rectangle_4X4_bottom.png b/ElmSharp/theme/tv/HD/images/round_rectangle_4X4_bottom.png
new file mode 100755 (executable)
index 0000000..50646a5
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/round_rectangle_4X4_bottom.png differ
diff --git a/ElmSharp/theme/tv/HD/images/round_rectangle_4X4_top.png b/ElmSharp/theme/tv/HD/images/round_rectangle_4X4_top.png
new file mode 100755 (executable)
index 0000000..59d03cd
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/round_rectangle_4X4_top.png differ
diff --git a/ElmSharp/theme/tv/HD/images/round_rectangle_8X8_top.png b/ElmSharp/theme/tv/HD/images/round_rectangle_8X8_top.png
new file mode 100644 (file)
index 0000000..1403c54
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/round_rectangle_8X8_top.png differ
diff --git a/ElmSharp/theme/tv/HD/images/scrollbar_horizontal.png b/ElmSharp/theme/tv/HD/images/scrollbar_horizontal.png
new file mode 100755 (executable)
index 0000000..b060a3d
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/scrollbar_horizontal.png differ
diff --git a/ElmSharp/theme/tv/HD/images/scrollbar_mask_bottom.png b/ElmSharp/theme/tv/HD/images/scrollbar_mask_bottom.png
new file mode 100755 (executable)
index 0000000..7e28eda
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/scrollbar_mask_bottom.png differ
diff --git a/ElmSharp/theme/tv/HD/images/scrollbar_mask_top.png b/ElmSharp/theme/tv/HD/images/scrollbar_mask_top.png
new file mode 100755 (executable)
index 0000000..d64edbc
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/scrollbar_mask_top.png differ
diff --git a/ElmSharp/theme/tv/HD/images/scrollbar_vertical.png b/ElmSharp/theme/tv/HD/images/scrollbar_vertical.png
new file mode 100755 (executable)
index 0000000..447f940
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/scrollbar_vertical.png differ
diff --git a/ElmSharp/theme/tv/HD/images/search_searchbar_bg_foc.png b/ElmSharp/theme/tv/HD/images/search_searchbar_bg_foc.png
new file mode 100644 (file)
index 0000000..f065c44
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/search_searchbar_bg_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/search_searchbar_bg_nor.png b/ElmSharp/theme/tv/HD/images/search_searchbar_bg_nor.png
new file mode 100644 (file)
index 0000000..34add3a
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/search_searchbar_bg_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_foc.png b/ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_foc.png
new file mode 100644 (file)
index 0000000..8c1c0c9
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_foc.png differ
diff --git a/ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_nor.png b/ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_nor.png
new file mode 100644 (file)
index 0000000..eb23c86
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/search_searchbar_small_bg_nor.png differ
diff --git a/ElmSharp/theme/tv/HD/images/slider_thumb_fill.png b/ElmSharp/theme/tv/HD/images/slider_thumb_fill.png
new file mode 100755 (executable)
index 0000000..de2d559
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/slider_thumb_fill.png differ
diff --git a/ElmSharp/theme/tv/HD/images/slider_thumb_stroke.png b/ElmSharp/theme/tv/HD/images/slider_thumb_stroke.png
new file mode 100755 (executable)
index 0000000..aa52dca
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/slider_thumb_stroke.png differ
diff --git a/ElmSharp/theme/tv/HD/images/spincontrol_arrow_down.png b/ElmSharp/theme/tv/HD/images/spincontrol_arrow_down.png
new file mode 100755 (executable)
index 0000000..4d9d762
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/spincontrol_arrow_down.png differ
diff --git a/ElmSharp/theme/tv/HD/images/spincontrol_arrow_up.png b/ElmSharp/theme/tv/HD/images/spincontrol_arrow_up.png
new file mode 100755 (executable)
index 0000000..3daf5e4
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/spincontrol_arrow_up.png differ
diff --git a/ElmSharp/theme/tv/HD/images/tooltip-edge-bottom-tip.png b/ElmSharp/theme/tv/HD/images/tooltip-edge-bottom-tip.png
new file mode 100755 (executable)
index 0000000..2dd617c
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/tooltip-edge-bottom-tip.png differ
diff --git a/ElmSharp/theme/tv/HD/images/tooltip-edge-top-tip.png b/ElmSharp/theme/tv/HD/images/tooltip-edge-top-tip.png
new file mode 100755 (executable)
index 0000000..661a255
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/tooltip-edge-top-tip.png differ
diff --git a/ElmSharp/theme/tv/HD/images/tooltip_arrow.png b/ElmSharp/theme/tv/HD/images/tooltip_arrow.png
new file mode 100755 (executable)
index 0000000..2dd617c
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/tooltip_arrow.png differ
diff --git a/ElmSharp/theme/tv/HD/images/tooltip_arrow_up.png b/ElmSharp/theme/tv/HD/images/tooltip_arrow_up.png
new file mode 100755 (executable)
index 0000000..661a255
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/tooltip_arrow_up.png differ
diff --git a/ElmSharp/theme/tv/HD/images/tooltip_bg.png b/ElmSharp/theme/tv/HD/images/tooltip_bg.png
new file mode 100755 (executable)
index 0000000..6f5ba64
Binary files /dev/null and b/ElmSharp/theme/tv/HD/images/tooltip_bg.png differ
diff --git a/ElmSharp/theme/tv/common.edc b/ElmSharp/theme/tv/common.edc
new file mode 100644 (file)
index 0000000..83d1466
--- /dev/null
@@ -0,0 +1,44 @@
+/***************** efl-theme-tizen-tv *************************
+ * Example of use of color code:-
+ *
+ *    color: [color_name] [alpha] ;
+ *
+ *
+/****************** Color-Codes *******************************/
+
+#define      BLACK      0    0    0
+#define      RED        255  0    0
+#define      GREEN      0    255  0
+#define      BLUE       0    0    255
+#define      WHITE      255  255  255
+#define      YELLOW     255  255  0
+#define      GRAY       105  105  105
+#define      AQUA       0    255  255
+#define      MAGENTA    255  0    255
+#define      SILVER     192  192  192
+#define      MAROON     128  0    0
+#define      OLIVE      128  128  0
+#define      PURPLE     128  0    128
+#define      TEAL       0    128  128
+#define      NAVY       0    0    128
+#define      PINK       255  192  203
+#define      PLUM       221  160  221
+#define      VOILET     238  130  238
+#define      BROWN      165  42   42
+#define      ORANGE     255  165  0
+#define      GOLD       218  165  32
+#define      LIME       50   205  50
+
+//#define FONT_NAME "FONT_FILE_NAME.ttf"
+
+#define FONT_M "SVD_Medium"
+#define FONT_L "SVD_Light"
+#define FONT_S "SCD_Script"
+#define FONT_R "XXXX"
+
+#define PART_RECT(COLOR) \
+   part { type: RECT; \
+      description { state: "default" 0.0; \
+         color: COLOR; \
+      } \
+   }
index 8233fbe..820f2c7 100644 (file)
@@ -49,12 +49,32 @@ externals {
 data.item: "version" "110";
 //
 
+#include "common.edc"
+#include "macros.edc"
+
+ADD_COLOR_CLASS
+
 collections {
    base_scale: BASE_SCALE_INC;
 
 #include "color_classes.edc"
-
+#include "widgets/scroller.edc"
+#include "widgets/button.edc"
+#include "widgets/check.edc"
+#include "widgets/ctxpopup.edc"
+#include "widgets/datetime.edc"
+#include "widgets/spinner.edc"
+#include "widgets/entry.edc"
+#include "widgets/gengrid.edc"
+#include "widgets/genlist_common.edc"
+#include "widgets/genlist.edc"
+#include "widgets/hover.edc"
+#include "widgets/hoversel.edc"
 #include "widgets/layout.edc"
-
+#include "widgets/list.edc"
+#include "widgets/popup.edc"
+#include "widgets/progressbar.edc"
+#include "widgets/radio.edc"
+#include "widgets/slider.edc"
+#include "widgets/tooltip.edc"
 }
-
diff --git a/ElmSharp/theme/tv/macros.edc b/ElmSharp/theme/tv/macros.edc
new file mode 100644 (file)
index 0000000..d2678b1
--- /dev/null
@@ -0,0 +1,35 @@
+#define ASPECT_FILL(_ASPECT) \
+   aspect: _ASPECT _ASPECT; aspect_preference: NONE;
+#define TILED_PATTERN(_WIDTH, _HEIGHT) \
+   fill { size { relative: 0.0 0.0; offset: _WIDTH _HEIGHT; } }
+#define TILED_HORIZ(_WIDTH) \
+   fill { size { relative: 0.0 1.0; offset: _WIDTH 0; } }
+#define FIXED_SIZE(_WIDTH, _HEIGHT) \
+   min: _WIDTH _HEIGHT; max: _WIDTH _HEIGHT; fixed: 1 1;
+
+#define ADD_COLOR_CLASS color_classes { \
+                           color_class { \
+                              name: "open_ux_theme"; \
+                              color: 69 143 255 255; \
+                              color2: 69 143 255 255; \
+                              color3: 69 143 255 255; \
+                           } \
+                           color_class { \
+                              name: "open_ux_theme_alpha"; \
+                              color: 69 143 255 102; \
+                              color2: 69 143 255 102; \
+                              color3: 69 143 255 102; \
+                           } \
+                           color_class { \
+                              name: "open_ux_theme_alpha20"; \
+                              color: 69 143 255 50; \
+                              color2: 69 143 255 51; \
+                              color3: 69 143 255 51; \
+                           } \
+                           color_class { \
+                              name: "open_ux_theme_white"; \
+                              color: 255 255 255 255; \
+                              color2: 255 255 255 255; \
+                              color3: 255 255 255 255; \
+                           } \
+                        }
diff --git a/ElmSharp/theme/tv/widgets/button.edc b/ElmSharp/theme/tv/widgets/button.edc
new file mode 100644 (file)
index 0000000..d8387ea
--- /dev/null
@@ -0,0 +1,1593 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define BUTTON_DEFAULT_PAD_SIZE 20 70
+#define BUTTON_DEFAULT_MIN_SIZE 196 70
+#define BUTTON_DEFAULT_FONT_SIZE 28
+#define BUTTON_TEXT_PAD_SIZE 20 45
+#define BUTTON_TEXT_MIN_SIZE 147 45
+#define BUTTON_TEXT_FONT_SIZE 20
+#define BUTTON_BORDER 4 4 4 4
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt
+Button
+Page No.: 72, Style Name: default
+*********************************************************************************/
+group { name: "elm/button/base/default";
+   images {
+      image: "round_rectangle_4X4.png" COMP;
+   }
+   data.item: "focus_highlight" "on";
+   parts {
+      part { name: "base"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "pad.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.5;
+            rel1.to: "base";
+            min: BUTTON_DEFAULT_PAD_SIZE;
+            max: BUTTON_DEFAULT_PAD_SIZE;
+         }
+      }
+      part { name: "pad.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 1.0 0.5;
+            rel2.to: "base";
+            min: BUTTON_DEFAULT_PAD_SIZE;
+            max: BUTTON_DEFAULT_PAD_SIZE;
+         }
+      }
+      part { name: "button_base";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            min: BUTTON_DEFAULT_MIN_SIZE;
+            color: 204 204 204 255;
+            image {
+               normal: "round_rectangle_4X4.png";
+               border: BUTTON_BORDER;
+               border_scale: 1;
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "dim" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme_alpha";
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0 0.5;
+            rel1.to: "pad.left";
+            rel1.relative: 1 0;
+            rel2.to: "pad.left";
+            rel2.relative: 1 1;
+            align: 0.0 0.5;
+            min: 0 0;
+            max: 37 37;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "pad.left";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "pad.right";
+            rel2.relative: 0.0 1.0;
+            color: 89 89 89 255;
+            text {
+               font: FONT_M;//TODO Tizen Sans regular
+               size: BUTTON_DEFAULT_FONT_SIZE;
+               min: 1 1;
+               max: 1 1;
+               ellipsis: -1;
+               text_class: "button";
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: WHITE 255;
+            text.min: 1 1;
+         }
+         description { state: "dim" 0.0;
+            inherit: "default" 0.0;
+            color: 89 89 89 102;
+         }
+      }
+      part { name: "event"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+   }
+   programs {
+      program { name: "button_click";
+         signal: "mouse,down,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,press" "";
+      }
+      program { name: "button_unclick";
+         signal: "mouse,up,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,unpress" "";
+      }
+      program { name: "button_unclick_anim";
+         action: STATE_SET "default" 0.0;
+         target: "button_base";
+         target: "elm.text";
+      }
+      program{ name: "mouse_unclick_after";
+         signal: "mouse,clicked,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+     program { name: "key_press";
+         signal: "elm,action,pressed"; source: "elm";
+      }
+      program { name: "key_unpress";
+         signal: "elm,action,unpressed"; source: "elm";
+      }
+      program { name: "focused";
+         signal: "elm,action,focus"; source: "elm";
+         action: STATE_SET "focus" 0.0;
+         target: "button_base";
+         target: "elm.text";
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "button_base";
+         target: "elm.text";
+      }
+      program { name: "text_show";
+         signal: "elm,state,text,visible"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "disabled") || (!strcmp(st, "disabled_visible")))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "visible", 0.0);
+         }
+      }
+      program { name: "text_hide";
+         signal: "elm,state,text,hidden"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            set_state(PART:"elm.text", "default", 0.0);
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "default") || (!strcmp(st, "visible")))
+               set_state(PART:"elm.text", "default", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+         }
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            set_state(PART:"button_base", "dim", 0.0);
+            set_state(PART:"event", "disabled", 0.0);
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "visible") || !strcmp(st, "disabled_visible"))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+         }
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            set_state(PART:"button_base", "visible", 0.0);
+            set_state(PART:"event", "visible", 0.0);
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "visible") || !strcmp(st, "disabled_visible"))
+               set_state(PART:"elm.text", "visible", 0.0);
+            else
+               set_state(PART:"elm.text", "default", 0.0);
+         }
+      }
+   }
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508.ppt
+Button
+Page No.: 89, Style Name: text
+*********************************************************************************/
+group { name: "elm/button/base/text";
+   inherit: "elm/button/base/default";
+   images {
+      image: "btn_text_foc.png" COMP;
+      image: "btn_text_nor.png" COMP;
+   }
+   parts {
+      part { name: "base"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "pad.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.5;
+            rel1.to: "base";
+            min: BUTTON_TEXT_PAD_SIZE;
+            max: BUTTON_TEXT_PAD_SIZE;
+         }
+      }
+      part { name: "pad.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 1.0 0.5;
+            rel2.to: "base";
+            min: BUTTON_TEXT_PAD_SIZE;
+            max: BUTTON_TEXT_PAD_SIZE;
+         }
+      }
+      part { name: "button_base";
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            min: BUTTON_TEXT_MIN_SIZE;
+            image {
+               normal: "btn_text_nor.png";
+               border:BUTTON_BORDER;
+               border_scale: 1;
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            image {
+               normal: "btn_text_foc.png";
+               border: BUTTON_BORDER;
+               border_scale: 1;
+            }
+         }
+         description { state: "dim" 0.0;
+            inherit:  "default" 0.0;
+            color: 255 255 255 51;
+            image {
+               normal: "btn_text_nor.png";
+               border: BUTTON_BORDER;
+               border_scale: 1;
+            }
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "pad.left";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "pad.right";
+            rel2.relative: 0.0 1.0;
+            color: 164 164 174 255;
+            text {
+               font: FONT_M;//TODO Tizen Sans regular
+               size: BUTTON_TEXT_FONT_SIZE;
+               min: 1 1;
+               max: 1 1;
+               text_class: "button";
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: WHITE 255;
+            text.min: 1 1;
+         }
+         description { state: "dim" 0.0;
+            inherit: "default" 0.0;
+            color: 164 167 174 102;
+         }
+      }
+      part { name: "event"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+   }
+   programs {
+      program { name: "focused";
+         signal: "elm,action,focus"; source: "elm";
+         action: STATE_SET "focus" 0.0;
+         target: "button_base";
+         target: "elm.text";
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "button_base";
+         target: "elm.text";
+      }
+   }
+}
+
+group { name: "elm/button/base/popup";
+   inherit: "elm/button/base/default";
+   parts {
+      part { name: "elm.text";
+         description { state: "default" 0.0;
+            text.min: 0 0;
+            text.ellipsis: 0.0;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: WHITE 255;
+         }
+         description { state: "dim" 0.0;
+            inherit: "default" 0.0;
+            color: 89 89 89 102;
+         }
+      }
+   }
+}
+
+/////////////////////////
+// Vertical /////////////
+/////////////////////////
+#define GLIDE_EASE_OUT(duration) CUBIC_BEZIER (duration) 0.25 0.46 0.45 1.0
+
+   group { name: "elm/button/base/spinner/increase/vertical";
+      alias: "elm/button/base/spinner/increase/vertical_time_picker";
+      alias: "elm/button/base/spinner/increase/vertical_date_picker";
+      alias: "elm/button/base/spinner/increase/datetime";
+      data.item: "focus_highlight" "on";
+      data.item: "vector_ux" "no_bg";
+      data.item: "corner_radius" "10";
+      images {
+         image: "core_icon_picker_arrow_up.png" COMP;
+      }
+      script {
+         public mouse_down = 0;
+         public multi_down = 0;
+         public disabled = 0;
+         public animate = 0;
+      }
+      parts {
+         part { name: "arrow.image.bg";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               align: 0.5 0.0;
+               min: 146 80;
+               max: 146 80;
+            }
+         }
+         part { name: "effect_spacer";
+            type: SPACER;
+            description { state: "default" 0.0;
+               rel1.to: "arrow.image.bg";
+               rel2.to: "arrow.image.bg";
+            }
+         }
+         //Effect Shape Part
+         part { name: "tizen_vg_shape";
+            type: SWALLOW;
+            clip_to: "tizen_vg_shape_clipper";
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "effect_spacer";
+               rel2.to: "effect_spacer";
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+            }
+            description { state: "ready" 0.0;
+               inherit: "default" 0.0;
+               min: 112 34;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
+            }
+         }
+         part { name: "tizen_vg_shape_clipper";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+               visible: 0;
+               fixed: 1 1;
+               rel1.to: "tizen_vg_shape";
+               rel2.to: "tizen_vg_shape";
+            }
+            description { state: "ready" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               color: 0 0 0 77;
+            }
+            description { state: "disabled" 0.0;
+               color: 0 0 0 77;
+               fixed: 1 1;
+               rel1.to: "tizen_vg_shape";
+               rel2.to: "tizen_vg_shape";
+            }
+         }
+         part { name: "arrow.image";
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "arrow.image.bg";
+               rel2.to: "arrow.image.bg";
+               min: 146 80;
+               max: 146 80;
+               color: 204 204 204 255;
+               image.normal: "core_icon_picker_arrow_up.png";
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 204 204 204 127;
+            }
+         }
+         part { name: "focus_image";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               align: 0.5 0.0;
+               rel1.to: "arrow.image.bg";
+               rel2.to: "arrow.image.bg";
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+            }
+         }
+         part { name: "event";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               rel1.to: "arrow.image.bg";
+               rel2.to: "arrow.image.bg";
+               color: 0 0 0 0;
+            }
+         }
+      }
+      programs {
+         program { name: "pressed_effect";
+            action: STATE_SET "ready" 0.0;
+            target: "tizen_vg_shape_clipper";
+            target: "tizen_vg_shape";
+            after: "pressed_effect2";
+         }
+         program { name: "pressed_effect2";
+            action: STATE_SET "pressed" 0.0;
+            target: "tizen_vg_shape_clipper";
+            target: "tizen_vg_shape";
+            target: "arrow.image";
+            transition: GLIDE_EASE_OUT(0.15);
+            after: "pressed_effect3";
+         }
+         program { name: "pressed_effect3";
+            script {
+               set_int(animate, 0);
+            }
+         }
+         program { name: "delay_unpressed_effect";
+            in: 0.1 0.0;
+            after: "unpressed_effect";
+         }
+         program { name: "unpressed_effect";
+            script {
+               if (get_int(disabled) == 0) {
+                  run_program(PROGRAM:"unpressed_effect2");
+                  run_program(PROGRAM:"unpressed_effect3");
+               } else {
+                  run_program(PROGRAM:"disabled_effect");
+                  run_program(PROGRAM:"disabled_effect2");
+               }
+            }
+         }
+         program { name: "unpressed_effect2";
+            action: STATE_SET "default" 0.0;
+            target: "arrow.image";
+            transition: GLIDE_EASE_OUT(0.45);
+         }
+         program { name: "unpressed_effect3";
+            action: STATE_SET "ready" 0.0;
+            target: "tizen_vg_shape_clipper";
+            transition: GLIDE_EASE_OUT(0.45);
+            after: "finished_animation";
+         }
+         program { name: "disabled_effect";
+            action: STATE_SET "disabled" 0.0;
+            target: "arrow.image";
+            transition: GLIDE_EASE_OUT(0.45);
+         }
+         program { name: "disabled_effect2";
+            action: STATE_SET "ready" 0.0;
+            target: "tizen_vg_shape_clipper";
+            transition: GLIDE_EASE_OUT(0.45);
+            after: "finished_animation";
+         }
+         program { name: "finished_animation";
+            action: STATE_SET "default" 0.0;
+            target: "tizen_vg_shape_clipper";
+            target: "tizen_vg_shape";
+         }
+         program { name: "pressed";
+            signal: "mouse,down,1*";
+            source: "event";
+            script {
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) {
+                  stop_program(PROGRAM:"delay_unpressed_effect");
+                  set_int(mouse_down, 1);
+                  set_int(animate, 1);
+                  emit("elm,action,press", "");
+                  run_program(PROGRAM:"pressed_effect");
+               }
+            }
+         }
+         program { name: "unpressed";
+            signal: "mouse,up,1";
+            source: "event";
+            script {
+               if (get_int(mouse_down) == 1) {
+                  set_int(mouse_down, 0);
+                  if (get_int(disabled) == 0) {
+                     if (get_int(animate) == 0) {
+                        run_program(PROGRAM:"unpressed_effect");
+                     } else {
+                        set_state(PART:"tizen_vg_shape", "pressed", 0.0);
+                        set_state(PART:"tizen_vg_shape_clipper", "pressed", 0.0);
+                        set_state(PART:"arrow.image", "pressed", 0.0);
+                        set_int(animate, 0);
+                        run_program(PROGRAM:"delay_unpressed_effect");
+                     }
+                     emit("elm,action,unpress", "");
+                  }
+               }
+            }
+         }
+         program { name: "button_click";
+            signal: "mouse,clicked,1";
+            source: "event";
+            script {
+               if ((get_int(multi_down) == 0) && (get_int(disabled) == 0)) {
+                 run_program(PROGRAM:"play_sound");
+                 run_program(PROGRAM:"button_click2");
+               }
+            }
+         }
+         program { name: "play_sound";
+            action: RUN_PLUGIN "touch_sound";
+         }
+         program { name: "longpress_sound";
+            signal: "elm,action,longpress";
+            source: "elm";
+            action: RUN_PLUGIN "touch_haptic";
+         }
+         program { name: "button_click2";
+            in: 0.001 0.0;
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
+            action: STATE_SET "focused" 0.0;
+            target: "focus_image";
+         }
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "focus_image";
+         }
+         program { name: "access_pressed";
+            signal: "elm,action,anim,activate";
+            source: "elm";
+            after: "pressed_effect";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            script {
+               set_int(disabled, 1);
+               if (get_int(animate) == 1) return;
+               set_state(PART:"arrow.image", "disabled", 0.0);
+            }
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            script {
+               set_int(disabled, 0);
+               set_state(PART:"arrow.image", "default", 0.0);
+            }
+         }
+         program {
+            name: "multi_down";
+            signal: "elm,action,multi,down";
+            source: "elm";
+            script {
+               set_int(multi_down, 1);
+            }
+         }
+         program {
+            name: "multi_up";
+            signal: "elm,action,multi,up";
+            source: "elm";
+            script {
+               set_int(multi_down, 0);
+            }
+         }
+         program { name: "pass_event_enable";
+            signal: "elm,event,pass,enabled";
+            source: "elm";
+            script {
+               set_mouse_events(PART:"event", 0);
+            }
+         }
+         program { name: "pass_event_disable";
+            signal: "elm,event,pass,disabled";
+            source:"elm";
+            script {
+               set_mouse_events(PART:"event", 1);
+            }
+         }
+         program { name: "repeat_event_enable";
+            signal: "elm,event,repeat,enabled";
+            source: "elm";
+            script {
+               set_repeat_events(PART:"event", 1);
+            }
+         }
+         program { name: "repeat_event_disable";
+            signal: "elm,event,repeat,disabled";
+            source:"elm";
+            script {
+               set_repeat_events(PART:"event", 0);
+            }
+         }
+      }
+   }
+
+   group { name: "elm/button/base/spinner/decrease/vertical";
+      inherit: "elm/button/base/spinner/increase/vertical";
+      alias: "elm/button/base/spinner/decrease/vertical_time_picker";
+      alias: "elm/button/base/spinner/decrease/vertical_date_picker";
+      alias: "elm/button/base/spinner/decrease/datetime";
+      images {
+         image: "core_icon_picker_arrow_down.png" COMP;
+      }
+      parts {
+         part { name: "arrow.image";
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "arrow.image.bg";
+               rel2.to: "arrow.image.bg";
+               min: 146 80;
+               max: 146 80;
+               color: 204 204 204 255;
+               image.normal: "core_icon_picker_arrow_down.png";
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 204 204 204 127;
+            }
+         }
+      }
+   }
+
+   group { name: "elm/button/base/spinner/vertical";
+      alias: "elm/button/base/spinner/vertical_time_picker";
+      alias: "elm/button/base/spinner/datetime";
+      data.item: "focus_highlight" "on";
+      script {
+         public mouse_down = 0;
+         public multi_down = 0;
+      }
+      parts {
+         part { name: "bg";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 146 188;
+            }
+         }
+         part { name: "elm.text";
+            type: TEXT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 146;
+               max: -1 146;
+               fixed: 1 1;
+               color: 0 0 0 255;
+               rel1.to: "bg";
+               rel2.to: "bg";
+               text {
+                  font: "Tizen:style=Light";
+                  size: 106;
+                  text_class: "tizen";
+                  ellipsis: -1.0;
+               }
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0 ;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0 ;
+            }
+         }
+         part { name: "focus_image";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "bg";
+               rel2.to: "bg";
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+            }
+         }
+         part { name: "over";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "disabler";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "button_press";
+            signal: "mouse,down,1*";
+            source: "over";
+            script {
+               if ((get_int(multi_down) == 0) &&
+                   (get_int(mouse_down) == 0)) {
+                     set_int(mouse_down, 1);
+                     run_program(PROGRAM:"button_press2");
+               }
+            }
+         }
+         program { name: "button_press2";
+            action: SIGNAL_EMIT "elm,action,press" "";
+            after: "action_pressed";
+         }
+         program { name: "button_unpress";
+            signal: "mouse,up,1*";
+            source: "over";
+            script {
+               if (get_int(mouse_down) == 1) {
+                     set_int(mouse_down, 0);
+                     run_program(PROGRAM:"button_unpress2");
+               }
+            }
+         }
+         program { name: "button_unpress2";
+            action: SIGNAL_EMIT "elm,action,unpress" "";
+            after: "action_unpressed";
+         }
+         program { name: "button_click";
+            signal: "mouse,clicked,1";
+            source: "over";
+            script {
+               if (get_int(multi_down) == 0) {
+                 run_program(PROGRAM:"play_sound");
+                 run_program(PROGRAM:"button_click2");
+               }
+            }
+         }
+         program { name: "play_sound";
+            action: RUN_PLUGIN "touch_sound";
+         }
+         program { name: "button_click2";
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "action_pressed";
+            action: STATE_SET "pressed" 0.0;
+            target: "elm.text";
+         }
+         program { name: "action_unpressed";
+            action: STATE_SET "default" 0.0;
+            target: "elm.text";
+         }
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
+            action: STATE_SET "focused" 0.0;
+            target: "focus_image";
+         }
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "focus_image";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disabler";
+            target: "elm.text";
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disabler";
+            target: "elm.text";
+         }
+         program {
+            name: "multi_down";
+            signal: "elm,action,multi,down";
+            source: "elm";
+            script {
+               set_int(multi_down, 1);
+            }
+         }
+         program {
+            name: "multi_up";
+            signal: "elm,action,multi,up";
+            source: "elm";
+            script {
+               set_int(multi_down, 0);
+            }
+         }
+         program { name: "pass_event_enable";
+            signal: "elm,event,pass,enabled";
+            source: "elm";
+            script {
+               set_mouse_events(PART:"over", 0);
+               set_mouse_events(PART:"disabler", 0);
+            }
+         }
+         program { name: "pass_event_disable";
+            signal: "elm,event,pass,disabled";
+            source:"elm";
+            script {
+               set_mouse_events(PART:"over", 1);
+               set_mouse_events(PART:"disabler", 1);
+            }
+         }
+         program { name: "repeat_event_enable";
+            signal: "elm,event,repeat,enabled";
+            source: "elm";
+            script {
+               set_repeat_events(PART:"over", 1);
+               set_repeat_events(PART:"disabler", 1);
+            }
+         }
+         program { name: "repeat_event_disable";
+            signal: "elm,event,repeat,disabled";
+            source:"elm";
+            script {
+               set_repeat_events(PART:"over", 0);
+               set_repeat_events(PART:"disabler", 0);
+            }
+         }
+      }
+   }
+
+group { name: "elm/button/base/spinner/vertical_date_picker";
+   inherit: "elm/button/base/spinner/vertical";
+   parts {
+      part { name: "bg";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 206 188;
+         }
+      }
+      part { name: "elm.text";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 146;
+            max: -1 146;
+            fixed: 1 1;
+            color: 0 0 0 255;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            text {
+               font: "TizenSans:style=Light";
+               size: 90;
+               ellipsis: 0.0;
+            }
+         }
+         description { state: "pressed" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+   }
+}
+
+// ************* button text ********** //
+#define STYLE_TAGS \
+   tag:  "br" "\n";\
+   tag:  "ps" "ps";\
+   tag:  "tab" "\t";\
+   tag:  "b" "+ font_weight=Bold";
+
+styles {
+   style { name: "button_ampm";
+      base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
+      STYLE_TAGS
+   }
+   style { name: "button_ampm_dim";
+      base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
+      STYLE_TAGS
+   }
+   style { name: "button_ampm_press";
+      base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
+      STYLE_TAGS
+   }
+}
+
+
+   group { name: "elm/button/base/datetime/default";
+      data.item: "vector_ux" "default";
+      data.item: "corner_radius" "39";
+      script {
+         public mouse_down = 0;
+         public multi_down = 0;
+         public disabled = 0;
+         public text = 0;
+         public content = 0;
+         public animate = 0;
+         public selected = 0;
+         public minw = 0;
+         public minh = 0;
+         public get_effect_min_size(base_effect, Float:ratio, min_w, min_h) {
+            new x, y, w, h;
+            get_geometry(base_effect, x, y, w, h);
+            if (w > h) {
+               set_float(min_w, w - h * (1 - ratio));
+               set_float(min_h, h * ratio);
+            } else {
+               set_float(min_w, w * ratio);
+               set_float(min_h, h - w * (1 - ratio));
+            }
+         }
+      }
+      parts {
+         part { name: "base";
+            scale: 1;
+            type: SPACER;
+            description { state: "default" 0.0;
+               min: 50 78;
+            }
+         }
+         //Base Shape Part
+         part { name: "tizen_vg_shape";
+            type: SWALLOW;
+            clip_to: "tizen_vg_shape_clipper";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 78;
+               rel1.relative: 0 0.0;
+               rel2.relative: 1 1.0;
+            }
+         }
+         part { name: "tizen_vg_shape_clipper";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 82 198 216 255;
+            }
+            description { state: "disabled" 0.0;
+               color: 138 195 204 255;
+            }
+         }
+         part { name: "effect_spacer";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+            }
+         }
+         //Effect Shape Part
+         part { name: "tizen_vg_shape2";
+            type: SWALLOW;
+            clip_to: "tizen_vg_shape_clipper2";
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+            }
+            description { state: "ready" 0.0;
+               rel1.to: "effect_spacer";
+               rel2.to: "effect_spacer";
+            }
+            description { state: "pressed" 0.0;
+               inherit: "ready" 0.0;
+            }
+         }
+         part { name: "tizen_vg_shape_clipper2";
+            type: RECT;
+            description { state: "default" 0.0;
+               visible: 0;
+               color: 0 0 0 0;
+            }
+            description { state: "ready" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+            description { state: "pressed" 0.0;
+               color: 0 0 0 77;
+            }
+         }
+         part { name: "padding_left_top";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel2.relative: 0.0 0.0;
+               min: 22 0;
+               fixed: 1 1;
+            }
+         }
+         part { name: "padding_right_bottom";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "tizen_vg_shape";
+               rel2.to: "tizen_vg_shape";
+               align: 1.0 1.0;
+               rel1.relative: 1.0 1.0;
+               min: 22 4;
+               fixed: 1 1;
+            }
+         }
+         part { name: "icon_rect";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               align: 0.0 0.5;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "padding_left_top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "padding_left_top";
+                  to_y: "padding_right_bottom";
+               }
+               min: 0 60;
+               fixed: 1 1;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: 60 60;
+               max: 60 60;
+               fixed: 1 1;
+            }
+            description { state: "icon_only" 0.0;
+               inherit: "default" 0.0;
+            }
+         }
+         part { name: "icon_text_padding";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+               align: 1.0 0.5;
+               min: 0 0;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to: "elm.text";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to: "elm.text";
+               }
+               fixed: 1 1;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: 14 0;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "clipper";
+            description { state: "default" 0.0;
+               align: 0.0 1.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "padding_left_top";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to_x: "padding_left_top";
+                  to_y: "padding_right_bottom";
+               }
+               min: 0 60;
+               fixed: 1 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               align: 1.0 0.5;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "icon_text_padding";
+                  to_y: "padding_left_top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "icon_text_padding";
+                  to_y: "padding_right_bottom";
+               }
+               min: 60 60;
+               fixed: 1 1;
+            }
+            description { state: "icon_only" 0.0;
+               rel1.to: "tizen_vg_shape";
+               rel2.to: "tizen_vg_shape";
+               min: 60 60;
+               max: 60 60;
+               align: 0.5 0.5;
+               fixed: 1 1;
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "icon_rect";
+                  to_y: "padding_left_top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "padding_right_bottom";
+               }
+               text {
+                  style: "button_main";
+                  max: 1 0;
+               }
+               color: 250 250 250 255;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               text.style: "button_main_press";
+               color: 250 250 250 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               text.style: "button_main_dim";
+               color: 250 250 250 163;
+            }
+         }
+         part { name: "clipper";
+            type: RECT;
+            description { state: "default" 0.0;
+            }
+            description { state: "pressed" 0.0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 163;
+            }
+         }
+         part { name: "event";
+            type: RECT;
+            description { state: "default" 0.0;
+               rel1.to: "tizen_vg_shape";
+               rel2.to: "tizen_vg_shape";
+               color: 0 0 0 0;
+            }
+         }
+      }
+      programs {
+         program { name: "pressed_effect";
+            action: STATE_SET "ready" 0.0;
+            target: "tizen_vg_shape_clipper2";
+            action: STATE_SET "custom" 0.0;
+            target: "tizen_vg_shape2";
+            after: "pressed_effect2";
+         }
+         program { name: "pressed_effect2";
+            action: STATE_SET "pressed" 0.0;
+            target: "elm.text";
+            target: "clipper";
+            target: "tizen_vg_shape2";
+            target: "tizen_vg_shape_clipper2";
+            transition: GLIDE_EASE_OUT(0.15);
+            after: "pressed_effect3";
+         }
+         program { name: "pressed_effect3";
+            script {
+               set_int(animate, 0);
+            }
+         }
+         program { name: "delay_unpressed_effect";
+            in: 0.1 0.0;
+            after: "unpressed_effect";
+         }
+         program { name: "unpressed_effect";
+            script {
+               if (get_int(disabled) == 0) {
+                 run_program(PROGRAM:"unpressed_effect2");
+                 run_program(PROGRAM:"unpressed_effect3");
+               } else {
+                 run_program(PROGRAM:"disabled_effect");
+                 run_program(PROGRAM:"disabled_effect2");
+                 run_program(PROGRAM:"disabled_effect3");
+               }
+            }
+         }
+         program { name: "unpressed_effect2";
+            action: STATE_SET "ready" 0.0;
+            target: "tizen_vg_shape2";
+            target: "tizen_vg_shape_clipper2";
+            transition: GLIDE_EASE_OUT(0.45);
+         }
+         program { name: "unpressed_effect3";
+            action: STATE_SET "default" 0.0;
+            target: "elm.text";
+            transition: GLIDE_EASE_OUT(0.45);
+            after: "unpressed_effect4";
+         }
+         program { name: "unpressed_effect4";
+            action: STATE_SET "default" 0.0;
+            target: "clipper";
+            after: "finished_animation";
+         }
+         program { name: "disabled_effect";
+            action: STATE_SET "ready" 0.0;
+            target: "tizen_vg_shape2";
+            target: "tizen_vg_shape_clipper2";
+            transition: GLIDE_EASE_OUT(0.45);
+         }
+         program { name: "disabled_effect2";
+            action: STATE_SET "disabled" 0.0;
+            target: "elm.text";
+            transition: GLIDE_EASE_OUT(0.45);
+         }
+         program { name: "disabled_effect3";
+            action: STATE_SET "disabled" 0.0;
+            target: "clipper";
+            target: "tizen_vg_shape_clipper";
+            transition: GLIDE_EASE_OUT(0.45);
+            after: "finished_animation";
+         }
+         program { name: "finished_animation";
+            action: STATE_SET "default" 0.0;
+            target: "tizen_vg_shape2";
+            target: "tizen_vg_shape_clipper2";
+         }
+         program { name: "pressed";
+            signal: "mouse,down,1*";
+            source: "event";
+            script {
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) {
+                  stop_program(PROGRAM:"delay_unpressed_effect");
+                  set_int(mouse_down, 1);
+                  set_int(animate, 1);
+                  custom_state(PART:"tizen_vg_shape2", "default", 0.0);
+                  get_effect_min_size(PART:"effect_spacer", 0.7, minw, minh);
+                  set_state_val(PART:"tizen_vg_shape2", STATE_MIN, get_int(minw), get_int(minh));
+                  emit("elm,action,press", "");
+                  run_program(PROGRAM:"pressed_effect");
+               }
+            }
+         }
+         program { name: "unpressed";
+            signal: "mouse,up,1";
+            source: "event";
+            script {
+               if (get_int(mouse_down) == 1) {
+                  set_int(mouse_down, 0);
+                  if (get_int(disabled) == 0) {
+                     if (get_int(animate) == 0) {
+                        run_program(PROGRAM:"unpressed_effect");
+                     } else {
+                        set_state(PART:"elm.text", "pressed", 0.0);
+                        set_state(PART:"clipper", "pressed", 0.0);
+                        set_state(PART:"tizen_vg_shape2", "pressed", 0.0);
+                        set_state(PART:"tizen_vg_shape_clipper2", "pressed", 0.0);
+                        set_int(animate, 0);
+                        run_program(PROGRAM:"delay_unpressed_effect");
+                     }
+                     emit("elm,action,unpress", "");
+                  }
+               }
+            }
+         }
+         program { name: "touch_snd";
+            signal: "mouse,clicked,1";
+            source: "event";
+            script {
+               if (get_int(multi_down) == 0) {
+                  if (get_int(disabled) == 0) {
+                     run_program(PROGRAM:"touch_sound");
+                     run_program(PROGRAM:"clicked_signal");
+                  }
+               }
+            }
+         }
+         program { name: "touch_sound";
+            action: RUN_PLUGIN "touch_sound";
+         }
+         program { name: "clicked_signal";
+            in: 0.001 0.0;
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            script {
+               set_int(content, 1);
+               set_state(PART:"icon_text_padding", "visible", 0.0);
+               if (get_int(text) == 1) {
+                  set_state(PART:"icon_rect", "visible", 0.0);
+                  set_state(PART:"elm.swallow.content", "visible", 0.0);
+               } else {
+                  set_state(PART:"icon_rect", "icon_only", 0.0);
+                  set_state(PART:"elm.swallow.content", "icon_only", 0.0);
+                  set_state(PART:"padding_left_top", "icon_only", 0.0);
+               }
+            }
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            script {
+               set_int(content, 0);
+               set_state(PART:"icon_text_padding", "default", 0.0);
+               set_state(PART:"icon_rect", "default", 0.0);
+               set_state(PART:"elm.swallow.content", "default", 0.0);
+            }
+         }
+         program { name: "text_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            script {
+               set_int(text, 1);
+               if (get_int(content) == 1) {
+                  set_state(PART:"icon_rect", "visible", 0.0);
+                  set_state(PART:"elm.swallow.content", "visible", 0.0);
+               }
+            }
+         }
+         program { name: "text_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            script {
+               set_int(text, 0);
+               if (get_int(content) == 1) {
+                  set_state(PART:"icon_rect", "icon_only", 0.0);
+                  set_state(PART:"elm.swallow.content", "icon_only", 0.0);
+               }
+            }
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            script {
+               set_int(disabled, 1);
+               if (get_int(animate) == 1) return;
+               set_state(PART:"clipper", "disabled", 0.0);
+               set_state(PART:"tizen_vg_shape_clipper", "disabled", 0.0);
+               set_state(PART:"elm.text", "disabled", 0.0);
+            }
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            script {
+               set_int(disabled, 0);
+               set_state(PART:"clipper", "default", 0.0);
+               set_state(PART:"tizen_vg_shape_clipper", "default", 0.0);
+               set_state(PART:"elm.text", "default", 0.0);
+            }
+         }
+         program { name: "multi_down";
+            signal: "elm,action,multi,down";
+            source: "elm";
+            script {
+               set_int(multi_down, 1);
+            }
+         }
+         program { name: "multi_up";
+            signal: "elm,action,multi,up";
+            source: "elm";
+            script {
+               set_int(multi_down, 0);
+            }
+         }
+         program { name: "pass_event_enable";
+            signal: "elm,event,pass,enabled";
+            source: "elm";
+            script {
+               set_mouse_events(PART:"event", 0);
+            }
+         }
+         program { name: "pass_event_disable";
+            signal: "elm,event,pass,disabled";
+            source:"elm";
+            script {
+               set_mouse_events(PART:"event", 1);
+            }
+         }
+         program { name: "repeat_event_enable";
+            signal: "elm,event,repeat,enabled";
+            source: "elm";
+            script {
+               set_repeat_events(PART:"event", 1);
+            }
+         }
+         program { name: "repeat_event_disable";
+            signal: "elm,event,repeat,disabled";
+            source:"elm";
+            script {
+               set_repeat_events(PART:"event", 0);
+            }
+         }
+      }
+   }
+
+   group { name: "elm/button/base/datetime/ampm";
+      inherit: "elm/button/base/datetime/default";
+      parts {
+         part { name: "base";
+            description { state: "default" 0.0;
+               min: 160 78;
+            }
+         }
+         part { name: "tizen_vg_shape";
+            description { state: "default" 0.0;
+               min: 0 78;
+            }
+         }
+         part { name: "tizen_vg_shape_clipper";
+            description { state: "unselected" 0.0;
+               color: 204 204 204 255;
+            }
+         }
+         part { name: "padding_left_top";
+            description { state: "default" 0.0;
+               min: 32 10;
+            }
+         }
+         part { name: "padding_right_bottom";
+            description { state: "default" 0.0;
+               min: 32 14;
+            }
+         }
+         part { name: "elm.text";
+            description { state: "default" 0.0;
+               text.style: "button_ampm";
+               color: 250 250 250 255;
+            }
+            description { state: "pressed" 0.0;
+               text.style: "button_ampm_press";
+               color: 250 250 250 255;
+            }
+            description { state: "unselected" 0.0;
+               inherit: "default" 0.0;
+               text.style: "button_ampm_dim";
+               color: 250 250 250 163;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               text.style: "button_ampm_dim";
+               color: 250 250 250 163;
+            }
+         }
+      }
+      program { name: "unselected";
+         signal: "elm,action,button,unselected";
+         source: "elm";
+         script {
+            set_int(selected, 0);
+            set_state(PART:"tizen_vg_shape_clipper", "unselected", 0.0);
+            set_state(PART:"elm.text", "unselected", 0.0);
+            if (get_int(animate) == 1)
+              run_program(PROGRAM:"pressed_effect3");
+         }
+      }
+      program { name: "selected";
+         signal: "elm,action,button,selected";
+         source: "elm";
+         script {
+            set_int(selected, 1);
+            set_state(PART:"tizen_vg_shape_clipper", "default", 0.0);
+            if (get_int(animate) == 0)
+               set_state(PART:"elm.text", "default", 0.0);
+         }
+      }
+      program { name: "unselected_effect";
+         action: STATE_SET "unselected" 0.0;
+         target: "elm.text";
+         transition: GLIDE_EASE_OUT(0.45);
+         after: "unpressed_effect4";
+      }
+      program { name: "unpressed_effect";
+         script {
+            if (get_int(disabled) == 0) {
+               run_program(PROGRAM:"unpressed_effect2");
+               if (get_int(selected) == 0)
+                  run_program(PROGRAM:"unselected_effect");
+               else
+                  run_program(PROGRAM:"unpressed_effect3");
+            } else {
+               run_program(PROGRAM:"disabled_effect");
+               run_program(PROGRAM:"disabled_effect2");
+               run_program(PROGRAM:"disabled_effect3");
+            }
+         }
+      }
+   }
+
+/***********************SPINNER BUTTONS STYLES******************************/
+
+#undef BUTTON_DEFAULT_PAD_SIZE
+#undef BUTTON_DEFAULT_MIN_SIZE
+#undef BUTTON_DEFAULT_FONT_SIZE
+#undef BUTTON_TEXT_PAD_SIZE
+#undef BUTTON_TEXT_MIN_SIZE
+#undef BUTTON_TEXT_FONT_SIZE
+#undef BUTTON_BORDER
diff --git a/ElmSharp/theme/tv/widgets/check.edc b/ElmSharp/theme/tv/widgets/check.edc
new file mode 100644 (file)
index 0000000..3b30023
--- /dev/null
@@ -0,0 +1,358 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/****************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt, Page no. 76,
+*****************************************************************************/
+#define CHECK_SIZE 38 38
+#define CHECK_FONT_SIZE 28
+
+group { name: "elm/check/base/default";
+   images {
+      image: "checkbox_check_foc.png" COMP;
+      image: "checkbox_check_nor.png" COMP;
+      image: "checkbox_uncheck_nor.png" COMP;
+      image: "checkbox_uncheck_foc.png" COMP;
+   }
+   data.item: "focus_highlight" "on";
+   script {
+      public is_focus=0;
+      public set_focus() {
+         set_int(is_focus, 1);
+      }
+      public unset_focus() {
+         set_int(is_focus, 0);
+      }
+      public set_check_set() {
+         if (get_int(is_focus)) {
+            set_state(PART:"check", "highlight", 0.0);
+            set_state(PART:"bg", "highlight", 0.0);
+         }
+         else {
+            set_state(PART:"check", "visible", 0.0);
+            set_state(PART:"bg", "default", 0.0);
+         }
+      }
+      public set_check_unset() {
+         set_state(PART:"check", "default", 0.0);
+         if (get_int(is_focus)) {
+            set_state(PART:"bg", "highlight", 0.0);
+         }
+         else {
+            set_state(PART:"bg", "default", 0.0);
+         }
+      }
+   }
+   parts {
+      part { name: "bg"; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel2.relative: 0.0 1.0;
+            align: 0.0 0.5;
+            min: CHECK_SIZE;
+            max: CHECK_SIZE;
+            aspect: 1.0 1.0;
+            aspect_preference: VERTICAL;
+            image.normal: "checkbox_uncheck_nor.png";
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "checkbox_uncheck_foc.png";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 51;
+         }
+      }
+      part { name: "check"; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 {
+               to: "bg";
+            }
+            rel2 {
+               to: "bg";
+            }
+            image.normal: "checkbox_check_nor.png";
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "checkbox_check_foc.png";
+            visible: 1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 51;
+            visible: 1;
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.0 0.5;
+            fixed: 1 0;
+            rel1.to_x: "bg";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "bg";
+            rel2.relative: 1.0 1.0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            fixed: 1 0;
+            visible: 1;
+            aspect: 1.0 1.0;
+            min: CHECK_SIZE;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 128;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 128;
+            fixed: 1 0;
+            visible: 1;
+            aspect: 1.0 1.0;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to_x: "elm.swallow.content";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.elm.text";
+            rel2.relative: 0.0 1.0;
+            color: 0 0 0 255;
+            text {
+               font: FONT_L;
+               size: CHECK_FONT_SIZE;
+               min: 0 1;
+               align: -1.0 0.5;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 128;
+            color3: 0 0 0 0;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 128;
+            color3: 0 0 0 0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+      part { name: "pad.elm.text"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 0;
+            max: 1 0;
+            fixed: 1 0;
+            rel1.relative: 1.0 1.0;
+            align: 1.0 0.5;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            min: 12 0;
+            max: 12 0;
+         }
+      }
+      part { name: "events"; type: RECT;
+         ignore_flags: ON_HOLD;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "disabler"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "click";
+         signal: "mouse,clicked,1"; source: "events";
+         action: SIGNAL_EMIT "elm,action,check,toggle" "";
+      }
+      program { name: "check_on";
+         signal: "elm,state,check,on"; source: "elm";
+         script{
+            set_check_set();
+         }
+      }
+      program { name: "check_off";
+         signal: "elm,state,check,off"; source: "elm";
+         script{
+            set_check_unset();
+         }
+      }
+      program { name: "text_show";
+         signal: "elm,state,text,visible"; source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.text";
+         target: "pad.elm.text";
+      }
+      program { name: "text_hide";
+         signal: "elm,state,text,hidden"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible"; source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "focus";
+         signal: "elm,action,focus"; source: "elm";
+         script {
+            set_focus();
+         }
+         after: "enable_focus";
+      }
+      program { name: "enable_focus";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"check", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"check", "highlight", 0.0);
+
+            get_state(PART:"bg", st, 30, vl);
+            if (!strcmp(st, "default"))
+               set_state(PART:"bg", "highlight", 0.0);
+         }
+      }
+      program { name: "unfocus";
+         signal: "elm,action,unfocus"; source: "elm";
+         script {
+            unset_focus();
+         }
+         after: "disable_focus";
+      }
+      program { name: "disable_focus";
+         script {
+         new st[31];
+         new Float:vl;
+         get_state(PART:"check", st, 30, vl);
+         if (!strcmp(st, "highlight"))
+            set_state(PART:"check", "visible", 0.0);
+
+         get_state(PART:"bg", st, 30, vl);
+            if (!strcmp(st, "highlight"))
+               set_state(PART:"bg", "default", 0.0);
+         }
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled"; source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "bg";
+         target: "disabler";
+         after: "disable_text";
+      }
+      program { name: "disable_text";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+
+            get_state(PART:"elm.swallow.content", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.swallow.content", "disabled", 0.0);
+
+            get_state(PART:"check", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"check", "disabled_visible", 0.0);
+            else
+               set_state(PART:"check", "disabled", 0.0);
+         }
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "bg";
+         target: "disabler";
+         after: "enable_text";
+      }
+      program { name: "enable_text";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "disabled_visible"))
+               set_state(PART:"elm.text", "visible", 0.0);
+            else
+               set_state(PART:"elm.text", "default", 0.0);
+
+            get_state(PART:"elm.swallow.content", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.swallow.content", "visible", 0.0);
+            else
+               set_state(PART:"elm.swallow.content", "default", 0.0);
+
+            get_state(PART:"check", st, 30, vl);
+            if (!strcmp(st, "disabled_visible"))
+               set_state(PART:"check", "visible", 0.0);
+            else
+               set_state(PART:"check", "default", 0.0);
+         }
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/ctxpopup.edc b/ElmSharp/theme/tv/widgets/ctxpopup.edc
new file mode 100644 (file)
index 0000000..f23d5e1
--- /dev/null
@@ -0,0 +1,625 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*************************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140508.ppt page 90  style 1text
+Tizen TV_General Guide_GUI Guideline_v1.0_140508.ppt page 91  style 1text.1icon
+***************************************************************************************/
+
+group { name: "elm/ctxpopup/bg/default";
+   parts {
+      part { name: "ctxpopup_bg"; type: RECT;  mouse_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 64;
+         }
+      }
+   }
+   programs {
+      program { name: "clicked_event";
+         signal: "mouse,clicked,1";
+         source: "ctxpopup_bg";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program { name: "show";
+         signal: "elm,state,show";
+         source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "ctxpopup_bg";
+         transition: LINEAR 0.25;
+      }
+      program { name: "hide";
+         signal: "elm,state,hide";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "ctxpopup_bg";
+         transition: LINEAR 0.25;
+      }
+   }
+}
+
+group { name: "elm/ctxpopup/base/default";
+   parts {
+      part { name: "base"; type: RECT;
+         clip_to: "clip";
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         clip_to: "clip";
+         description { state: "default" 0.0;
+            rel1 { to:"base"; offset: 8 6; }
+            rel2 { to:"base"; offset: -7 -8; }
+         }
+      }
+      part { name: "event"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 1;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "clip"; type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+            visible: 0;
+            rel1.offset: -20 -20;
+            rel2.offset: 19 19;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            visible: 1;
+         }
+      }
+
+      // 17x10
+      part { name: "arrow_area_left"; type: SPACER;
+         description { state: "default" 0.0;
+            min: 17 10;
+            fixed: 1 0;
+            align: 1.0 0.5;
+            rel1.to: "base";
+            rel1.offset: 2 5;
+            rel2.to: "base";
+            rel2.offset: 2 -6;
+            rel2.relative: 0.0 1.0;
+         }
+      }
+      part { name: "elm.swallow.arrow_left"; type: SWALLOW; mouse_events: 0;
+         clip_to: "clip";
+         dragable.x: 1 1 0;
+         dragable.y: 1 1 0;
+         dragable.confine: "arrow_area_left";
+         description { state: "default" 0.0;
+            min: 9 13;
+            fixed: 1 1;
+         }
+      }
+
+      part { name: "arrow_area_right"; type: SPACER;
+         description { state: "default" 0.0;
+            min: 17 10;
+            fixed: 1 0;
+            align: 0.0 0.5;
+            rel1.to: "base";
+            rel1.offset: -3 5;
+            rel1.relative: 1.0 0.0;
+            rel2.to: "base";
+            rel2.offset: -3 -6;
+         }
+      }
+      part { name: "elm.swallow.arrow_right"; type: SWALLOW; mouse_events: 0;
+         clip_to: "clip";
+         dragable.x: 1 1 0;
+         dragable.y: 1 1 0;
+         dragable.confine: "arrow_area_right";
+         description { state: "default" 0.0;
+            min: 9 13;
+            fixed: 1 1;
+         }
+      }
+
+      // 10x17
+      part { name: "arrow_area_up"; type: SPACER;
+         description { state: "default" 0.0;
+            min: 10 17;
+            fixed: 1 1;
+            align: 0.5 1;
+            rel1.to: "base";
+            rel1.offset: 5 3;
+            rel2.to: "base";
+            rel2.offset: -6 3;
+            rel2.relative: 1.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.arrow_up"; type: SWALLOW; mouse_events: 0;
+         clip_to: "clip";
+         dragable.x: 1 1 0;
+         dragable.y: 1 1 0;
+         dragable.confine: "arrow_area_up";
+         description { state: "default" 0.0;
+            min: 11 9;
+            fixed: 1 1;
+         }
+      }
+
+      part { name: "arrow_area_down"; type: SPACER;
+         description { state: "default" 0.0;
+            min: 10 17;
+            fixed: 1 1;
+            align: 0.5 0.0;
+            rel1.to: "base";
+            rel1.offset: 5 -4;
+            rel1.relative: 0.0 1.0;
+            rel2.to: "base";
+            rel2.offset: -6 -4;
+         }
+      }
+      part { name: "elm.swallow.arrow_down"; type: SWALLOW; mouse_events: 0;
+         clip_to: "clip";
+         dragable.x: 1 1 0;
+         dragable.y: 1 1 0;
+         dragable.confine: "arrow_area_down";
+         description { state: "default" 0.0;
+            min: 11 9;
+            fixed: 1 1;
+         }
+      }
+   }
+   programs {
+      program {
+         signal: "elm,state,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: LINEAR 0.2;
+         target: "clip";
+         target: "event";
+      }
+      program {
+         signal: "elm,state,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: LINEAR 0.3;
+         target: "clip";
+         target: "event";
+         after: "hide2";
+      }
+      program { name: "hide2";
+         action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
+      }
+
+   }
+}
+
+group { name: "elm/ctxpopup/arrow/default";
+   images {
+      image: "popover_arrow.png" COMP;
+   }
+   parts {
+      part { name: "ctxpopup_arrow";
+         type: IMAGE;
+         scale: 1;
+         description {
+            state: "default" 0.0;
+            min: 17 10;
+            fixed: 1 1;
+            visible: 0;
+            align: 0.5 0.5;
+            image.normal: "popover_arrow.png";
+         }
+         description { state: "left" 0.0;
+            inherit: "default" 0.0;
+            align: 0.0 0.5;
+            map.on: 1;
+            map.smooth: 1;
+            map.rotation.z: 270;
+         }
+         description { state: "right" 0.0;
+            inherit: "default" 0.0;
+            align: 1.0 0.5;
+            map.on: 1;
+            map.smooth: 1;
+            map.rotation.z: 90;
+         }
+         description { state: "top" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            align: 0.5 0.0;
+         }
+         description { state: "bottom" 0.0;
+            inherit: "default" 0.0;
+            align: 0.5 1.0;
+            map.on: 1;
+            map.smooth: 1;
+            map.rotation.z: 180;
+         }
+      }
+   }
+   programs {
+      program { name: "enable_left_arrow";
+         signal: "elm,state,left";
+         source: "elm";
+         action: STATE_SET "left" 0.0;
+         target: "ctxpopup_arrow";
+      }
+      program { name: "enable_right_arrow";
+         signal: "elm,state,right";
+         source: "elm";
+         action: STATE_SET "right" 0.0;
+         target: "ctxpopup_arrow";
+      }
+      program { name: "enable_top_arrow";
+         signal: "elm,state,top";
+         source: "elm";
+         action: STATE_SET "top" 0.0;
+         target: "ctxpopup_arrow";
+      }
+      program { name: "enable_bottom_arrow";
+         signal: "elm,state,bottom";
+         source: "elm";
+         action: STATE_SET "bottom" 0.0;
+         target: "ctxpopup_arrow";
+      }
+   }
+}
+
+group {
+   name: "elm/ctxpopup/icon_text_style_item/default";
+   alias: "elm/ctxpopup/text_style_item/default";
+   alias: "elm/ctxpopup/icon_style_item/default";
+   images {
+      image: "hoversel_entry_bg.png" COMP;
+   }
+   parts {
+     part { name: "base.pad"; type: SPACER;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           min: 12 70;
+           max: 12 70;
+           align: 0 1;
+         }
+      }
+
+     part { name: "bg"; type: RECT;
+        mouse_events: 0;
+        description { state: "default" 0.0;
+           rel1.to: "base.pad";
+           rel1.relative: 1 0;
+           min: 300 70;
+           max: 300 70;
+           color: 0 0 0 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "elm.proxy1.icon";
+         type: PROXY;
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            max: 20 20;
+            fixed : 1 1;
+            rel1.to: "elm.swallow.icon";
+            rel2.to: "elm.swallow.icon";
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 2.0 1.0;
+            source: "elm.swallow.icon";
+            visible: 0;
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "elm.proxy2.icon"; type: PROXY;
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 20 20;
+            fixed : 1 1;
+            rel1.to: "elm.proxy1.icon";
+            rel2.to: "elm.proxy1.icon";
+            rel1.relative: 0.0 0.0;
+            rel2.relative: 1.0 1.0;
+            max: 20 20;
+            source: "elm.proxy1.icon";
+            visible: 0;
+            align: 1.0 0.5;
+         }
+      }
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base.pad";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "base.pad";
+            rel2.relative: 1.0 1.0;
+            min: 0 0;
+            max: 37 37;
+            align: 0 0.5;
+         }
+      }
+      part { name: "elm.text"; type: TEXT;  mouse_events: 0;
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 40;
+            fixed: 1 1;
+            align: 0 0.5;
+            rel1.relative: 1.0 0.0;
+            rel1.to_x: "elm.swallow.icon";
+            rel2.to_x: "elm.proxy2.icon";
+            rel2.relative: 1.0 1.0;
+            color: 89 89 89 255;
+            text {
+               font: "FONT_M";
+               size: 30;
+               align: 0.0 0.5;
+               min: 1 1;
+               ellipsis: -1;
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 255;
+         }
+      }
+      part { name: "over1"; type: RECT; mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "bottom_line"; type: RECT;
+         mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 0 2;
+            max: 9999 2;
+            fixed: 1 1;
+            rel1.to:"over1";
+            rel1.relative: 0 1;
+            rel1.offset: -32 0;
+            rel2.to:"over1";
+            color: 222 222 222 255;
+         }
+
+      }
+      part { name: "over2"; type: RECT; mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 255 255 0 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "disclip";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "enabled" 0.0;
+            color: 127 127 127 127;
+         }
+      }
+      part { name: "blocker";
+         type: RECT;
+         description { state: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "enabled" 0.0;
+            visible: 1;
+            color: 0 0 0 0;
+         }
+      }
+   }
+   programs {
+      program { name: "focused";
+         signal: "elm,action,focus"; source: "elm";
+         action: STATE_SET "focus" 0.0;
+         target: "over2";
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program{
+         name: "item_unclick";
+         signal: "mouse,clicked,1";
+         source: "over1";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "enabled" 0.0;
+         target: "disclip";
+         target: "blocker";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disclip";
+         target: "blocker";
+      }
+      program { name: "item_click2";
+         signal: "mouse,down,1";
+         source: "over2";
+         script {
+            set_state(PART:"elm.text", "clicked", 0.0);
+            set_state(PART:"bg", "clicked", 0.0);
+         }
+      }
+      program { name: "item_unclick2";
+         signal: "mouse,up,1";
+         source: "over2";
+         script {
+            set_state(PART:"elm.text", "default", 0.0);
+            set_state(PART:"bg", "default", 0.0);
+         }
+      }
+   }
+}
+group {
+   name: "elm/ctxpopup/item_compress/default";
+   images {
+      image: "hoversel_entry_bg.png" COMP;
+   }
+   parts {
+      part { name: "bg"; type: RECT;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "elm.swallow.icon";
+         type: SWALLOW;
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 25 25;
+            max: 25 25;
+            align: 0 0.5;
+            aspect: 1.0 1.0;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 40;
+            fixed: 0 1;
+            align: 0.5 0.5;
+            rel1.relative: 1.0 0.0;
+            rel1.to: "elm.swallow.icon";
+            rel2.relative: 1.0 1.0;
+            color: 255 255 255 255;
+            text {
+               font: "FONT_M";
+               size: 30;
+               min: 0 1;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 255;
+         }
+      }
+      part { name: "over1"; type: RECT; mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "disclip";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "enabled" 0.0;
+            color: 127 127 127 127;
+         }
+      }
+      part { name: "blocker";
+         type: RECT;
+         description { state: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "enabled" 0.0;
+            visible: 1;
+            color: 0 0 0 0;
+         }
+      }
+   }
+   programs {
+      program { name: "item_unclick";
+         signal: "mouse,clicked,1";
+         source: "over1";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "enabled" 0.0;
+         target: "disclip";
+         target: "blocker";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disclip";
+         target: "blocker";
+      }
+      program { name: "item_click2";
+         signal: "mouse,down,1";
+         source: "over2";
+         script {
+            set_state(PART:"elm.text", "clicked", 0.0);
+            set_state(PART:"bg", "clicked", 0.0);
+         }
+      }
+      program { name: "item_unclick2";
+         signal: "mouse,up,1";
+         source: "over2";
+         script {
+            set_state(PART:"elm.text", "default", 0.0);
+            set_state(PART:"bg", "default", 0.0);
+         }
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/datetime.edc b/ElmSharp/theme/tv/widgets/datetime.edc
new file mode 100644 (file)
index 0000000..5421038
--- /dev/null
@@ -0,0 +1,759 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*********************************************************************
+Doc: Tizen TV_General Guide_GUI Guideline_v1.0_140709.ppt page:93
+**********************************************************************/
+
+group { name: "elm/datetime/base/default";
+   alias: "elm/datetime/base/date_layout";
+   parts {
+      part { name: "base_bg";
+        type: RECT;
+        scale: 1;
+        description { state: "default" 0.0;
+           color: 250 250 250 255;
+        }
+      }
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 646 406;
+         }
+      }
+      part { name: "bg.top.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: -1 0;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "base";
+            }
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "bg.bottom.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: -1 0;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "base";
+            }
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 646 348;
+            max: 646 348;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "bg.top.padding";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "bg.bottom.padding";
+            }
+            color: 250 250 250 255;
+         }
+      }
+      part { name: "left.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "bg";
+            }
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "right.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            fixed: 1 0;
+            rel2.to: "bg";
+            rel1 {
+               relative: 1.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "bg";
+            }
+            align: 1.0 1.0;
+         }
+      }
+      part { name: "field0";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 206 0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "left.padding";
+            }
+            rel2.to: "left.padding";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "center.padding1";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 14 0;
+            max: 14 -1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "field0";
+            }
+            rel2.to: "field0";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "field1";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 206 0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "center.padding1";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "center.padding2";
+               to_y: "center.padding1";
+            }
+         }
+      }
+      part { name: "center.padding2";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 14 0;
+            max: 14 -1;
+            rel1.to: "field2";
+            rel2 {
+               relative: 0.0 1.0;
+               to: "field2";
+            }
+            align: 1.0 0.5;
+         }
+      }
+      part { name: "field2";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 206 0;
+            rel1.to: "right.padding";
+            rel2 {
+               relative: 0.0 1.0;
+               to: "right.padding";
+            }
+            align: 1.0 0.5;
+         }
+      }
+      part { name: "field3";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "field4";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "field5";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            visible: 0;
+         }
+      }
+      part {
+         name: "event_area";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "access";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            color: 0 0 0 0;
+         }
+      }
+   }
+}
+
+group { name: "elm/datetime/base/time_layout";
+   parts {
+      part { name: "base_bg";
+        type: RECT;
+        scale: 1;
+        description { state: "default" 0.0;
+           color: 250 250 250 255;
+        }
+      }
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 603 406;
+         }
+      }
+      part { name: "bg.top.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: -1 0;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "base";
+            }
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "bg.bottom.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: -1 0;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "base";
+            }
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 603 348;
+            max: 603 348;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "bg.top.padding";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "bg.bottom.padding";
+            }
+            color: 250 250 250 255;
+         }
+      }
+      part { name: "left.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "bg";
+            }
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "right.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            fixed: 1 0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "bg";
+            }
+            align: 1.0 1.0;
+         }
+      }
+      part { name: "field3";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 146 0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "left.padding";
+            }
+            rel2.to: "left.padding";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "center.padding1";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 39 0;
+            max: 39 -1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "field3";
+            }
+            rel2.to: "field3";
+            align: 0.0 0.5;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            min: 55 0;
+            max: 55 -1;
+         }
+      }
+      part { name: "text_bg";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "center.padding1";
+            }
+            rel2.to: "center.padding1";
+            align: 0.0 0.5;
+            min: 18 0;
+            max: 18 -1;
+            fixed: 1 0;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "hour.minute.colon";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "text_bg";
+            rel2.to: "text_bg";
+            color: 0 0 0 255;
+            fixed: 1 1;
+            text {
+               min: 1 0;
+               font: "TizenSans:style=Light";
+               size: "106";
+               text: ":";
+               align: 0.5 0.44;
+            }
+            visible: 1;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "center.padding2";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 39 0;
+            max: 39 -1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "text_bg";
+            }
+            rel2.to: "text_bg";
+            align: 0.0 0.5;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "field4";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 146 0;
+             rel1 {
+               relative: 1.0 0.0;
+               to: "center.padding2";
+            }
+            rel2.to: "center.padding2";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "center.padding3";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 39 0;
+            max: 39 -1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "field4";
+            }
+            rel2.to: "field4";
+            align: 0.0 0.5;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            min: 55 0;
+            max: 55 -1;
+         }
+      }
+      part { name: "text_bg2";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "center.padding3";
+            }
+            rel2.to: "center.padding3";
+            align: 0.0 0.5;
+            min: 18 0;
+            max: 18 -1;
+            fixed: 1 0;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "hour.minute.colon2";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "text_bg2";
+            rel2.to: "text_bg2";
+            color: 0 0 0 255;
+            fixed: 1 1;
+            text {
+               min: 1 0;
+               font: "TizenSans:style=Light";
+               size: "106";
+               text: ":";
+               align: 0.5 0.44;
+            }
+            visible: 1;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "center.padding4";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 39 0;
+            max: 39 -1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "text_bg2";
+            }
+            rel2.to: "text_bg2";
+            align: 0.0 0.5;
+         }
+         description { state: "invisible" 0.0;
+            inherit: default 0.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "field5";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 160 0;
+            max: 160 -1;
+             rel1 {
+               relative: 1.0 0.0;
+               to: "center.padding4";
+            }
+            rel2.to: "center.padding4";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "field0";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "field1";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "field2";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            visible: 0;
+         }
+      }
+      part {
+         name: "event_area";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "access";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            color: 0 0 0 0;
+         }
+      }
+   }
+   programs {
+      program { name: "colon_field3_visible";
+         signal: "elm,state,colon,visible,field3";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "center.padding1";
+         target: "hour.minute.colon";
+         target: "text_bg";
+         target: "center.padding2";
+      }
+      program { name: "colon_field3_invisible";
+         signal: "elm,state,colon,invisible,field3";
+         source: "elm";
+         action: STATE_SET "invisible" 0.0;
+         target: "center.padding1";
+         target: "hour.minute.colon";
+         target: "text_bg";
+         target: "center.padding2";
+      }
+      program { name: "colon_field4_visible";
+         signal: "elm,state,colon,visible,field4";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "center.padding3";
+         target: "hour.minute.colon2";
+         target: "text_bg2";
+         target: "center.padding4";
+      }
+      program { name: "colon_field4_invisible";
+         signal: "elm,state,colon,invisible,field4";
+         source: "elm";
+         action: STATE_SET "invisible" 0.0;
+         target: "center.padding3";
+         target: "hour.minute.colon2";
+         target: "text_bg2";
+         target: "center.padding4";
+      }
+   }
+}
+
+group { name: "elm/datetime/base/time_layout_24hr";
+   inherit: "elm/datetime/base/time_layout";
+
+   parts {
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 388 406;
+         }
+      }
+      part { name: "left.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "bg";
+            }
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "right.padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            fixed: 1 0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "bg";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "bg";
+            }
+            align: 1.0 1.0;
+         }
+      }
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 388 348;
+            max: 388 348;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "bg.top.padding";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "bg.bottom.padding";
+            }
+            color: 250 250 250 255;
+         }
+      }
+      part { name: "field5";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 -1;
+            visible: 0;
+            rel1.to: "right.padding";
+            rel2.to: "right.padding";
+         }
+      }
+      part { name: "access";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            color: 0 0 0 0;
+         }
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/entry.edc b/ElmSharp/theme/tv/widgets/entry.edc
new file mode 100644 (file)
index 0000000..e8fcd3f
--- /dev/null
@@ -0,0 +1,1710 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define ENTRY_TEXT_SIZE_INC 60
+#define ENTRY_PREEDIT_BACKGROUND_COLOR_INC "#FAFAFA"
+#define ENTRY_PREEDIT_TEXT_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_UNDERLINE_COLOR_INC "#FAFAFA"
+#define ENTRY_PREEDIT_SUB1_COLOR_INC "#2EA8E1"
+#define ENTRY_PREEDIT_SUB2_COLOR_INC "#9962C3"
+#define ENTRY_PREEDIT_SUB3_COLOR_INC "#76DE37"
+#define ENTRY_PREEDIT_SUB4_COLOR_INC "#999999"
+#define DEFAULT_COLOR 69 143 255 255
+
+styles
+{
+   style { name: "entry_single_textblock_style";
+      base: "font="FONT_M" font_size="32" align=left color=#cccccc wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_single_textblock_selected_style";
+      base: "font="FONT_M" font_size="32" align=left color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_single_textblock_disabled_style";
+      base: "font="FONT_M" font_size="32" align=left color=#919191 wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_single_textblock_guide_style";
+      base: "font="FONT_M" font_size="32" align=left color=#7f7f7f wrap=none text_class=entry left_margin=0 right_margin=0 ellipsis=0.0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "hilight" "+ font_weight=Bold";
+   }
+}
+styles
+{
+   style { name: "entry_textblock_style";
+      base: "font="FONT_M" font_size="32" align=left color=#cccccc wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_selected_style";
+      base: "font="FONT_M" font_size="32" align=left color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_disabled_style";
+      base: "font="FONT_M" font_size="32" align=left color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_guide_style";
+      base: "font="FONT_M" font_size="32" align=left color=#7f7f7f wrap=none text_class=entry left_margin=0 right_margin=0 ellipsis=0.0";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "hilight" "+ font_weight=Bold";
+   }
+}
+styles
+{
+   style { name: "entry_pin_textblock_style";
+      base: "font="FONT_M" font_size="34" align=center color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_pin_textblock_selected_style";
+      base: "font="FONT_M" font_size="34" align=center color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_pin_textblock_disabled_style";
+      base: "font="FONT_M" font_size="34" align=center color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_pin_textblock_guide_style";
+      base: "font="FONT_M" font_size="34" align=center color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0 ellipsis=0.0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "hilight" "+ font_weight=Bold";
+   }
+}
+styles
+{
+   style { name: "entry_single_small_textblock_style";
+      base: "font="FONT_M" font_size="24" align=left color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_single_small_textblock_selected_style";
+      base: "font="FONT_M" font_size="24" align=left color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_single_small_textblock_disabled_style";
+      base: "font="FONT_M" font_size="24" align=left color=#3d3d3d wrap=none text_class=entry left_margin=0 right_margin=0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
+   }
+   style { name: "entry_single_small_textblock_guide_style";
+      base: "font="FONT_M" font_size="24" align=left color=#7f7f7f wrap=none text_class=entry left_margin=0 right_margin=0 ellipsis=0.0";
+      tag:  "br" "";
+      tag:  "ps" "";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "hilight" "+ font_weight=Bold";
+   }
+}
+styles
+{
+   style { name: "entry_textblock_style_mixedwrap";
+      base: "font="FONT_M" font_size="32" color=#000 wrap=mixed text_class=entry left_margin=2 right_margin=2";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_selected_style_mixedwrap";
+      base: "font="FONT_M" font_size="32" color=#019cff wrap=word text_class=entry left_margin=2 right_margin=2";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_disabled_style_mixedwrap";
+      base: "font="FONT_M" font_size="32" color=#919191 wrap=char text_class=entry left_margin=2 right_margin=2";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_guide_style_mixedwrap";
+      base: "font="FONT_M" font_size="32" color=#7f7f7f wrap=mixed text_class=entry left_margin=2 right_margin=2 ellipsis=0.0";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "hilight" "+ font_weight=Bold";
+   }
+}
+styles
+{
+   style { name: "entry_textblock_style_charwrap";
+      base: "font="FONT_M" font_size="32" color=#000 wrap=char text_class=entry left_margin=2 right_margin=2";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_selected_style_charwrap";
+      base: "font="FONT_M" font_size="32" color=#019cff wrap=word text_class=entry left_margin=2 right_margin=2";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_disabled_style_charwrap";
+      base: "font="FONT_M" font_size="32" color=#919191 wrap=char text_class=entry left_margin=2 right_margin=2";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+      tag:  "hilight" "+ font_weight=Bold";
+      tag:  "preedit" "+ underline=on underline_color=#000";
+      tag:  "preedit_sel" "+ backing=on backing_color=#000 color=#000";
+   }
+   style { name: "entry_textblock_guide_style_charwrap";
+      base: "font="FONT_M" font_size="32" color=#7f7f7f wrap=char text_class=entry left_margin=2 right_margin=2 ellipsis=0.0";
+      tag:  "em" "+ font_style=Oblique";
+      tag:  "hilight" "+ font_weight=Bold";
+   }
+}
+
+images {
+   image: "search_searchbar_bg_foc.png" COMP;
+   image: "search_searchbar_bg_nor.png" COMP;
+   image: "search_searchbar_small_bg_foc.png" COMP;
+   image: "search_searchbar_small_bg_nor.png" COMP;
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 103
+stlye: Text Input Field
+**********************************************************************************/
+group { name: "elm/scroller/entry/input.field";
+   inherit: "elm/scroller/base/default";
+   alias: "elm/scroller/entry_single/input.field";
+   parts {
+      part { name: "pad.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 28 5;
+            max: 28 5;
+            fixed: 1 1;
+            rel1.to: "bg";
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 30 5;
+            max: 30 5;
+            fixed: 1 1;
+            rel2.to: "bg";
+            align: 1.0 1.0;
+        }
+      }
+      part { name: "base_highlight";
+         after: "bg";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            image {
+               normal: "search_searchbar_bg_nor.png";
+               border: 5 5 5 5;
+               border_scale: 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_foc.png";
+         }
+         description { state: "over" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_foc.png";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_nor.png";
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_foc.png";
+         }
+         description { state: "normal" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_nor.png";
+         }
+      }
+      part { name: "clipper";
+         description { state: "default" 0.0;
+            rel1.to: "pad.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.right";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.content";
+         description { state: "default" 0.0;
+            rel1.to: "pad.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.right";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+   }
+   programs {
+      program { name: "disable";
+         signal: "elm,state,disabled"; source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "select";
+         signal: "elm,state,selected"; source: "elm";
+         action: STATE_SET "selected" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "over";
+         signal: "elm,state,mouse,in"; source: "elm";
+         action: STATE_SET "over" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "go_active";
+         signal:  "elm,state,selected"; source:  "elm";
+         action:  STATE_SET "selected" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "go_passive";
+         signal:  "elm,state,unselected"; source:  "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "highlight_show";
+         signal: "elm,action,focus_highlight,show"; source: "elm";
+         action: STATE_SET "selected" 0.0;
+         transition: ACCELERATE 0.01;
+         target: "base_highlight";
+      }
+      program { name: "highlight_hide";
+         signal: "elm,action,focus_highlight,hide"; source: "elm";
+         action: STATE_SET "normal" 0.0;
+         transition: DECELERATE 0.01;
+         target: "base_highlight";
+      }
+   }
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 103
+stlye: Text Input Field with Icon
+**********************************************************************************/
+group { name: "elm/scroller/entry/input.field.icon";
+   inherit: "elm/scroller/entry/input.field";
+   alias: "elm/scroller/entry_single/input.field.icon";
+   parts {
+      part { name: "pad.left";
+         description { state: "default" 0.0;
+            min: 15 5;
+            max: 15 5;
+         }
+      }
+      part { name: "pad.right";
+         description { state: "default" 0.0;
+            min: 30 5;
+            max: 30 5;
+        }
+      }
+      part { name: "icon_base"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 197 200 203 255;
+         }
+      }
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         scale: 1;
+         clip_to: "icon_base";
+         description { state: "default" 0.0;
+            min: 60 60;
+            max: 60 60;
+            fixed: 1 1;
+            rel1.to: "pad.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.left";
+            rel2.to_y: "pad.right";
+            rel2.relative: 1.0 0.0;
+            align: 0.0 0.5;
+            aspect_preference: BOTH;
+         }
+      }
+      part { name: "clipper";
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.icon";
+         }
+      }
+      part { name: "elm.swallow.content";
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.icon";
+         }
+      }
+   }
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 105
+stlye: Text Input Field
+**********************************************************************************/
+group { name: "elm/scroller/entry/input.field.small";
+   inherit: "elm/scroller/entry/input.field";
+   alias: "elm/scroller/entry_single/input.field.small";
+   parts {
+      part { name: "pad.left";
+         description { state: "default" 0.0;
+            min: 18 4;
+            max: 18 4;
+         }
+      }
+      part { name: "pad.right";
+         description { state: "default" 0.0;
+            min: 18 4;
+            max: 18 4;
+        }
+      }
+      part { name: "base_highlight";
+         description { state: "default" 0.0;
+            image {
+               normal: "search_searchbar_small_bg_nor.png";
+               border: 4 4 4 4;
+               border_scale: 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_small_bg_foc.png";
+         }
+         description { state: "over" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_small_bg_foc.png";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_small_bg_nor.png";
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_small_bg_foc.png";
+         }
+         description { state: "normal" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_small_bg_nor.png";
+         }
+      }
+   }
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 105
+stlye: Text Input Field with Icon
+**********************************************************************************/
+group { name: "elm/scroller/entry/input.field.small.icon";
+   inherit: "elm/scroller/entry/input.field.small";
+   alias: "elm/scroller/entry_single/input.field.small.icon";
+   parts {
+      part { name: "pad.left"; type: SPACER;
+         description { state: "default" 0.0;
+            min: 14 5;
+            max: 14 5;
+         }
+      }
+      part { name: "pad.right";
+         description { state: "default" 0.0;
+            min: 18 5;
+            max: 18 5;
+        }
+      }
+      part { name: "icon_base"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 158 158 158 178;
+         }
+      }
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         scale: 1;
+         clip_to: "icon_base";
+         description { state: "default" 0.0;
+            min: 60 60;
+            max: 60 60;
+            fixed: 1 1;
+            rel1.to: "pad.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.left";
+            rel2.to_y: "pad.right";
+            rel2.relative: 1.0 0.0;
+            align: 0.0 0.5;
+            aspect_preference: BOTH;
+         }
+      }
+
+      part { name: "clipper";
+         description { state: "default" 0.0;
+            rel1.to_x: "pad.icon";
+         }
+      }
+      part { name: "elm.swallow.content";
+         description { state: "default" 0.0;
+            rel1.to_x: "pad.icon";
+         }
+      }
+      part { name: "pad.icon"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 8 40;
+            max: 8 40;
+            fixed: 1 1;
+            rel1.to: "elm.swallow.icon";
+            rel1.relative: 1.0 0.5;
+            align: 0.0 0.5;
+         }
+      }
+   }
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 103
+stlye: Text Input Field
+**********************************************************************************/
+group { name: "elm/entry/base/input.field";
+   alias: "elm/entry/base/default";
+   data {
+      item: "focus_highlight" "on";
+   }
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_textblock_guide_style";
+               min: 0 1;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text"; type: TEXTBLOCK; mouse_events: 1;
+         scale: 1;
+         entry_mode: EDITABLE;
+         select_mode: DEFAULT;
+         cursor_mode: BEFORE;
+         multiline: 1;
+         source: "elm/entry/selection/input.field";
+         source4: "elm/entry/cursor/input.field";
+         source5: "elm/entry/anchor/input.field";
+         description { state: "default" 0.0;
+            text {
+               style: "entry_textblock_style";
+               min: 0 1;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_disabled_style";
+               min: 0 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+   programs {
+      program { name: "focus";
+         signal: "load"; source: "";
+         action: FOCUS_SET;
+         target: "elm.text";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled"; source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "elm.text";
+      }
+      program { name: "select";
+         signal: "elm,state,selected"; source: "elm";
+         action: STATE_SET "selected" 0.0;
+         target: "elm.text";
+      }
+      program { name: "over";
+         signal: "elm,state,mouse,in"; source: "elm";
+         action: STATE_SET "over" 0.0;
+         target: "elm.text";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+         target: "elm.guide";
+      }
+      program { name: "go_active";
+         signal:  "elm,state,selected"; source:  "elm";
+         action:  STATE_SET "selected" 0.0;
+         target:  "elm.text";
+         target: "elm.guide";
+      }
+      program { name: "go_passive";
+         signal:  "elm,state,unselected"; source:  "elm";
+         action:  STATE_SET "default" 0.0;
+         target:  "elm.text";
+         target: "elm.guide";
+      }
+      program { name: "gdisable";
+         signal: "elm,guide,disabled"; source: "elm";
+         action: STATE_SET "hidden" 0.0;
+         target: "elm.guide";
+      }
+      program { name: "genable";
+         signal: "elm,guide,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.guide";
+      }
+      program { name: "highlight_show";
+         signal: "elm,action,focus_highlight,show"; source: "elm";
+         action: STATE_SET "selected" 0.0;
+         transition: ACCELERATE 0.01;
+         target: "elm.text";
+      }
+      program { name: "highlight_hide";
+         signal: "elm,action,focus_highlight,hide"; source: "elm";
+         action: STATE_SET "normal" 0.0;
+         transition: DECELERATE 0.01;
+         target: "elm.text";
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 103
+style: Text Input Field
+*******************************************************************************************/
+group { name: "elm/entry/base-single/input.field";
+   inherit: "elm/entry/base/input.field";
+   alias: "elm/entry/base-single/input.field.icon";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_single_textblock_guide_style";
+               min: 0 1;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text"; type: TEXTBLOCK; mouse_events: 1;
+         scale: 1;
+         multiline: 0;
+         description { state: "default" 0.0;
+            text {
+               style: "entry_single_textblock_style";
+               min: 1 1;
+               ellipsis: -1;
+               max: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_textblock_disabled_style";
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 103
+style : Text Input Field
+NO EDIT
+**************************************************************************/
+group { name: "elm/entry/base-single-noedit/input.field";
+   inherit: "elm/entry/base/input.field";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_single_textblock_guide_style";
+               min: 0 1;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         entry_mode: PLAIN;
+         multiline: 0;
+         scale: 1;
+         source: "elm/entry/selection/input.field";
+         source4: "";
+         source5: "elm/entry/anchor/input.field";
+         description { state: "default" 0.0;
+            text {
+               style: "entry_single_textblock_style";
+               min: 1 1;
+               ellipsis: -1;
+               max: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_textblock_disabled_style";
+            }
+         }
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 103
+style : Text Input Field
+PASSWORD
+********************************************************************************************/
+group { name: "elm/entry/base-password/input.field";
+   inherit: "elm/entry/base/input.field";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_single_textblock_guide_style";
+               min: 0 1;
+               align: 0.0 0.0;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text"; type: TEXTBLOCK; mouse_events: 1;
+         entry_mode: PASSWORD;
+         cursor_mode: BEFORE;
+         select_mode: EXPLICIT;
+         scale: 1;
+         multiline: 0;
+         source: "elm/entry/selection/input.field";
+         source4: "elm/entry/cursor/input.field";
+         source5: "elm/entry/anchor/input.field";
+         description { state: "default" 0.0;
+            text {
+               style: "entry_single_textblock_style";
+               repch: "*";
+               min: 1 1;
+               ellipsis: -1;
+               max: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_textblock_disabled_style";
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 104
+style : Text Input Field, pin style
+Summmary: This style of entry is to get middle-aligned text.
+***************************************************************************************/
+group { name: "elm/entry/base-single/input.field.pin";
+   alias: "elm/entry/base/input.field.pin";
+   inherit: "elm/entry/base-single/input.field";
+   parts {
+      part { name: "pad.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 18 5;
+            max: 18 5;
+            fixed: 1 1;
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 18 5;
+            max: 18 5;
+            fixed: 1 1;
+            align: 1.0 1.0;
+        }
+      }
+      part { name: "base_highlight";
+         before: "elm.text";
+         scale: 1;
+         description { state: "default" 0.0;
+            image {
+               normal: "search_searchbar_bg_nor.png";
+               border: 5 5 5 5;
+               border_scale: 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_foc.png";
+         }
+         description { state: "over" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_foc.png";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_nor.png";
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_foc.png";
+         }
+         description { state: "normal" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "search_searchbar_bg_nor.png";
+         }
+      }
+      part { name: "elm.text";
+         entry_mode: EDITABLE;
+         select_mode: EXPLICIT;
+         cursor_mode: UNDER;
+         multiline: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.right";
+            rel2.relative: 0.0 0.0;
+            text {
+               style: "entry_pin_textblock_style";
+               min: 1 1;
+               ellipsis: -1;
+               max: 0 0;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_disabled_style";
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+   programs {
+      program { name: "disable";
+         target: "base_highlight";
+      }
+      program { name: "select";
+         target: "base_highlight";
+      }
+      program { name: "over";
+         signal: "elm,state,mouse,in"; source: "elm";
+         action: STATE_SET "over" 0.0;
+         target: "base_highlight";
+      }
+      program { name: "enable";
+         target: "base_highlight";
+      }
+      program { name: "go_active";
+         target: "base_highlight";
+      }
+      program { name: "go_passive";
+         target: "base_highlight";
+      }
+      program { name: "highlight_show";
+         target: "base_highlight";
+      }
+      program { name: "highlight_hide";
+         target: "base_highlight";
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 104
+style : Text Input Field, pin style, password mode
+Summmary: This style of entry is to get middle-aligned text in password mode.
+***************************************************************************************/
+group { name: "elm/entry/base-password/input.field.pin";
+   inherit: "elm/entry/base-single/input.field.pin";
+   parts {
+      part { name: "elm.text";
+         entry_mode: PASSWORD;
+         select_mode: EXPLICIT;
+         cursor_mode: UNDER;
+         multiline: 0;
+         scale: 1;
+         source: "elm/entry/selection/input.field";
+         source4: "elm/entry/cursor/input.field";
+         source5: "elm/entry/anchor/input.field";
+         description { state: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_style";
+               min: 1 1;
+               ellipsis: -1;
+               max: 0 0;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_disabled_style";
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_pin_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt
+Page No. 105
+style: Text Input Field Small
+*******************************************************************************************/
+group { name: "elm/entry/base-single/input.field.small";
+   inherit: "elm/entry/base/input.field";
+   alias: "elm/entry/base-single/input.field.small.icon";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_single_small_textblock_guide_style";
+               min: 0 1;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         scale: 1;
+         entry_mode: EDITABLE;
+         select_mode: DEFAULT;
+         cursor_mode: BEFORE;
+         multiline: 0;
+         source: "elm/entry/selection/input.field";
+         source4: "elm/entry/cursor/input.field.small";
+         source5: "elm/entry/anchor/input.field";
+         description { state: "default" 0.0;
+            color: 61 61 61 127;
+            text {
+               style: "entry_single_small_textblock_style";
+               min: 1 1;
+               max: 0 0;
+               align: 0.0 0.5;
+               ellipsis: -1;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_small_textblock_disabled_style";
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            color: 61 61 61 255;
+            text {
+               style: "entry_single_small_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            text {
+               style: "entry_single_small_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+/*******************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140430_1.ppt
+Page No. 81,
+style : text input field
+PROMPT
+********************************************************************************************/
+group { name: "elm/entry/cursor/input.field";
+   parts {
+      part { name: "base"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "cursor"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 2 36;
+            max: 2 36;
+            fixed: 1 1;
+            color: DEFAULT_COLOR;
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "blink";
+         action: STATE_SET "visible" 0.0;
+         in: 0.4 0.0;
+         target: "cursor";
+         after: "blink2";
+      }
+      program { name: "blink2";
+         action: STATE_SET "default" 0.0;
+         in: 0.4 0.0;
+         target: "cursor";
+         after: "blink";
+      }
+      program { name: "focused";
+         signal: "elm,action,focus"; source: "elm";
+         after: "blink";
+      }
+      program { name: "noblink";
+         action: ACTION_STOP;
+         target: "blink";
+         target: "blink2";
+         after: "noblink2";
+      }
+      program { name: "noblink2";
+         action: STATE_SET "default" 0.0;
+         target: "cursor";
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "cursor";
+         after: "noblink";
+      }
+   }
+}
+
+/*******************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140430_1.ppt
+Page No. 83,
+style : text input field small
+PROMPT
+********************************************************************************************/
+group { name: "elm/entry/cursor/input.field.small";
+   inherit: "elm/entry/cursor/input.field";
+   parts {
+      part { name: "base"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "cursor"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 2 26;
+            max: 2 26;
+            fixed: 1 1;
+            color: DEFAULT_COLOR;
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+}
+//Selection default used as source.
+group { name: "elm/entry/selection/input.field";
+   parts {
+      part { name: "bg"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 128 128 128 128;
+         }
+      }
+   }
+}
+
+//Anchor default used as source.
+group { name: "elm/entry/anchor/input.field";
+   parts {
+      part { name: "bg"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 128 0 0 64;
+         }
+      }
+   }
+}
+//Mixed wrap
+group { name: "elm/entry/base-mixedwrap/input.field";
+   inherit: "elm/entry/base/input.field";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_textblock_guide_style_mixedwrap";
+               min: 0 1;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            text {
+               style: "entry_textblock_style_mixedwrap";
+               min: 0 1;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_disabled_style_mixedwrap";
+               min: 0 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_selected_style_mixedwrap";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_style_mixedwrap";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+//Char wrap
+group { name: "elm/entry/base-charwrap/input.field";
+   inherit: "elm/entry/base/input.field";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_textblock_guide_style_charwrap";
+               min: 0 1;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            text {
+               style: "entry_textblock_style_charwrap";
+               min: 0 1;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_disabled_style_charwrap";
+               min: 0 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_selected_style_charwrap";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_style_charwrap";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+//No wrap
+group { name: "elm/entry/base-nowrap/input.field";
+   inherit: "elm/entry/base/input.field";
+   parts {
+      part { name: "elm.guide"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_textblock_guide_style";
+               min: 0 1;
+               align: 0.0 0.0;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         scale: 1;
+         description { state: "default" 0.0;
+            text {
+               style: "entry_textblock_style";
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.0;
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_disabled_style";
+               min: 0 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_selected_style";
+               min: 0 1;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+/*************************************************************************
+Doc: Tizen TV_General Guide_GUI Guideline_v1.0_140709.ppt page:93
+**************************************************************************/
+
+#define ENTRY_SOUND_PROGRAM \
+   program { name: "touch_snd"; \
+      signal: "mouse,clicked,1"; \
+      source: "elm.text"; \
+      script { \
+         new st[31]; \
+         new Float:vl; \
+         get_state(PART:"elm.text", st, 30, vl); \
+         if (strcmp(st, "disabled")) \
+            run_program(PROGRAM:"touch_sound"); \
+      } \
+   } \
+   program { name: "touch_sound"; \
+      action: RUN_PLUGIN "touch_sound"; \
+   }
+
+group { name: "elm/entry/base-single/spinner/vertical";
+   alias: "elm/entry/base-single/spinner/vertical_time_picker";
+   alias: "elm/entry/base-single/spinner/datetime";
+   data.item: "default_font_size" "106";
+   styles {
+      style { name: "entry_single_spinner_vertical_textblock_style";
+         base: "font=Tizen:style=Light font_size=106 color=#000000ff align=center";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+      style { name: "entry_single_spinner_vertical_textblock_focused_style";
+         base: "font=Tizen:style=Light font_size=106 color=#000000ff align=center";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+      style { name: "entry_single_spinner_vertical_textblock_disabled_style";
+         base: "font=Tizen:style=Light font_size=106 color=#000000a3 align=center";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+      style { name: "entry_single_spinner_vertical_textblock_guide_style";
+         base: "font=Tizen:style=Light font_size=106 color=#000000a3 align=center";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+   }
+   data {
+      item: context_menu_orientation "horizontal";
+   }
+   parts {
+      part { name: "elm.guide";
+         type: TEXTBLOCK;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.text";
+            rel2.to: "elm.text";
+            text {
+               style: "entry_single_spinner_vertical_textblock_guide_style";
+               min: 0 1;
+               max: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         mouse_events: 1;
+         scale: 1;
+         entry_mode: EDITABLE;
+         select_mode: EXPLICIT;
+         cursor_mode: BEFORE;
+         multiline: 0;
+         source: "elm/entry/selection/input.field"; // selection under
+         source4: "elm/entry/cursor/input.field"; // cursorover
+         source5: "elm/entry/anchor/input.field"; // anchor under
+         description { state: "default" 0.0;
+            text {
+               style: "entry_single_spinner_vertical_textblock_style";
+               min: 1 1;
+               max: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_spinner_vertical_textblock_focused_style";
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_spinner_vertical_textblock_disabled_style";
+            }
+         }
+      }
+   }
+   programs {
+      program { name: "action_focus";
+         signal: "elm,action,focus";
+         source: "elm";
+         action: STATE_SET "focused" 0.0;
+         target: "elm.text";
+      }
+      program { name: "action_unfocus";
+         signal: "elm,action,unfocus";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "focus";
+         signal: "load";
+         source: "";
+         action: FOCUS_SET;
+         target: "elm.text";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "elm.text";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "gdisable";
+         signal: "elm,guide,disabled";
+         source: "elm";
+         action: STATE_SET "hidden" 0.0;
+         target: "elm.guide";
+      }
+      program { name: "genable";
+         signal: "elm,guide,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.guide";
+      }
+      ENTRY_SOUND_PROGRAM
+   }
+}
+
+group { name: "elm/entry/base-single/spinner/vertical_date_picker";
+   inherit: "elm/entry/base-single/spinner/vertical";
+   data.item: "default_font_size" "90";
+   styles {
+      style { name: "entry_single_spinner_vertical_date_picker_textblock_style";
+         base: "font=TizenSans:style=Light font_size=90 color=#000000ff align=center text_class=tizen";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+      style { name: "entry_single_spinner_vertical_date_picker_textblock_focused_style";
+         base: "font=TizenSans:style=Light font_size=90 color=#000000ff align=center text_class=tizen";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+      style { name: "entry_single_spinner_vertical_date_picker_textblock_disabled_style";
+         base: "font=TizenSans:style=Light font_size=90 color=#000000a3 align=center text_class=tizen";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+      style { name: "entry_single_spinner_vertical_date_picker_textblock_guide_style";
+         base: "font=TizenSans:style=Light font_size=90 color=#000000a3 wrap=none align=center left_margin=1 right_margin=3 text_class=tizen ellipsis=1.0";
+         tag:  "br" "";
+         tag:  "em" "+ font_style=Oblique";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_highlight" "+ backing=on backing_color="ENTRY_PREEDIT_HIGHLIGHT_BACKGROUND_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+         tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+         tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+      }
+   }
+   parts {
+      part { name: "elm.guide";
+         type: TEXTBLOCK;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            text {
+               style: "entry_single_spinner_vertical_date_picker_textblock_guide_style";
+               min: 0 1;
+               max: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         mouse_events: 1;
+         scale: 1;
+         entry_mode: EDITABLE;
+         select_mode: EXPLICIT;
+         cursor_mode: BEFORE;
+         multiline: 0;
+         source: "elm/entry/selection/input.field"; // selection under
+         source4: "elm/entry/cursor/input.field"; // cursorover
+         source5: "elm/entry/anchor/input.field"; // anchor under
+         description { state: "default" 0.0;
+            min: 206 188;
+            text {
+               style: "entry_single_spinner_vertical_date_picker_textblock_style";
+            }
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_spinner_vertical_date_picker_textblock_focused_style";
+            }
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text {
+               style: "entry_single_spinner_vertical_date_picker_textblock_disabled_style";
+            }
+         }
+      }
+   }
+}
+
+#undef DEFAULT_COLOR
diff --git a/ElmSharp/theme/tv/widgets/gengrid.edc b/ElmSharp/theme/tv/widgets/gengrid.edc
new file mode 100644 (file)
index 0000000..bb5cd53
--- /dev/null
@@ -0,0 +1,1144 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*****************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt  38
+******************************************************************************/
+
+group { name: "elm/gengrid/item/default/default";
+   data.item: "texts" "elm.text";
+   data.item: "contents" "elm.swallow.icon";
+   data.item: "focus_highlight" "on";
+   images {
+      image: "content_innershadow.png" COMP;
+   }
+   parts {
+      part { name: "base"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 179;
+            rel1 {
+               relative: 1.0 1.0;
+               to: "top.left.pad";
+            }
+            rel2 {
+               relative: 0.0 0.0;
+               to: "bottom.right.pad";
+            }
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 147 170 0 255;
+         }
+      }
+      part { name: "top.left.pad"; type: SPACER;
+         scale:1 ;
+         description { state: "default" 0.0;
+            rel2.relative: 0.0 0.0;
+            align: 0.0 0.0;
+            min: 20 20;
+         }
+      }
+      part { name: "bottom.right.pad"; type: SPACER;
+         scale:1 ;
+         description { state: "default" 0.0;
+            rel1.relative: 1.0 1.0;
+            align: 1.0 1.0;
+            min: 20 20;
+         }
+      }
+      part { name: "top.pad"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2 {
+               relative: 0.0 0.0;
+               to: "base";
+            }
+            align: 0.0 0.0;
+            min: 0 8;
+         }
+      }
+      part { name: "left.pad"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2 {
+               relative: 0.0 0.0;
+               to: "base";
+            }
+            align: 0.0 0.0;
+            min: 8 0;
+         }
+      }
+      part { name: "right.pad"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 {
+               relative: 1.0 1.0;
+               to: "base";
+            }
+            rel2.to: "base";
+            align: 1.0 1.0;
+            min: 8 0;
+         }
+      }
+      part { name: "text.base"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 60;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "base";
+            }
+            rel2.to: "base";
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "elm.text"; type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 211 211 211 255;
+            text {
+               font: "Tizen Sans";
+               size: 26;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            rel1.to: "text.base";
+            rel2.to: "text.base";
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         scale: 1;
+         clip_to: "clip";
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2 {
+               relative: 1.0 0.0;
+               to_x: "base";
+               to_y: "text.base";
+            }
+         }
+      }
+      part { name: "icon.shadow";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "clip";
+            rel2.to: "clip";
+            image {
+               normal: "content_innershadow.png";
+               border: 5 5 5 5;
+            }
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "clip"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+         }
+         description { state: "focused" 0.0;
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "left.pad";
+               to_y: "top.pad";
+            }
+            rel2 {
+               relative: 0.0 0.0;
+               to_x: "right.pad";
+               to_y: "text.base";
+            }
+         }
+      }
+   }
+   programs {
+      program { name: "focus";
+         signal: "elm,state,focused";
+         source: "elm";
+         action: STATE_SET "focused" 0.0;
+         target: "clip";
+         target: "elm.text";
+         target: "base";
+         target: "icon.shadow";
+         transition: LINEAR 0.1;
+      }
+      program { name: "unfocus";
+         signal: "elm,state,unfocused";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "clip";
+         target: "elm.text";
+         target: "base";
+         target: "icon.shadow";
+         transition: LINEAR 0.1;
+      }
+   }
+}
+
+/*****************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt  39
+******************************************************************************/
+
+group { name: "elm/gengrid/item/video_preview/default";
+   inherit: "elm/gengrid/item/default/default";
+   data.item: "texts" "elm.text elm.text.time";
+   data.item: "contents" "elm.swallow.icon";
+   images {
+      image: "round_rectangle_4X4.png" COMP;
+      image: "ico_default_video_180.png" COMP;
+   }
+   parts {
+      part { name: "rect";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 120 120;
+            rel1 {
+               relative: 0.5 0.5;
+               to: "elm.swallow.icon";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "elm.swallow.icon";
+            }
+            color: 100 100 100 100;
+            image {
+               normal: "round_rectangle_4X4.png";
+               border: 4 4 4 4;
+            }
+         }
+      }
+      part { name: "video.icon";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "rect";
+            rel2.to: "rect";
+            image.normal: "ico_default_video_180.png";
+         }
+      }
+      part { name: "time.pad"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "base";
+            }
+            align: 1.0 0.0;
+            min: 21 21;
+         }
+      }
+      part { name: "time.bg"; type: RECT;
+         scale: 1;
+         clip_to: "clip";
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2 {
+               relative: 1.0 0.0;
+               to: "base";
+            }
+            align: 0.5 0.0;
+            min: 0 54;
+            color: 127 127 127 127;
+         }
+      }
+      part { name: "elm.text.time"; type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            text {
+               font: "Tizen Sans";
+               size: 22;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            rel1 {
+               relative: 0.0 1.0;
+               to: "time.pad";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "time.pad";
+            }
+            align: 1.0 0.0;
+            color: 200 200 200 200;
+         }
+      }
+   }
+}
+
+/*****************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt  40
+******************************************************************************/
+
+group { name: "elm/gengrid/item/folder/default";
+   inherit: "elm/gengrid/item/default/default";
+   data.item: "texts" "elm.text elm.text2";
+   data.item: "contents" "";
+   images {
+      image: "ico_folder.png" COMP;
+   }
+   parts {
+      part { name: "base"; type: RECT;
+         scale: 1;
+         description { state: "focused" 0.0;
+            color: 126 128 255 255;
+         }
+      }
+      part { name: "icon.bg"; type: RECT;
+         scale: 1;
+         clip_to: "clip";
+         description { state: "default" 0.0;
+            color: 0 0 0 255;
+            rel1.to: "elm.swallow.icon";
+            rel2.to: "elm.swallow.icon";
+         }
+      }
+      part { name: "folder.icon";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 200 200;
+            max: 200 200;
+            rel1 {
+               relative: 0.5 0.5;
+               to: "icon.bg";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "icon.bg";
+            }
+            image {
+               normal: "ico_folder.png";
+            }
+         }
+      }
+      part { name: "text.base"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 80;
+         }
+      }
+      part { name: "elm.text"; type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 211 211 211 255;
+            text {
+               font: "Tizen Sans";
+               size: 26;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            rel1 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            align: 0.5 1.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "elm.text2"; type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 128 128 128 255;
+            text {
+               font: "Tizen Sans";
+               size: 22;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            rel1 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            align: 0.5 0.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+   }
+   programs {
+      program { name: "focus2";
+         signal: "elm,state,focused";
+         source: "elm";
+         action: STATE_SET "focused" 0.0;
+         target: "elm.text2";
+      }
+      program { name: "unfocus2";
+         signal: "elm,state,unfocused";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text2";
+      }
+   }
+}
+
+/*****************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.1_140709.ppt  41
+******************************************************************************/
+
+group { name: "elm/gengrid/item/default_2text/default";
+   inherit: "elm/gengrid/item/default/default";
+   data.item: "texts" "elm.text elm.text2";
+   data.item: "contents" "elm.swallow.icon";
+   parts {
+      part { name: "base"; type: RECT;
+         scale: 1;
+         description { state: "focused" 0.0;
+            color: 255 168 0 255;
+         }
+      }
+      part { name: "text.base"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 100;
+         }
+      }
+      part { name: "elm.text"; type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 211 211 211 255;
+            text {
+               font: "Tizen Sans";
+               size: 30;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            rel1 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            align: 0.5 1.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "elm.text2"; type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 128 128 128 255;
+            text {
+               font: "Tizen Sans";
+               size: 22;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            rel1 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "text.base";
+            }
+            align: 0.5 0.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+   }
+   programs {
+      program { name: "focus2";
+         signal: "elm,state,focused";
+         source: "elm";
+         action: STATE_SET "focused" 0.0;
+         target: "elm.text2";
+      }
+      program { name: "unfocus2";
+         signal: "elm,state,unfocused";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text2";
+      }
+   }
+}
+
+#define DEFAULT 1
+#define SELECTED 2
+#define FOCUSED 3
+#define DISABLED 4
+/*****************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt : 36 and 11
+Description: Gengrid for single line text
+******************************************************************************/
+group { name: "elm/gengrid/item/1text.1icon.bg/default";
+   data.item: "texts" "elm.text elm.text.1";
+   data.item: "contents" "elm.swallow.icon elm.swallow.icon_foc elm.swallow.end";
+   images {
+      image: "bt_bases.png" COMP;
+      image: "elipse_114.png" COMP;
+   }
+   script {
+      public is_selected, is_enabled, is_focused, is_init, cur_state;
+
+      public init_values() {
+         if(get_int(is_init)==0)
+         {
+            set_int(is_enabled, 1);
+            set_int(is_focused, 1);
+            set_int(is_init, 1);
+            set_int(cur_state, -1);
+         }
+      }
+      public set_states() {
+         new enab;
+         new foc;
+         new sel;
+         new c_state;
+         enab = get_int(is_enabled);
+         foc = get_int(is_focused);
+         sel = get_int(is_selected);
+         c_state = get_int(cur_state);
+         if(enab == 0)
+         {
+            if(c_state!=DISABLED)
+               run_program(PROGRAM:"do_disable");
+         }
+         else
+         {
+            if(foc == 1)
+            {
+               if(c_state!=FOCUSED)
+                  run_program(PROGRAM:"do_focus");
+            }
+            else if(sel == 1)
+            {
+               if(c_state!=SELECTED)
+                  run_program(PROGRAM:"do_select");
+            }
+            else
+            {
+               if(c_state!=DEFAULT)
+                  run_program(PROGRAM:"do_default");
+            }
+         }
+      }
+   }
+   parts {
+      part { name: "event"; type: RECT;
+         repeat_events: 1;
+         description {
+            state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "reorder_bg"; mouse_events: 0;
+         description { state: "default" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+            image {
+               normal: "bt_bases.png";
+               border: 6 6 6 6;
+            }
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "base"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 77;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 77;
+         }
+      }
+      part { name: "base_colored"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            color_class: "open_ux_theme";
+            visible: 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            color_class: "open_ux_theme_alpha";
+            visible: 1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "bg"; type: RECT; mouse_events: 0;
+         clip_to: "base";
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "bg_color_clipped"; type: RECT; mouse_events: 0;
+         clip_to: "base_colored";
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.pad"; type: SWALLOW;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 25 25;
+            align: 0.0 0.5;
+            rel1 {
+               relative: 0.0  1.0;
+            }
+            rel2 {
+               to_y: "elm.text";
+               relative: 0.0  0.0;
+            }
+         }
+      }
+      part { name: "pad.top"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 30;
+            max: 9999 30;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "pad.bottom"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 25;
+            max: 9999 25;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "pad.left"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 20 0;
+            max: 20 9999;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "pad.right"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 20 0;
+            max: 20 9999;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            align: 1.0 0.5;
+         }
+      }
+      part { name: "pad.middle"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 3;
+            max: 9999 3;
+            rel1.to_x: "pad.left";
+            rel1.to_y: "elm.text";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "pad.right";
+            rel2.to_y: "elm.text";
+            rel2.relative: 0.0 0.0;
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "elm.shadow.icon.bg"; type: PROXY;
+         description { state: "default" 0.0;
+            source: "elm.swallow.icon";
+            rel1.to: "elm.swallow.icon";
+            rel1.offset: 0 3;
+            rel2.to: "elm.swallow.icon";
+            rel2.offset: 0 3;
+            color: 0 0 0 64;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            source: "elm.swallow.icon_foc";
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            source: "elm.swallow.icon_foc";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "elm.image.icon.bg"; type: IMAGE;
+         clip_to: "disclip";
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            aspect: 1.0 1.0;
+            aspect_preference: BOTH;
+            rel1.to: "elm.swallow.icon";
+            rel2.to: "elm.swallow.icon";
+            color_class: "open_ux_theme";
+            image.normal: "elipse_114.png";
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme_white";
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme_white";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme_alpha20";
+         }
+      }
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         clip_to: "disclip";
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            aspect: 1.0 1.0;
+            aspect_preference: BOTH;
+            rel1.to_x: "pad.left";
+            rel1.to_y: "pad.top";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.right";
+            rel2.to_y: "pad.middle";
+            rel2.relative: 0.0 0.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme_alpha20";
+         }
+      }
+      part { name: "elm.swallow.icon_foc"; type: SWALLOW;
+         clip_to: "disclip";
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            aspect: 1.0 1.0;
+            aspect_preference: BOTH;
+            rel1.to: "elm.swallow.icon";
+            rel2.to: "elm.swallow.icon";
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.swallow.end";
+         clip_to: "disclip"; type: SWALLOW;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            align: 1.0 0.0;
+            aspect: 1.0 1.0;
+            aspect_preference: HORIZONTAL;
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 1.0 1.0;
+         }
+      }
+      part { name: "area_for_text"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "pad.left";
+            rel1.to_y: "pad.top";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.right";
+            rel2.to_y: "pad.bottom";
+            rel2.relative: 0.0 0.0;
+            align: 0.5 0.5;
+            color: 255 255 255 0;
+         }
+         part { name: "elm.text"; type: TEXT; mouse_events: 0;
+            effect: SOFT_SHADOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 211 211 211 255;
+               rel1.relative: 0.0 1.0;
+               rel2.relative: 1.0 1.0;
+               align: 0.5 1.0;
+               text {
+                  font: "Sans";
+                  size: 23;
+                  min: 0 1;
+                  text_class: "grid_item";
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 51;
+            }
+         }
+         part { name: "elm.text.1"; type: TEXT; mouse_events: 0;
+            effect: SOFT_SHADOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 211 211 211 255;
+               rel1.relative: 0.0 1.0;
+               rel2.relative: 1.0 1.0;
+               align: 0.5 1.0;
+               text {
+                  font: "Sans";
+                  size: 17;
+                  min: 0 1;
+                  text_class: "grid_item";
+               }
+               visible: 0;
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 51;
+            }
+         }
+      }
+      part { name: "disclip"; type: RECT;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel2.to: "base";
+            color_class: "open_ux_theme_white";
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme_alpha20";
+            visible: 1;
+         }
+      }
+      part { name: "event_blocker"; type: RECT; mouse_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "go_focused";
+         signal: "elm,state,focused"; source: "elm";
+         script {
+            init_values();
+            set_int(is_focused, 1);
+            set_states();
+         }
+      }
+      program { name: "go_unfocused";
+         signal: "elm,state,unfocused"; source: "elm";
+         script {
+            init_values();
+            set_int(is_focused, 0);
+            set_states();
+         }
+      }
+
+      program { name: "go_active";
+         signal: "elm,state,selected";
+         source: "elm";
+         script {
+            init_values();
+            set_int(is_selected, 1);
+            set_states();
+         }
+      }
+      program { name: "go_passive";
+         signal: "elm,state,unselected";
+         source: "elm";
+         script {
+            init_values();
+            set_int(is_selected, 0);
+            set_states();
+         }
+      }
+      program { name: "go_disabled";
+         signal: "elm,state,disabled";
+         source: "elm";
+         script {
+            init_values();
+            set_int(is_enabled, 0);
+            set_states();
+         }
+      }
+      program { name: "go_enabled";
+         signal: "elm,state,enabled";
+         source: "elm";
+         script {
+            init_values();
+            set_int(is_enabled, 1);
+            set_states();
+         }
+      }
+      program { name: "go_reorder_disabled";
+         signal: "elm,state,reorder,disabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "reorder_bg";
+         transition: DECELERATE 0.5;
+      }
+      program { name: "go_reorder_enabled";
+         signal: "elm,state,reorder,enabled";
+         source: "elm";
+         action: STATE_SET "enabled" 0.0;
+         target: "reorder_bg";
+         transition: DECELERATE 0.5;
+      }
+      program { name: "do_default";
+         action: STATE_SET "default" 0.0;
+         transition: LINEAR 0.1;
+         target: "base";
+         target: "base_colored";
+         target: "elm.text";
+         target: "elm.text.1";
+         target: "elm.shadow.icon.bg";
+         target: "elm.image.icon.bg";
+         target: "elm.swallow.icon";
+         target: "elm.swallow.icon_foc";
+         target: "disclip";
+         target: "event_blocker";
+      }
+
+      program { name: "do_focus";
+         action: STATE_SET "focused" 0.0;
+         target: "base";
+         target: "base_colored";
+         target: "elm.text";
+         target: "elm.text.1";
+         target: "elm.shadow.icon.bg";
+         target: "elm.image.icon.bg";
+         target: "elm.swallow.icon";
+         target: "elm.swallow.icon_foc";
+         target: "disclip";
+         target: "event_blocker";
+      }
+
+      program { name: "do_select";
+         action: STATE_SET "selected" 0.0;
+         target: "base";
+         target: "base_colored";
+         target: "elm.text";
+         target: "elm.text.1";
+         target: "elm.shadow.icon.bg";
+         target: "elm.image.icon.bg";
+         target: "elm.swallow.icon";
+         target: "elm.swallow.icon_foc";
+         target: "disclip";
+         target: "event_blocker";
+      }
+
+      program { name: "do_disable";
+         action: STATE_SET "disabled" 0.0;
+         target: "base";
+         target: "base_colored";
+         target: "elm.text";
+         target: "elm.text.1";
+         target: "elm.shadow.icon.bg";
+         target: "elm.image.icon.bg";
+         target: "elm.swallow.icon";
+         target: "elm.swallow.icon_foc";
+         target: "disclip";
+         target: "event_blocker";
+      }
+   }
+}
+
+//Start
+#define DEFAULT 1
+#define SELECTED 2
+#define FOCUSED 3
+#define DISABLED 4
+/*****************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt : 37 and 11
+Description: Gengrid for two line text
+******************************************************************************/
+group { name: "elm/gengrid/item/2text.1icon.bg/default";
+   inherit: "elm/gengrid/item/1text.1icon.bg/default";
+   data.item: "texts" "elm.text elm.text.1";
+   data.item: "contents" "elm.swallow.icon elm.swallow.icon_foc elm.swallow.end";
+   parts {
+      part { name: "pad.top"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 52;
+            max: 9999 52;
+         }
+      }
+      part { name: "pad.bottom"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 43;
+            max: 9999 43;
+         }
+      }
+      part { name: "area_for_text"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+         part { name: "elm.text"; type: TEXT; mouse_events: 0;
+            effect: SOFT_SHADOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 211 211 211 255;
+               rel1.to: "elm.text.1";
+               rel2.to: "elm.text.1";
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 0.0;
+               text {
+                  font: "Sans";
+                  size: 23;
+                  min: 0 1;
+                  text_class: "grid_item";
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 51;
+            }
+         }
+         part { name: "elm.text.1"; type: TEXT;
+            effect: SOFT_SHADOW;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 1;
+               color: 134 134 134 255;
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 51;
+            }
+         }
+      }
+   }
+}
+#undef DEFAULT 1
+#undef SELECTED 2
+#undef FOCUSED 3
+#undef DISABLED 4
+#undef DEFAULT 1
+#undef SELECTED 2
+#undef FOCUSED 3
+#undef DISABLED 4
diff --git a/ElmSharp/theme/tv/widgets/genlist.edc b/ElmSharp/theme/tv/widgets/genlist.edc
new file mode 100644 (file)
index 0000000..c40665e
--- /dev/null
@@ -0,0 +1,775 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  70  1text
+********************************************************************/
+group { "elm/genlist/item/1text/default"; nomouse; program_source: "elm";
+   alias: "elm/genlist/item/default/default";
+   data.item: "texts" "elm.text";
+   data.item: "focus_highlight" "on";
+   target_group: "default" "base" "bottom_line" "elm.text";
+   target_group: "disabled" "event" "elm.text";
+   parts {
+      GENLIST_BASE(255 255 255 255, 69 143 255 255)
+      GENLIST_PAD(40, 40, 20, 20)
+      GENLIST_BOTTOM_LINE(222 222 222 222)
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.bottom.right";
+            rel2.relative: 0.0 0.0;
+            color: 89 89 89 255;
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 255 0 0 255;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default", "disabled")
+   }
+}
+
+/*********************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx 70 1text_1icon
+**********************************************************************/
+group { "elm/genlist/item/1text_1icon/default"; nomouse; program_source: "elm";
+   data.item: "texts" "elm.text";
+   data.item: "contents" "elm.swallow.end";
+   inherit: "elm/genlist/item/1text/default";
+   parts {
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.center";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 0.0 0.0;
+            color: 89 89 89 255;
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+      swallow { "elm.swallow.end"; mouse;
+         desc { "default";
+            rel1.to_x: "pad.bottom.right";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "pad.bottom.right";
+            rel2.relative: 0.0 0.5;
+            min: 40 40;
+            fixed: 1 1;
+            align: 1.0 0.5;
+         }
+      }
+      // a padding between elm.text, elm.swallow.end
+      spacer { "pad.center"; scale;
+         desc { "default";
+            rel1.to_x: "elm.swallow.end";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "elm.swallow.end";
+            rel2.relative: 0.0 0.5;
+            fixed: 1 0;
+            align: 1.0 0.5;
+            min: 40 0;
+         }
+      }
+   }
+}
+
+/**************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx 69   1text_1icon_2
+***************************************************************************/
+group { "elm/genlist/item/1text_1icon_2/default"; nomouse;
+   data.item: "texts" "elm.text";
+   data.item: "contents" "elm.swallow.end";
+   inherit: "elm/genlist/item/1text_1icon/default";
+   parts {
+      rect { "base"; scale;
+         desc { "default";
+            color: 0 0 0 0;
+            hid;
+         }
+         desc { "focused"; inherit: "default";
+            color: 69 143 255 255;
+            vis;
+         }
+         desc { "selected"; inherit: "default";
+            color: 69 143 255 102;
+            vis;
+         }
+      }
+      GENLIST_PAD(70, 70, 20, 20)
+      GENLIST_BOTTOM_LINE(255 255 255 25)
+
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.center";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 0.0 0.0;
+            color: 255 255 255 204; // 80%
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+
+      // a padding between elm.text, elm.swallow.end
+      spacer { "pad.center"; scale;
+         desc { "default";
+            rel1.to_x: "elm.swallow.end";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "elm.swallow.end";
+            rel2.relative: 0.0 0.5;
+            fixed: 1 0;
+            align: 1.0 0.5;
+            min: 30 0;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default", "disabled")
+   }
+}
+
+/***********************************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  69 2text
+************************************************************************************************/
+group { "elm/genlist/item/2text/default"; nomouse; program_source: "elm";
+   data.item: "texts" "elm.text elm.text2";
+   inherit: "elm/genlist/item/1text/default";
+   target_group: "default2" "base" "bottom_line" "elm.text" "elm.text2";
+   target_group: "disabled2" "event" "elm.text" "elm.text2";
+   parts {
+      rect { "base"; scale;
+         desc { "default";
+            color: 0 0 0 0;
+            hid;
+         }
+         desc { "focused"; inherit: "default";
+            color: 69 143 255 255;
+            vis;
+         }
+         desc { "selected"; inherit: "default";
+            color: 69 143 255 102;
+            vis;
+         }
+      }
+      GENLIST_PAD(70, 70, 20, 20)
+      GENLIST_BOTTOM_LINE(255 255 255 25)
+
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.center";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 0.0 0.0;
+            color: 255 255 255 204; // 80%
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+
+      text { "elm.text2"; scale;
+         desc { "default";
+            rel1.to_x: "pad.bottom.right";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "pad.bottom.right";
+            rel2.relative: 0.0 0.5;
+            align: 1.0 0.5;
+            color: 255 255 255 204; // 80%
+            fixed: 1 1;
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               ellipsis: -1;
+               align: 1.0 0.5;
+            }
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+
+      // a padding between elm.text, elm.swallow.end
+      spacer { "pad.center"; scale;
+         desc { "default";
+            rel1.to_x: "elm.text2";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "elm.text2";
+            rel2.relative: 0.0 0.5;
+            fixed: 1 0;
+            align: 1.0 0.5;
+            min: 30 0;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default2", "disabled2")
+   }
+}
+
+/*******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  45  2text_1icon
+********************************************************************/
+group { "elm/genlist/item/2text_1icon/default"; nomouse; program_source: "elm";
+   data.item: "texts" "elm.text elm.text2";
+   data.item: "contents" "elm.swallow.icon";
+   data.item: "focus_highlight" "on";
+   target_group: "default" "base" "bottom_line" "elm.text" "elm.text2";
+   target_group: "disabled" "event" "elm.text" "elm.text2";
+   parts {
+      GENLIST_BASE(42 50 64 255, 69 143 255 255)
+      GENLIST_PAD(38, 32, 32, 37)
+      GENLIST_BOTTOM_LINE(222 222 222 222)
+      swallow { "elm.swallow.icon"; mouse; scale;
+         desc { "default";
+            rel1.to_x: "pad.bottom.right";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "pad.bottom.right";
+            rel2.relative: 0.0 0.5;
+            min: 80 80;
+            fixed: 1 1;
+            align: 1.0 0.5;
+         }
+      }
+      spacer { "pad.center"; scale;
+         desc { "default";
+            rel1.to_x: "elm.swallow.icon";
+            rel1.relative: 0.0 0.0;
+            rel2.to_x: "elm.swallow.icon";
+            rel2.relative: 0.0 1.0;
+            min: 32 0;
+            fixed: 1 0;
+            align: 1.0 0.5;
+         }
+      }
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "pad.center";
+            rel2.to_y: "pad.top.left";
+            rel2.relative: 0.0 1.0;
+            fixed: 0 1;
+            align: 0.5 0.0;
+            color: 165 167 175 255;
+            text { font: FONT_M; size: 32;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "selected"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+      text { "elm.text2"; scale;
+         desc { "default";
+            rel1.to: "elm.text";
+            rel1.relative: 0.0 1.0;
+            rel2.to_x: "elm.text";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 1.0 0.0;
+            fixed: 0 0;
+            align: 0.5 0.5;
+            color: 164 167 174 255;
+            text { font: FONT_R; size: 22;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "selected"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default", "disabled")
+   }
+}
+
+/*******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  46  3text_1icon
+********************************************************************/
+group { "elm/genlist/item/3text_1icon/default"; nomouse; program_source: "elm";
+   inherit: "elm/genlist/item/2text_1icon/default";
+   data.item: "texts" "elm.text elm.text2 elm.text3";
+   data.item: "contents" "elm.swallow.icon";
+   data.item: "focus_highlight" "on";
+   target_group: "default2" "base" "bottom_line" "elm.text" "elm.text2" "elm.text3";
+   target_group: "disabled2" "event" "elm.text" "elm.text2" "elm.text3";
+   parts {
+      GENLIST_BASE(42 50 64 255, 69 143 255 255)
+      GENLIST_PAD(38, 32, 32, 37)
+      GENLIST_BOTTOM_LINE(222 222 222 222)
+      text { "elm.text2"; scale;
+         desc { "default";
+            rel1.to: "elm.text";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.text";
+            rel2.relative: 1.0 1.0;
+            fixed: 0 1;
+            align: 0.5 0.0;
+            color: 164 167 174 255;
+            text { font: FONT_R; size: 22;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "selected"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+      text { "elm.text3"; scale;
+         desc { "default";
+            rel1.to: "elm.text2";
+            rel1.relative: 0.0 1.0;
+            rel2.to_x: "elm.text2";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 1.0 0.0;
+            fixed: 0 0;
+            align: 0.5 0.5;
+            color: 164 167 174 255;
+            text { font: FONT_R; size: 22;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "selected"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default2", "disabled2")
+   }
+}
+
+/*******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  47  4text_1icon
+********************************************************************/
+group { "elm/genlist/item/4text_1icon/default"; nomouse; program_source: "elm";
+   inherit: "elm/genlist/item/3text_1icon/default";
+   data.item: "texts" "elm.text elm.text2 elm.text3 elm.text4";
+   data.item: "contents" "elm.swallow.icon";
+   data.item: "focus_highlight" "on";
+   target_group: "default3" "base" "bottom_line" "elm.text" "elm.text2" "elm.text3" "elm.text4";
+   target_group: "disabled3" "event" "elm.text" "elm.text2" "elm.text3" "elm.text4";
+   parts {
+      GENLIST_BASE(42 50 64 255, 69 143 255 255)
+      GENLIST_PAD(38, 32, 32, 37)
+      GENLIST_BOTTOM_LINE(222 222 222 222)
+      text { "elm.text3"; scale;
+         desc { "default";
+            rel1.to: "elm.text2";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.text2";
+            rel2.relative: 1.0 1.0;
+            fixed: 0 1;
+            align: 0.5 0.0;
+            color: 164 167 174 255;
+            text { font: FONT_R; size: 22;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "selected"; inherit: "default";
+            color: 255 255 255 255;
+            color: 255 255 255 255;
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+      text { "elm.text4"; scale;
+         desc { "default";
+            rel1.to: "elm.text3";
+            rel1.relative: 0.0 1.0;
+            rel2.to_x: "elm.text3";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 1.0 0.0;
+            fixed: 0 0;
+            align: 0.5 0.5;
+            color: 164 167 174 255;
+            text { font: FONT_R; size: 22;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "selected"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "focused"; inherit: "default";
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default";
+            color: 50 50 50 255;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default3", "disabled3")
+   }
+}
+
+/*************************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  48  2text_1icon_2
+**************************************************************************/
+group { "elm/genlist/item/2text_1icon_2/default"; nomouse; program_source: "elm";
+   inherit: "elm/genlist/item/2text_1icon/default";
+   data.item: "texts" "elm.text elm.text2";
+   data.item: "contents" "elm.swallow.icon";
+   data.item: "focus_highlight" "on";
+   parts {
+      swallow { "elm.swallow.icon"; mouse; scale;
+         desc { "default";
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 1.0 1.0;
+            fixed: 1 0;
+            align: 1.0 0.5;
+         }
+      }
+   }
+}
+
+/*******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  49  progress
+********************************************************************/
+group { "elm/genlist/item/progress/default"; nomouse; program_source: "elm";
+   data.item: "texts" "elm.text elm.text2";
+   data.item: "contents" "elm.swallow.icon elm.swallow.end";
+   data.item: "focus_highlight" "on";
+   target_group: "default" "base" "bottom_line" "elm.text" "elm.text2";
+   target_group: "disabled" "event" "elm.text" "elm.text2";
+   parts {
+      GENLIST_BASE(42 50 64 255, 69 143 255 255)
+      GENLIST_PAD(38, 32, 32, 47)
+      GENLIST_BOTTOM_LINE(222 222 222 222)
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.center";
+            rel2.relative: 0.0 0.0;
+            color: 211 211 211 255;
+            align: 0.0 0.5;
+            fixed: 0 0;
+            text { font: FONT_M; size: 24;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.5;
+            }
+         }
+         desc { "focused"; inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default" 0.0;
+            color: 50 50 50 255;
+         }
+      }
+
+      ////// parts from right side
+      swallow { "elm.swallow.end"; mouse; scale;
+         desc { "default";
+            rel1.to_x: "pad.bottom.right";
+            rel1.relative: 0.0 0.5;
+            rel2.to_x: "pad.bottom.right";
+            rel2.relative: 0.0 0.5;
+            min: 80 80;
+            fixed: 0 1;
+            align: 1.0 0.5;
+         }
+      }
+      spacer { "pad.center2"; scale;
+         desc { "default";
+            rel1.to_x: "elm.swallow.end";
+            rel1.relative: 0.0 0.0;
+            rel2.to_x: "elm.swallow.end";
+            rel2.relative: 0.0 1.0;
+            min: 32 0;
+            fixed: 1 0;
+            align: 1.0 0.5;
+         }
+      }
+      text { "elm.text2"; scale;
+         desc { "default";
+            rel1.to_x: "pad.center2";
+            rel1.to_y: "pad.bottom2";
+            rel1.relative: 0.0 0.0;
+            rel2.to_x: "pad.center2";
+            rel2.to_y: "pad.bottom2";
+            rel2.relative: 0.0 0.0;
+            align: 1.0 1.0;
+            min: 100 0;
+            fixed: 1 1;
+            color: 211 211 211 255;
+            text { font: FONT_M; size: 24;
+               min: 0 1;
+            }
+         }
+         desc { "focused"; inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default" 0.0;
+            color: 50 50 50 255;
+         }
+      }
+      // a padding between elm.text, elm.text2, elm.swallow.icon
+      spacer { "pad.center"; scale;
+         desc { "default";
+            rel1.to_x: "elm.text2";
+            rel1.to_y: "elm.swallow.icon";
+            rel1.relative: 0.0 0.0;
+            rel2.to_x: "elm.text2";
+            rel2.to_y: "elm.swallow.icon";
+            rel2.relative: 0.0 0.0;
+            min: 20 11;
+            fixed: 1 1;
+            align: 1.0 1.0;
+         }
+      }
+      swallow { "elm.swallow.icon"; mouse; scale;
+         desc { "default";
+            rel1.to_x: "pad.top.left";
+            rel1.to_y: "pad.bottom.right";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "pad.center2";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 0.0 0.0;
+            min: 0 20;
+            fixed: 0 1;
+            align: 0.5 1.0;
+         }
+      }
+      // a padding between elm.text2, elm.swallow.icon
+      spacer { "pad.bottom2"; scale;
+         desc { "default";
+            rel1.to_y: "elm.swallow.icon";
+            rel2.to_y: "elm.swallow.icon";
+            rel2.relative: 1.0 0.0;
+            min: 0 4;
+            fixed: 0 1;
+            align: 0.5 1.0;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default", "disabled")
+   }
+}
+
+/*******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140709.pptx  59  2text_2icon
+********************************************************************/
+group { "elm/genlist/item/2text_2icon/default"; nomouse; program_source: "elm";
+   data.item: "texts" "elm.text elm.text2";
+   data.item: "contents" "elm.swallow.icon elm.swallow.end";
+   data.item: "focus_highlight" "on";
+   target_group: "default" "base" "bottom_line" "elm.text" "elm.text2";
+   target_group: "disabled" "event" "elm.text" "elm.text2";
+   parts {
+      GENLIST_BASE(42 50 64 255, 69 143 255 255)
+      GENLIST_PAD(32, 32, 29, 19)
+      GENLIST_BOTTOM_LINE(222 222 222 222)
+      swallow { "elm.swallow.icon"; mouse; scale;
+         desc { "default";
+            rel1.to: "pad.top.left";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.top.left";
+            rel2.relative: 1.0 1.0;
+            min: 44 44;
+            fixed: 1 1;
+            align: 0.0 0.0;
+         }
+      }
+      spacer { "pad.left.center"; scale;
+         desc { "default";
+            rel1.to: "elm.swallow.icon";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.icon";
+            min: 0 3;
+            fixed: 0 1;
+            align: 0.5 0.0;
+         }
+      }
+      text { "elm.text2"; scale;
+         desc { "default";
+            rel1.to: "pad.left.center";
+            rel1.relative: 0.0 1.0;
+            rel2.to_x: "pad.left.center";
+            rel2.to_y: "pad.bottom.right";
+            rel2.relative: 1.0 0.0;
+            color: 211 211 211 255;
+            min: 0 20;
+            text { font: FONT_M; size: 24;
+               min: 0 1;
+            }
+         }
+         desc { "focused"; inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default" 0.0;
+            color: 50 50 50 255;
+         }
+      }
+      spacer { "pad.center"; scale;
+         desc { "default";
+            rel1.to: "elm.swallow.icon";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "elm.swallow.icon";
+            rel2.relative: 1.0 1.0;
+            min: 19 0;
+            fixed: 1 0;
+            align: 0.0 0.5;
+         }
+      }
+      text { "elm.text"; scale;
+         desc { "default";
+            rel1.to_x: "pad.center";
+            rel1.relative: 1.0 0.5;
+            rel2.to_x: "pad.center";
+            rel2.relative: 1.0 0.5;
+            align: 0.0 0.5;
+            fixed: 1 1;
+            color: 211 211 211 255;
+            text { font: FONT_M; size: 24;
+               min: 1 1;
+               ellipsis: -1;
+            }
+         }
+         desc { "focused"; inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         desc { "disabled"; inherit: "default" 0.0;
+            color: 50 50 50 255;
+         }
+      }
+      spacer { "pad.center2"; scale;
+         desc { "default";
+            rel1.to_x: "elm.text";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "elm.text";
+            rel2.relative: 1.0 1.0;
+            min: 14 0;
+            fixed: 1 0;
+            align: 0.0 0.5;
+         }
+      }
+      //FIXME: with icon
+      swallow { "elm.swallow.end"; mouse; scale;
+         desc { "default";
+            rel1.to_x: "pad.center2";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "pad.bottom.right";
+            rel2.relative: 0.0 1.0;
+            min: 40 30;
+            max: 40 30;
+            fixed: 0 1;
+            align: 0.0 0.5;
+         }
+      }
+   }
+   programs {
+      GENLIST_PROGRAMS("default", "disabled")
+   }
+}
+
+#undef TOPP
+#undef IMGP
+#undef TREEIMGS
diff --git a/ElmSharp/theme/tv/widgets/genlist_common.edc b/ElmSharp/theme/tv/widgets/genlist_common.edc
new file mode 100644 (file)
index 0000000..1b2b007
--- /dev/null
@@ -0,0 +1,267 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define GENLIST_TREEPAD 19
+#define IMGP() \
+   images.image: "list_highlight.png" COMP;
+#define BASEP(vert_align) \
+      rect { "base"; mouse; \
+         scale; \
+         ignore_flags: ON_HOLD; \
+         desc { "default"; \
+            min: vert_align; \
+            color: 0 0 0 0; \
+         } \
+         desc { "odd"; \
+            min: vert_align; \
+            color: 0 0 0 0; \
+         } \
+      } \
+      program { \
+         signal: "elm,state,odd"; source: "elm"; \
+         action: STATE_SET "odd" 1.0; \
+         target: "base"; \
+      } \
+      program { \
+         signal: "elm,state,even"; source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "base"; \
+      }
+#define TOPP() \
+      rect { "event_block"; \
+         desc { "default"; \
+            color: 0 0 0 0; \
+            hid; \
+         } \
+         desc { "disabled"; \
+            inherit: "default" 0.0; \
+            vis; \
+         } \
+      } \
+      program { \
+         signal: "elm,state,disabled"; source: "elm"; \
+         action: STATE_SET "disabled" 0.0; \
+         target: "event_block"; \
+      } \
+      program { \
+         signal: "elm,state,enabled"; source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "event_block"; \
+      }
+
+#define GENLIST_BASE(COLOR, COLOR2) \
+      rect { "event"; mouse; \
+         desc { "default"; \
+            color: 0 0 0 0; \
+         } \
+         desc { "disabled"; \
+            inherit: "default"; \
+            hid; \
+         } \
+      } \
+      rect { "base"; \
+         scale; \
+         desc { "default"; \
+            color: COLOR; \
+         } \
+         desc { "selected"; \
+            inherit: "default"; \
+            color: COLOR2; \
+         } \
+         desc { "focused"; \
+            inherit: "default"; \
+            color: COLOR2; \
+         } \
+      }
+
+#define GENLIST_PAD(LEFT, RIGHT, TOP, BOTTOM) \
+      spacer { "pad.top.left"; \
+         scale; \
+         desc { "default"; \
+            rel2.relative: 0.0 0.0; \
+            min: LEFT TOP; \
+            fixed: 1 1; \
+            align: 0.0 0.0; \
+         } \
+      } \
+      spacer { "pad.bottom.right"; \
+         scale; \
+         desc { "default"; \
+            rel1.relative: 1.0 1.0; \
+            min: RIGHT BOTTOM; \
+            fixed: 1 1; \
+            align: 1.0 1.0; \
+         } \
+      }
+
+#define GENLIST_BOTTOM_LINE(COLOR) \
+      rect { "bottom_line"; \
+         desc { "default"; \
+            fixed: 0 1; \
+            min: 0 1; \
+            rel1.relative: 0.0 1.0; \
+            align: 0.5 1.0; \
+            color: COLOR; \
+         } \
+         desc { "focused"; \
+            inherit: "default"; \
+            hid; \
+         } \
+      }
+
+#define GENLIST_PROGRAMS(TARGET, TARGET_DISABLE) \
+      program { name: "selected"; \
+         signal: "elm,state,selected"; \
+         action: STATE_SET "selected"; \
+         target_groups: TARGET; \
+      } \
+      program { name: "unselected"; \
+         signal: "elm,state,unselected"; \
+         action: STATE_SET "default"; \
+         target_groups: TARGET; \
+      } \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         action: STATE_SET "focused"; \
+         target_groups: TARGET; \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         action: STATE_SET "default"; \
+         target_groups: TARGET; \
+      } \
+      program { name: "disabled"; \
+         signal: "elm,state,disabled"; \
+         action: STATE_SET "disabled"; \
+         target_groups: TARGET_DISABLE; \
+      } \
+      program { name: "enabled"; \
+         signal: "elm,state,enabled"; \
+         action: STATE_SET "default"; \
+         target_groups: TARGET_DISABLE; \
+      }
+
+/*
+group { "elm/genlist/item/no_icon/default";
+   data.item: "selectraise" "on";
+   data.item: "texts" "elm.text";
+   data.item: "treesize" GENLIST_TREEPAD;
+   data.item: "flips" "elm.text.flip";
+   IMGP()
+   parts {
+      BASEP(0 100)
+
+      text { "elm.text"; mouse_events: 0;
+         effect: SHADOW BOTTOM;
+         scale;
+         desc { "default";
+            rel1.offset: 2 3;
+            rel1.relative: 1.0 0.0;
+            rel1.to_x: "elm.padding.start";
+            rel2.offset: -3 -3;
+            color: 255 255 255 255;
+            color3: 0 0 0 128;
+            color_class: "list_item";
+            text { font: FN; size: GENLIST_FONT_SIZE_36;
+               min: 1 1;
+               align: 0.0 0.5;
+               text_class: "list_item";
+            }
+         }
+         desc { "selected";
+            inherit: "default" 0.0;
+            color: 51 153 255 255;
+            color2: 51 153 255 24;
+            color3: 51 153 255 18;
+         }
+         desc { "focused";
+            inherit: "default" 0.0;
+            color: 51 153 255 255;
+            color2: 51 153 255 24;
+            color3: 51 153 255 18;
+         }
+         desc { "disabled";
+            inherit: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         desc { "flip_enabled";
+            inherit: "default" 0.0;
+            hid;
+         }
+      }
+      swallow { "elm.text.flip";
+         scale;
+         desc { "default";
+            hid;
+            rel1.to_y: "elm.text";
+            rel2.to_y: "elm.text";
+         }
+         desc { "flip_enabled";
+            inherit: "default" 0.0;
+            vis;
+         }
+      }
+      program {
+         signal: "elm,state,default"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program {
+         signal: "elm,state,disabled"; source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "elm.text";
+      }
+      program {
+         signal: "elm,state,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program {
+         signal: "elm,state,flip,enabled"; source: "elm";
+         action: STATE_SET "flip_enabled" 0.0;
+         target: "elm.text";
+         target: "elm.text.flip";
+      }
+      program {
+         signal: "elm,state,flip,disabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+         target: "elm.text.flip";
+      }
+      spacer { "elm.padding.start";
+         scale;
+         desc { "default";
+            fixed: 1 1;
+            align: 0.0 0.5;
+            min: 10 10;
+            max: 10 10;
+         }
+      }
+
+      TOPP()
+   }
+}
+*/
diff --git a/ElmSharp/theme/tv/widgets/hover.edc b/ElmSharp/theme/tv/widgets/hover.edc
new file mode 100644 (file)
index 0000000..cf911d9
--- /dev/null
@@ -0,0 +1,587 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+group { name: "elm/hover/base/menu";
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.size"; type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel1.to: "elm.swallow.offset";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.offset";
+         }
+      }
+      part { name: "base"; type: RECT; mouse_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 64;
+         }
+      }
+      part { name: "elm.swallow.slot.left"; type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.right"; type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.top"; type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "bottomclip"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to_y: "pop";
+            rel1.relative: 0.0 1.0;
+         }
+      }
+      part { name: "pad.left_top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "pad.right_bottom"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 24;
+            max: 1 24;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "bottom"; type: SPACER;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            //visible: 0;
+            rel1.to: "pad.left_top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "pad.right_bottom";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            //visible: 1;
+         }
+      }
+      part { name: "pad.top_left"; type: SPACER;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 4 6;
+            max: 4 6;
+            align: 0.0 0.0;
+            rel2.to: "elm.swallow.slot.middle";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "pad.slot.top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 16;
+            max: 9999 14;
+            rel1.to_y: "elm.swallow.size";
+            rel1.to_x: "elm.swallow.size";
+            rel2.to_x: "elm.swallow.size";
+            rel2.relative: 1.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            rel1.to: "pad.slot.top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.slot.middle";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "pop"; type: SPACER; mouse_events: 1; repeat_events:1;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+            rel2.to: "elm.swallow.slot.middle";
+         }
+      }
+      part { name: "elm.swallow.slot.middle"; type: SWALLOW; repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+         }
+      }
+   }
+   programs {
+      program { name: "end";
+         signal: "mouse,up,1"; source: "base";
+         action: SIGNAL_EMIT "elm,action,dismiss" "";
+      }
+      program { name: "show";
+         signal: "elm,action,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "base";
+      }
+      program { name: "hide";
+         signal: "elm,action,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base";
+      }
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.3;
+         target: "bottom";
+         target: "elm.swallow.slot.bottom";
+      }
+      program { name: "bottomhide";
+         signal: "elm,action,slot,bottom,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "bottom";
+         target: "elm.swallow.slot.bottom";
+      }
+   }
+}
+
+group { name: "elm/hover/base/submenu";
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW; repeat_events:1;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.size"; type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel1.to: "elm.swallow.offset";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.offset";
+         }
+      }
+      part { name: "base"; type: RECT; mouse_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.swallow.slot.left"; type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.right"; type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.top"; type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "pad.pop_bottom_right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            align: 0.0 0.0;
+            rel1.to: "pop";
+         }
+      }
+      part { name: "bottomclip"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to: "pad.pop_bottom_right";
+            rel1.relative: 0.0 1.0;
+         }
+      }
+      part { name: "pad.left_top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "pad.right_bottom"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 14;
+            max: 1 14;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "bottom"; type: SPACER;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.left_top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "pad.right_bottom";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "pad.top_left"; type: SPACER;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 4 7;
+            max: 4 7;
+            align: 0.0 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+         }
+      }
+      part { name: "pad.slot.top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 16;
+            max: 9999 14;
+            rel1.to_y: "elm.swallow.size";
+            rel1.relative: 0.0 0.0;
+            rel1.to_x: "elm.swallow.size";
+            rel1.relative: 0.0 0.0;
+            rel2.to_x: "elm.swallow.size";
+            rel2.relative: 1.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            rel1.to: "pad.slot.top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.slot.middle";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.to: "pad.top_left";
+            rel1.relative: 0.0 1.0;
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "pop"; type: SPACER; mouse_events: 1; repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+            rel2.to: "elm.swallow.slot.middle";
+         }
+      }
+      part { name: "elm.swallow.slot.middle"; type: SWALLOW; repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+         }
+      }
+   }
+   programs {
+      program { name: "end";
+         signal: "mouse,up,1"; source: "base";
+         action: SIGNAL_EMIT "elm,action,dismiss" "";
+      }
+      program { name: "show";
+         signal: "elm,action,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "base";
+      }
+      program { name: "hide";
+         signal: "elm,action,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base";
+      }
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.3;
+         target: "bottom";
+         target: "elm.swallow.slot.bottom";
+      }
+      program { name: "bottomhide";
+         signal: "elm,action,slot,bottom,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "bottom";
+         target: "elm.swallow.slot.bottom";
+      }
+   }
+}
+
+group { name: "elm/hover/base/main_menu";
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+         }
+      }
+      part { name: "elm.swallow.size"; type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+            fixed: 1 1;
+         }
+      }
+      part { name: "pad.pop_bottom_right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "bottomclip"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to: "pad.pop_bottom_right";
+            rel1.relative: 1.0 1.0;
+         }
+      }
+      part { name: "pad.left_top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "pad.right_bottom"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 14;
+            max: 1 14;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "bottom"; type: RECT;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to: "pad.left_top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "pad.right_bottom";
+         }
+      }
+      part { name: "pad.slot.top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 16;
+            max: 9999 14;
+            rel1.to_y: "elm.swallow.size";
+            rel1.to_x: "elm.swallow.size";
+            rel2.to_x: "elm.swallow.size";
+            rel2.relative: 1.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            rel1.to: "pad.slot.top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.size";
+            fixed: 1 1;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            align: 0.5 0.0;
+         }
+      }
+   }
+   programs {
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.3;
+         target: "elm.swallow.slot.bottom";
+      }
+   }
+}
+
+group { name: "elm/hover/base/main_menu_submenu";
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW; repeat_events:1;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.size"; type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel1.to: "elm.swallow.offset";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.offset";
+         }
+      }
+      part { name: "base"; type: RECT;
+         mouse_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "pad.pop_bottom_right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            align: 0.0 0.0;
+            rel1.to: "pop";
+         }
+      }
+      part { name: "bottomclip"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to_y: "pad.pop_bottom_right";
+            rel1.relative: 0.0 1.0;
+         }
+      }
+      part { name: "pad.left_top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 2;
+            max: 1 2;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+            rel2.relative: 0.0 0.0;
+         }
+      }
+      part { name: "pad.right_bottom"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 1 14;
+            max: 1 14;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "bottom"; type: SPACER;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.left_top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "pad.right_bottom";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "pad.slot.top"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 16;
+            max: 9999 14;
+            rel1.to_y: "elm.swallow.size";
+            rel1.to_x: "elm.swallow.size";
+            rel2.to_x: "elm.swallow.size";
+            rel2.relative: 1.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            rel1.to: "pad.slot.top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.slot.middle";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "pop"; type: SPACER; mouse_events: 1; repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+            rel2.to: "elm.swallow.slot.middle";
+         }
+      }
+      part { name: "elm.swallow.slot.middle"; type: SWALLOW; repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+         }
+      }
+   }
+   programs {
+      program { name: "end";
+         signal: "mouse,up,1"; source: "base";
+         action: SIGNAL_EMIT "elm,action,dismiss" "";
+      }
+      program { name: "show";
+         signal: "elm,action,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "base";
+      }
+      program { name: "hide";
+         signal: "elm,action,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base";
+      }
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.3;
+         target: "bottom";
+         target: "elm.swallow.slot.bottom";
+      }
+      program { name: "bottomhide";
+         signal: "elm,action,slot,bottom,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "bottom";
+         target: "elm.swallow.slot.bottom";
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/hoversel.edc b/ElmSharp/theme/tv/widgets/hoversel.edc
new file mode 100644 (file)
index 0000000..0db5b42
--- /dev/null
@@ -0,0 +1,999 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define HOVERSEL_FONT_SIZE 30
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.pdf
+HOVERSEL
+Page No.: 84~89
+*********************************************************************************/
+images {
+   image: "round_rectangle_4X4.png" COMP;
+   image: "ico_dropdown_menu_open_arrow.png" COMP;
+   image: "ico_dropdown_menu_check.png" COMP;
+}
+
+group { name: "elm/button/base/hoversel_vertical/default";
+   data.item: "focus_highlight" "on";
+   parts {
+      part { name: "base"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 70;
+            color: 193 193 193 204;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 193 193 193 51;
+         }
+      }
+      part { name: "pad.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.5;
+            min: 32 0;
+            max: 32 0;
+         }
+      }
+      part { name: "pad.icon"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel2.to: "down_icon";
+            rel2.relative: 0.0 1.0;
+            align: 1 0.5;
+            fixed: 1 1;
+            min: 20 0;
+            max: 20 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            min: 56 0;
+            max: 56 0;
+         }
+      }
+      part { name: "pad.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 1.0 0.5;
+            min: 24 0;
+            max: 24 0;
+         }
+      }
+      part { name: "button_base";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            color: 0 0 0 76;
+            image {
+               normal: "round_rectangle_4X4.png";
+               border: 4 4 4 4;
+               border_scale: 1;
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+            color: 255 255 255 255;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 25;
+         }
+      }
+      part { name: "down_icon";
+         scale: 1;
+         clip_to: "base";
+         description { state: "default" 0.0;
+            rel2.to_x: "pad.right";
+            rel2.relative: 0.0 1.0;
+            align: 1.0 0.5;
+            fixed: 1 1;
+            min: 26 26;
+            max: 26 26;
+            image.normal: "ico_dropdown_menu_open_arrow.png";
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "pad.left";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "pad.icon";
+            rel2.relative: 0.0 1.0;
+            align: 0 0.5;
+            fixed: 1 1;
+            color: 175 175 175 255;
+            text {
+               size: HOVERSEL_FONT_SIZE;
+               max: 1 0;
+               text_class: "button";
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 175 175 175 102;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            color: 158 158 158 102;
+            color3: 0 0 0 0;
+         }
+      }
+      part { name: "pad.text"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 10 0;
+            max: 10 0;
+            fixed: 1 1;
+            align: 0.0 0.5;
+            rel1.to_x: "elm.text";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "elm.text";
+            rel2.relative: 1.0 1.0;
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         scale: 1;
+         clip_to: "base";
+         description { state: "default" 0.0;
+            min: 26 26;
+            max: 26 26;
+            fixed: 1 1;
+            align: 0.0 0.5;
+            rel1.to_x: "pad.text";
+            rel1.relative: 1.0 0.5;
+            rel2.to_x: "pad.text";
+            rel2.relative: 1.0 0.5;
+         }
+      }
+      part { name: "event"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            fixed: 1 1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+   }
+   programs {
+      program { name: "button_click";
+         signal: "mouse,down,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,press" "";
+         after: "button_click_anim";
+      }
+      program { name: "button_click_anim";
+         action: STATE_SET "focus" 0.0;
+         target: "button_base";
+         target: "base";
+         target: "elm.text";
+      }
+      program { name: "button_unclick";
+         signal: "mouse,up,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,unpress" "";
+         after: "button_unclick_anim";
+      }
+      program { name: "button_unclick_anim";
+         action: STATE_SET "focus" 0.0;
+         target: "elm.text";
+         target: "button_base";
+         target: "base";
+      }
+      program { name: "mouse_unclick_after";
+         signal: "mouse,clicked,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program { name: "key_press";
+         signal: "elm,anim,activate"; source: "elm";
+         action: STATE_SET "focus" 0.0;
+         target: "elm.text";
+         target: "button_base";
+         target: "base";
+         after: "key_unpress";
+      }
+      program { name: "key_unpress";
+         action: STATE_SET "focus" 0.0;
+         transition: DECELERATE 0.2;
+         target: "button_base";
+         target: "base";
+         target: "elm.text";
+      }
+      program { name: "focused";
+         signal: "elm,action,focus"; source: "elm";
+         action: STATE_SET "focus" 0.0;
+         target: "elm.text";
+         target: "button_base";
+         target: "base";
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+         target: "button_base";
+         target: "base";
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "pad.icon";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "pad.icon";
+      }
+      program { name: "text_show";
+         signal: "elm,state,text,visible"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if ((!strcmp(st, "disabled")) || (!strcmp(st, "disabled_visible")))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "visible", 0.0);
+         }
+      }
+      program { name: "text_hide";
+         signal: "elm,state,text,hidden"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if ((!strcmp(st, "default")) || (!strcmp(st, "visible")))
+               set_state(PART:"elm.text", "default", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+         }
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            set_state(PART:"button_base", "disabled", 0.0);
+            set_state(PART:"event", "disabled", 0.0);
+            set_state(PART:"down_icon", "disabled", 0.0);
+            get_state(PART:"elm.text", st, 30, vl);
+            if ((!strcmp(st, "visible")) || (!strcmp(st, "disabled_visible")))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+         }
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            set_state(PART:"button_base", "visible", 0.0);
+            set_state(PART:"event", "visible", 0.0);
+            get_state(PART:"elm.text", st, 30, vl);
+            if ((!strcmp(st, "visible")) || (!strcmp(st, "disabled_visible")))
+               set_state(PART:"elm.text", "visible", 0.0);
+            else
+               set_state(PART:"elm.text", "default", 0.0);
+         }
+      }
+   }
+}
+
+/******************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140709.pdf
+HOVERSEL
+Page No.: 84~89
+******************************************************************************/
+group { name: "elm/button/base/hoversel_vertical_entry/default";
+   data.item: "focus_highlight" "on";
+   script {
+      public is_selected = 0;
+   }
+   parts {
+      part { name: "base"; type: RECT;
+         description { state: "default" 0.0;
+            min: 0 70;
+            color: 98 98 98 255;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "focus" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "highlight_focus" 0.0;
+            inherit: "focus" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "pad.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0 0.5;
+            fixed: 1 1;
+            min: 32 0;
+            max: 32 0;
+         }
+      }
+      part { name: "pad.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 1.0 0.5;
+            min: 24 0;
+            max: 24 0;
+         }
+      }
+      part { name: "clipper.all_item"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+         }
+         description { state: "last_item" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "clipper.last_item"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            visible: 0;
+         }
+         description { state: "last_item" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "button_image"; type: RECT;
+         scale: 1;
+         clip_to: "clipper.all_item";
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "highlight_focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "pad.last_item"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 4;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel1.relative: 0.0 0.0;
+            rel2.to: "base";
+            rel2.relative: 1.0 0.0;
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "button_image_last";
+         scale: 1;
+         clip_to: "clipper.last_item";
+         description
+          { state: "default" 0.0;
+            rel1.to: "pad.last_item";
+            rel2.to: "base";
+            image {
+               normal: "round_rectangle_4X4.png";
+               border: 4 4 4 4;
+               border_scale: 1;
+            }
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "highlight_focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "list_division"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            rel2.relative: 1 0;
+            fixed: 1 1;
+            color: 222 222 222 255;
+            min: 2 2;
+            max: 9999 2;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "highlight_focus" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "check";
+         scale: 1;
+         clip_to:"base";
+         description { state: "default" 0.0;
+            rel2.to_x: "pad.right";
+            rel2.relative: 0.0 1.0;
+            align: 1 0.5;
+            fixed: 1 1;
+            min: 0 0;
+            max: 0 0;
+            image.normal: "ico_dropdown_menu_check.png";
+            visible: 0;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            min: 26 26;
+            max: 26 26;
+            visible: 1;
+         }
+      }
+      part { name: "pad.middle_right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "check";
+            rel1.relative: 1 0;
+            rel2.to: "check";
+            rel2.relative: 0 1;
+            fixed: 1 1;
+            align: 1 0.5;
+            min: 20 0;
+            max: 20 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            min: 56 0;
+            max: 56 0;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.left";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.middle_right";
+            rel2.relative: 0 1;
+            align: 0.0 0.5;
+            fixed: 1 1;
+            color: 89 89 89 255;
+            text.text_source: "elm.text";
+            text {
+               size: 30;
+               max: 1 0;
+               align: 0 0.5;
+               text_class: "button";
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            color_class: "open_ux_theme";
+            color3: 0 0 0 0;
+         }
+         description { state: "highlight_focus" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            color3: 0 0 0 0;
+         }
+      }
+      part { name: "pad.middle_left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "elm.text";
+            fixed: 1 1;
+            align: 0.0 0.5;
+            min: 10 0;
+            max: 10 0;
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         scale: 1;
+         clip_to: "base";
+         description { state: "default" 0.0;
+            rel1.to: "pad.middle_left";
+            rel1.relative: 1.0 0.5;
+            rel2.to_x: "pad.middle_left";
+            rel2.relative: 1.0 0.5;
+            align: 0.0 0.5;
+            fixed: 1 1;
+            min: 26 26;
+            max: 26 26;
+         }
+      }
+      part { name: "event"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+   }
+   programs {
+      program { name: "init";
+         signal: "load";
+         script {
+            new var = 0;
+            set_int(is_selected, var);
+         }
+      }
+      program { name: "button_click";
+         signal: "mouse,down,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,press" "";
+         after: "button_click_anim";
+      }
+      program { name: "button_click_anim";
+         action: STATE_SET "highlight" 0.0;
+         target: "elm.text";
+         target: "button_image";
+         target: "button_image_last";
+         target: "base";
+      }
+      program { name: "button_unclick";
+         signal: "mouse,up,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,unpress" "";
+         after: "button_unclick_anim";
+      }
+      program { name: "mouse_unclick_after";
+         signal: "mouse,clicked,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program { name: "button_pressed_anim";
+         signal: "elm,anim,activate"; source: "elm";
+         action: STATE_SET "highlight" 0.0;
+         target: "elm.text";
+         target: "button_image";
+         target: "button_image_last";
+         target: "list_division";
+         target: "base";
+      }
+      program { name: "button_unclick_anim";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+         target: "button_image";
+         target: "button_image_last";
+         target: "base";
+      }
+      program { name: "focused";
+         signal: "elm,action,focus"; source: "elm";
+         action: STATE_SET "focus" 0.0;
+         target: "elm.text";
+         target: "button_image";
+         target: "button_image_last";
+         target: "list_division";
+         target: "base";
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         script {
+            set_state(PART:"button_image", "default", 0.0);
+            set_state(PART:"button_image_last", "default", 0.0);
+            set_state(PART:"list_division", "default", 0.0);
+            if(!get_int(is_selected))
+            {
+               set_state(PART:"elm.text", "default", 0.0);
+               set_state(PART:"base", "default", 0.0);
+            }
+            else
+            {
+               set_state(PART:"elm.text", "highlight", 0.0);
+               set_state(PART:"base", "highlight", 0.0);
+            }
+         }
+      }
+      program { name: "button_highlight";
+         signal: "elm,state,highlight"; source: "elm";
+         script {
+            new var = 1;
+            set_int(is_selected, var);
+            set_state(PART:"elm.text", "highlight", 0.0);
+            set_state(PART:"base", "highlight", 0.0);
+            set_state(PART:"check", "highlight", 0.0);
+         }
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "pad.middle_right";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "pad.middle_right";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled"; source: "elm";
+         script {
+            new st[31];
+            new Float: vl;
+            set_state(PART:"base", "disabled", 0.0);
+            set_state(PART:"event", "disabled", 0.0);
+            get_state(PART:"elm.text", st, 30, vl);
+            if ((!strcmp(st, "visible")) || (!strcmp(st, "disabled_visible")))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+         }
+      }
+      program { name: "any_item";
+         signal: "elm,state,any,item"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "clipper.all_item";
+         target: "clipper.last_item";
+      }
+      program { name: "last_item";
+         signal: "elm,state,last,item"; source: "elm";
+         action:  STATE_SET "last_item" 0.0;
+         target: "clipper.all_item";
+         target: "clipper.last_item";
+      }
+   }
+}
+
+/*****************************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.1_140613.pdf
+HOVERSEL
+Page No.: 86, Style Name: menu_text close
+*****************************************************************************************/
+group { name: "elm/hover/base/hoversel_vertical/default";
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.relative: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "elm.swallow.size"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.offset";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "elm.swallow.offset";
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "button_image"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "limit0";
+            rel1.to_y: "pad.top.upper";
+            rel1.relative: 1.0 0.5;
+            rel2.to_x: "limit1";
+            rel2.to_y: "elm.swallow.slot.middle";
+            rel2.relative: 0.0 0.0;
+            align: 0 0;
+         }
+         description { state: "bottom" 0.0;
+            rel1.to_x: "limit0";
+            rel1.to_y: "elm.swallow.slot.middle";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "limit1";
+            rel2.to_y: "pad.bottom.lower";
+            rel2.relative: 0.0 0.5;
+         }
+      }
+      part { name: "limit0"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.slot.top";
+            rel2.to_x: "elm.swallow.slot.middle";
+            rel2.relative: 0.0 1.0;
+            align: 1 1;
+            min: 1 1;
+            max: 1 99999;
+         }
+         description { state: "bottom" 0.0;
+            inherit: "default" 0.0;
+            rel1.to_x: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "limit1"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.slot.middle";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "elm.swallow.slot.top";
+            align: 0 0;
+            min: 1 1;
+            max: 1 99999;
+         }
+         description { state: "bottom" 0.0;
+            inherit: "default" 0.0;
+            rel2.to_x: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "base"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 128;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "topclip"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel2.to_y: "button_image";
+         }
+      }
+      part { name: "pad.middle.left_top"; type: SPACER;
+         scale: 1;
+         clip_to: "topclip";
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.slot.middle";
+            align: 0.0 0.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "pad.middle.upper.right_bottom"; type: SPACER;
+         scale: 1;
+         clip_to: "topclip";
+         description { state: "default" 0.0;
+            rel1.to: "pad.middle.upper";
+            rel2.to: "pad.middle.upper";
+            rel2.relative: 1.0 0.0;
+            align: 1.0 1.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "elm.swallow.slot.top"; type: SWALLOW;
+         clip_to: "topclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.middle.left_top";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.middle.upper.right_bottom";
+            rel2.relative: 0.0 0.0;
+            align: 0.5 0.0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            align: 0.5 1.0;
+         }
+      }
+      part { name: "bottomclip"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_y: "button_image";
+         }
+      }
+      part { name: "pad.middle.lower.left_top"; type: RECT;
+         clip_to: "topclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.middle.lower";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "pad.middle.lower";
+            align: 0.0 0.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "pad.middle.right_bottom"; type: SPACER;
+         clip_to: "topclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+            rel2.to: "elm.swallow.slot.middle";
+            rel2.relative: 1.0 0.0;
+            align: 1.0 1.0;
+            min: 0 0;
+            max: 0 0;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "pad.middle.lower.left_top";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "pad.middle.right_bottom";
+            rel2.relative: 0.0 1.0;
+            align: 0.5 1.0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            align: 0.5 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.middle"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.size";
+            rel2.to: "elm.swallow.size";
+         }
+      }
+      part { name: "pad.top.upper"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "limit0";
+            rel2.to_x: "limit1";
+            rel2.to_y: "elm.swallow.slot.top";
+            rel1.relative: 1.0 1.0;
+            rel2.relative: 1.0 0.0;
+            align: 0.5 1.0;
+            min: 12 0;
+            max: 9999 0;
+         }
+      }
+      part { name: "pad.bottom.lower"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "limit0";
+            rel1.to_y: "elm.swallow.slot.bottom";
+            rel1.relative: 1.0 1.0;
+            rel2.to_x: "limit1";
+            rel2.relative: 0.0 1.0;
+            align: 0.5 0.0;
+            min: 1 0;
+            max: 9999 0;
+         }
+      }
+      part { name: "pad.middle.upper"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.size";
+            rel1.relative: 0.0 1.0;
+            rel2.to_x: "elm.swallow.size";
+            rel2.to_y: "elm.swallow.size";
+            rel2.relative: 1.0 0.0;
+            align: 0.5 1.0;
+            min: 1 0;
+            max: 9999 0;
+         }
+      }
+      part { name: "pad.middle.lower"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.size";
+            rel1.to_y: "elm.swallow.size";
+            rel1.relative: 0.0 1.0;
+            rel2.to_x: "elm.swallow.size";
+            align: 0.5 0.0;
+            min: 1 0;
+            max: 9999 0;
+         }
+      }
+   }
+   programs {
+      program { name: "end";
+         signal: "mouse,up,1"; source: "base";
+         action: SIGNAL_EMIT "elm,action,dismiss" "";
+      }
+      program { name: "show";
+         signal: "elm,action,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "base";
+      }
+      program { name: "hide";
+         signal: "elm,action,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base";
+      }
+      program { name: "topshow";
+         signal: "elm,action,slot,top,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.5;
+         target: "elm.swallow.slot.top";
+      }
+      program { name: "topshow3";
+         signal: "elm,action,slot,top,show"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "button_image";
+         target: "limit0";
+         target: "limit1";
+      }
+      program { name: "tophide";
+         signal: "elm,action,slot,top,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "elm.swallow.slot.top";
+      }
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.5;
+         target: "elm.swallow.slot.bottom";
+      }
+      program { name: "bottomshow3";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "bottom" 0.0;
+         target: "button_image";
+         target: "limit0";
+         target: "limit1";
+      }
+      program { name: "bottomhide";
+         signal: "elm,action,slot,bottom,hide"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "elm.swallow.slot.bottom";
+      }
+   }
+}
+
+#undef HOVERSEL_FONT_SIZE
index 4268a9f..5d250fc 100644 (file)
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+/**********************************************************************************************
+Document: "Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt" page no. 36 , name:"nocontent"
+***********************************************************************************************/
+#define FONT_SIZE 35
+#define FONT_SIZE_SMALL 24
+
+group { name: "elm/layout/application/default";
+   parts {
+      part { name: "elm.swallow.bg";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+   }
+}
+
+group { name: "elm/layout/application/nocontent";
+   parts {
+      part { name: "base"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 38;
+         }
+      }
+      part { name: "right.pad"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            min: 50 50;
+            max: 50 -1;
+            align: 1.0 0.0;
+         }
+      }
+      part { name: "left.pad"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            min: 50 50;
+            max: 50 -1;
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "base.pad"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "left.pad";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "right.pad";
+            rel2.relative: 0 1.0;
+            min: 0 70;
+            max: -1 70;
+            align: 0.0 0.5;
+          }
+      }
+
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         multiline: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base.pad";
+            rel2.to: "base.pad";
+            color: 211 211 211 255;
+            align: 0 0;
+            min: 0 40;
+            max: -1 40;
+            text {
+               size: FONT_SIZE;
+               min: 0 0;
+               font: FONT_M;
+            }
+         }
+      }
+      part { name: "elm.text.1"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         multiline: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.text";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "right.pad";
+            rel2.relative: 0.0 1.0;
+            color: 134 134 134 255;
+            min: 0 30;
+            max: -1 30;
+            align: 0 0;
+            text {
+               font: FONT_M;
+               size: FONT_SIZE_SMALL;
+               min: 0 0;
+            }
+         }
+      }
+   }
+}
+
+/***********************************************************************************************
+Document: "Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt" page no. 48, name:"nocontent.1"
+***********************************************************************************************/
+group { name: "elm/layout/application/nocontent.1";
+   inherit:"elm/layout/application/nocontent";
+   parts {
+      part { name: "right.pad"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 30 30;
+            max: 30 -1;
+         }
+      }
+      part { name: "left.pad"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 30 30;
+            max: 30 -1;
+         }
+      }
+   }
+}
 
 group { "elm/layout/background/default";
    parts {
diff --git a/ElmSharp/theme/tv/widgets/list.edc b/ElmSharp/theme/tv/widgets/list.edc
new file mode 100644 (file)
index 0000000..fb993d5
--- /dev/null
@@ -0,0 +1,445 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+group { name: "elm/list/item/default";
+   alias: "elm/list/item_odd/default";
+   data.item: "texts" "elm.text";
+   data.item: "focus_highlight" "on";
+   parts {
+      part { name: "base"; type: RECT;
+         scale: 1;
+         ignore_flags: ON_HOLD;
+         description { state: "default" 0.0;
+            min: 0 96;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "border_down"; type: RECT;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: 64 2;
+            rel1.relative: 0.0 1.0;
+            color: 222 222 222 222;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "border_up"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: 64 2;
+            rel2.relative: 1.0 0.0;
+            color: 222 222 222 222;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "base_highlight_bg"; type: IMAGE;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            image {
+               normal: "round_rectangle_4X4.png";
+               border: 4 4 4 4;
+               border_scale: 1;
+            }
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "base_highlight"; type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+      }
+      part { name: "pad.text.1_right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            align: 1.0 0.5;
+            min: 32 96;
+            max: 32 96;
+         }
+      }
+      part { name: "pad.text.1_left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            align: 0.0 0.5;
+            min: 32 96;
+            max: 32 96;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         effect: SHADOW BOTTOM;
+         ignore_flags: ON_HOLD;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.5;
+            min: 0 40;
+            rel1.to: "pad.text.1_left";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.text.1_right";
+            rel2.relative: 0.0 1.0;
+            color: 89 89 89 255;
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               max: 1 0;
+               ellipsis: -1;
+            }
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 89 89 89 51;
+         }
+      }
+   }
+   programs {
+      program {
+         signal: "elm,state,default"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "select_text.1";
+         signal: "elm,state,focused"; source: "elm";
+         action: STATE_SET "focused" 0.0;
+         target: "elm.text";
+         target: "base_highlight";
+         target: "border_up";
+         target: "border_down";
+      }
+      program { name: "unselect_text.1";
+         signal: "elm,state,unfocused"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+         target: "base_highlight";
+         target: "border_up";
+         target: "border_down";
+      }
+      program {
+         signal: "elm,state,disabled"; source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "elm.text";
+      }
+      program {
+         signal: "elm,state,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+   }
+}
+
+/******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140508.ppt 90 1text
+*******************************************************************/
+
+group { name: "elm/list/item/1text";
+   alias: "elm/list/item_odd/1text";
+   data.item: "texts" "elm.text";
+   data.item: "focus_highlight" "on";
+   inherit: "elm/list/item/default";
+   parts {
+      part { name: "border_down"; type: RECT;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: 64 2;
+            rel1.relative: 0.0 1.0;
+            color: 222 222 222 222;
+         }
+         description { state: "last" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "single" 0.0;
+            inherit: "last" 0.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "border_up"; type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: 64 2;
+            rel2.relative: 1.0 0.0;
+            color: 222 222 222 222;
+         }
+         description { state: "first" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "single" 0.0;
+            inherit: "first" 0.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "base_highlight_bg"; type: IMAGE;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            image {
+               normal: "round_rectangle_4X4.png";
+               border: 4 4 4 4;
+               border_scale: 1;
+            }
+            color: 255 255 255 255;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+      }
+      part { name: "base_highlight"; type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "first" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 0 10;
+         }
+         description { state: "last" 0.0;
+            inherit: "default" 0.0;
+            rel2.offset: 0 -11;
+         }
+         description { state: "single" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 0 10;
+            rel2.offset: 0 -11;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "first_focused" 0.0;
+            inherit: "first" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "last_focused" 0.0;
+            inherit: "last" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "single_focused" 0.0;
+            inherit: "single" 0.0;
+            color_class: "open_ux_theme";
+         }
+      }
+      part { name: "pad.text.1_right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            align: 1.0 0.5;
+            min: 32 96;
+            max: 32 96;
+         }
+      }
+      part { name: "pad.text.1_left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            align: 0.0 0.5;
+            min: 32 96;
+            max: 32 96;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         effect: SHADOW BOTTOM;
+         ignore_flags: ON_HOLD;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.5;
+            min: 0 40;
+            rel1.to: "pad.text.1_left";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.text.1_right";
+            rel2.relative: 0.0 1.0;
+            color: 89 89 89 255;
+            text { font: FONT_M; size: 30;
+               min: 1 1;
+               max: 1 0;
+               ellipsis: -1;
+            }
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 89 89 89 51;
+         }
+      }
+   }
+   programs {
+      program {
+         signal: "elm,state,default"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "select_text.1";
+         signal: "elm,state,focused"; source: "invalidation";
+      }
+      program {
+         signal: "elm,state,focused"; source: "elm";
+         script {
+             new st[31], Float:vl;
+             get_state(PART:"base_highlight", st, 30, vl);
+             if (!strncmp(st, "first", 5))
+                 set_state(PART:"base_highlight", "first_focused", 0.0);
+             else if (!strncmp(st, "last", 4))
+                 set_state(PART:"base_highlight", "last_focused", 0.0);
+             else if (!strncmp(st, "single", 6))
+                 set_state(PART:"base_highlight", "single_focused", 0.0);
+             else
+                 set_state(PART:"base_highlight", "focused", 0.0);
+             set_state(PART:"elm.text", "focused", 0.0);
+             set_state(PART:"base_highlight_bg", "focused", 0.0);
+         }
+      }
+      program { name: "unselect_text.1";
+         signal: "elm,state,unfocused"; source: "invalidation";
+      }
+      program {
+         signal: "elm,state,unfocused"; source: "elm";
+         script {
+             new st[31], Float:vl;
+             get_state(PART:"base_highlight", st, 30, vl);
+             if (!strncmp(st, "first", 5))
+                 set_state(PART:"base_highlight", "first", 0.0);
+             else if (!strncmp(st, "last", 4))
+                 set_state(PART:"base_highlight", "last", 0.0);
+             else if (!strncmp(st, "single", 6))
+                 set_state(PART:"base_highlight", "single", 0.0);
+             else
+                 set_state(PART:"base_highlight", "default", 0.0);
+             set_state(PART:"elm.text", "default", 0.0);
+             set_state(PART:"base_highlight_bg", "default", 0.0);
+         }
+      }
+      program {
+         signal: "elm,state,disabled"; source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "elm.text";
+      }
+      program {
+         signal: "elm,state,enabled"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program {
+         signal: "elm,state,list,first"; source: "elm";
+         action: STATE_SET "first" 0.0;
+         target: "base_highlight";
+         target: "border_up";
+      }
+      program {
+         signal: "elm,state,list,last"; source: "elm";
+         action: STATE_SET "last" 0.0;
+         target: "base_highlight";
+         target: "border_down";
+      }
+      program {
+         signal: "elm,state,list,single"; source: "elm";
+         action: STATE_SET "single" 0.0;
+         target: "base_highlight";
+         target: "border_up";
+         target: "border_down";
+      }
+   }
+}
+
+/******************************************************************
+Tizen TV_General Guide_GUI Guideline_v1.0_140508.ppt 91 1text.1icon
+*******************************************************************/
+
+group { name: "elm/list/item/1text.1icon";
+   alias: "elm/list/item_odd/1text.1icon";
+   data.item: "texts" "elm.text";
+   data.item: "contents" "elm.swallow.icon";
+   inherit: "elm/list/item/1text";
+   parts{
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 1;
+            align: 0.0 0.5;
+            rel1.to: "pad.text.1_left";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.text.1_left";
+            rel2.relative: 1.0 1.0;
+         }
+      }
+      part { name: "pad.text.1_middle"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            align: 0.0 0.5;
+            min: 20 96;
+            max: 20 96;
+            rel1.to: "elm.swallow.icon";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "elm.swallow.icon";
+            rel2.relative: 1.0 1.0;
+         }
+      }
+      part { name: "elm.text";
+         description { state: "default" 0.0;
+            rel1.to: "pad.text.1_middle";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "pad.text.1_right";
+            rel2.relative: 0.0 1.0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+   }
+}
+
diff --git a/ElmSharp/theme/tv/widgets/popup.edc b/ElmSharp/theme/tv/widgets/popup.edc
new file mode 100644 (file)
index 0000000..f568883
--- /dev/null
@@ -0,0 +1,533 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// MACRO
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC 28
+
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC 688 378
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC 688 378
+#define POPUP_BASE_DEFAULT_BASE_LANDSCAPE_MIN_INC 720 0
+#define POPUP_BASE_DEFAULT_BASE_LANDSCAPE_MAX_INC 720 648
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_MIN_INC 670 84
+#define POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 688 146
+
+#define POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT "146"
+
+#define POPUP_BUTTON_MIN_SIZE 196 70
+#define POPUP_BUTTON_PADDING_SIZE 20 70
+
+
+// notify
+group { name: "elm/notify/center/popup/default";
+   alias: "elm/notify/bottom/popup/default";
+   parts {
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC;
+            max: POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC;
+         }
+         description { state: "landscape" 0.0;
+            min: POPUP_BASE_DEFAULT_BASE_LANDSCAPE_MIN_INC;
+            max: POPUP_BASE_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+         }
+      }
+   }
+}
+
+// popup
+group { name: "elm/popup/base/default";
+   images {
+      image: "modal_dialogs_bg.png" COMP;
+      image: "round_rectangle_8X8_top.png" COMP;
+   }
+   data {
+      item: "focus_highlight" "on";
+      item: "default_orient" "2"; //top, center:1 bottom:2
+   }
+   styles {
+      style { name: "popup_title_style";
+         base: "font=Tizen:style=Regular align=center font_size="POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0";
+         tag:  "br" "\n";
+         tag:  "tab" "\t";
+      }
+   }
+   parts {
+      part { name: "base";
+         scale: 1;
+         type: SPACER;
+         description { state: "default" 0.0;
+            min: POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC;
+            max: POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC;
+         }
+         description { state: "landscape" 0.0;
+            inherit: "default" 0.0;
+            min: POPUP_BASE_DEFAULT_BASE_LANDSCAPE_MIN_INC;
+            max: POPUP_BASE_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+         }
+      }
+      part { name: "bg";
+         scale: 1;
+         type: IMAGE;
+         description {
+            rel1.to: "base";
+            rel2.to: "base";
+            image {
+               normal: "modal_dialogs_bg.png";
+               border: 18 18 15 21;
+            }
+         }
+      }
+      part { name: "access.outline";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel2.to: "base";
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.bg.title";
+         type: IMAGE;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            color: 42 76 130 255;
+            align: 0.5 0.0;
+            min: 0 84;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "base";
+               offset: 9 6;
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "base";
+               offset: -10 6;
+            }
+            image {
+               normal: "round_rectangle_8X8_top.png";
+               border: 8 8 8 0;
+            }
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.text.title";
+         type: TEXTBLOCK;
+         scale:1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            text {
+              style: "popup_title_style";
+              size: POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC;
+            }
+            rel1.to: "elm.bg.title";
+            rel2.to: "elm.bg.title";
+         }
+      }
+      part { name: "access.title";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.bg.title";
+            rel2.to: "elm.bg.title";
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel2.to: "base";
+         }
+         description { state: "show_title_area" 0.0;
+            inherit: "default" 0.0;
+            rel1 {
+               relative: 0.0 1.0;
+               to_x: "base";
+               to_y: "elm.bg.title";
+            }
+            rel2.to: "base";
+         }
+         description { state: "show_action_area" 0.0;
+            inherit: "default" 0.0;
+            rel1.to: "base";
+            rel2 {
+               relative: 1.0 0.0;
+               to_x: "base";
+               to_y: "elm.swallow.action_area.bg";
+            }
+         }
+         description { state: "show_action_title_area" 0.0;
+            inherit: "default" 0.0;
+            rel1 {
+               relative: 0.0 1.0;
+               to_x: "base";
+               to_y: "elm.bg.title";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to_x: "base";
+               to_y: "elm.swallow.action_area.bg";
+            }
+         }
+      }
+      part { name: "access.body";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.swallow.action_area.bg";
+         type: RECT;
+         scale : 1;
+         description { state: "default" 0.0;
+            fixed : 1 1;
+            align: 0.5 1.0;
+            visible: 0;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "base";
+            }
+            rel2.to: "base";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            min: POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC;
+         }
+      }
+      part { name: "elm.swallow.action_area";
+         type: SWALLOW;
+         scale : 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.action_area.bg";
+            rel2.to: "elm.swallow.action_area.bg";
+         }
+      }
+   }
+   programs {
+      program { name: show_title_area;
+         signal: "elm,state,title_area,visible";
+         source: "elm";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+            if (!strcmp(st, "visible"))
+              set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+            else
+              set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+            set_state(PART:"elm.bg.title", "visible", 0.0);
+         }
+      }
+      program { name: hide_title_area;
+         signal: "elm,state,title_area,hidden";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+            if ((!strcmp(st, "visible")) || (!strcmp(st, "landscape_visible")))
+              set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+            else
+              set_state(PART:"elm.swallow.content", "default", 0.0);
+            set_state(PART:"elm.bg.title", "default", 0.0);
+         }
+      }
+      program { name: show_action_area;
+         signal: "elm,state,action_area,visible";
+         source: "elm";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.bg.title", st, 30, vl);
+            if ((!strcmp(st, "visible")))
+              set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+            else
+              set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+            set_state(PART:"elm.swallow.action_area.bg", "visible", 0.0);
+         }
+      }
+      program { name: hide_action_area;
+         signal: "elm,state,action_area,hidden";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.bg.title", st, 30, vl);
+            if ((!strcmp(st, "visible")))
+              set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+            else
+              set_state(PART:"elm.swallow.content", "default", 0.0);
+            set_state(PART:"elm.swallow.action_area.bg", "default", 0.0);
+         }
+      }
+      program { name: "change_to_landscape";
+         action: STATE_SET "landscape" 0.0;
+         target: "base";
+         after: "orientation_change";
+      }
+      program { name: "orientation_change";
+         action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+      }
+      program { name: "change_to_portrait";
+         action: STATE_SET "default" 0.0;
+         target: "base";
+         after: "orientation_change";
+      }
+      program { name: "landscape_mode";
+         source: "elm";
+         signal: "elm,state,orient,90";
+         after: "change_to_landscape";
+      }
+      program { name: "landscape_mode2";
+         source: "elm";
+         signal: "elm,state,orient,270";
+         after: "change_to_landscape";
+      }
+      program { name: "portrait_mode";
+         source: "elm";
+         signal: "elm,state,orient,0";
+         after: "change_to_portrait";
+      }
+      program { name: "portrait_mode2";
+         source: "elm";
+         signal: "elm,state,orient,180";
+         after: "change_to_portrait";
+      }
+   }
+}
+
+// content
+group { name: "elm/popup/content/default";
+   parts{
+      part { name:"elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+   }
+}
+
+// label
+group { name: "elm/label/base/popup/default";
+   styles {
+      style { name: "textblock_style";
+         base: "font=Tizen:style=Regular font_size="POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC" align=center color=#000000 wrap=mixed";
+         tag:  "br" "\n";
+         tag:  "ps" "ps";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "tab" "\t";
+      }
+   }
+   parts {
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         scale: 1;
+         description { state: "default" 0.0;
+            text {
+               style: "textblock_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+// button
+group { name: "elm/popup/buttons1/popup/default";
+   data.item: "action_area_height" POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT;
+   parts{
+      part{ name:"elm.swallow.content.button1";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.relative: 0.5 0.5;
+            rel2.relative: 0.5 0.5;
+            min: POPUP_BUTTON_MIN_SIZE;
+         }
+      }
+   }
+}
+
+group { name: "elm/popup/buttons2/popup/default";
+   data.item: "action_area_height" POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT;
+   parts{
+      part { name:"elm.swallow.content.button1";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 0.5;
+               to: "pad";
+            }
+            rel2 {
+               relative: 0.0 0.5;
+               to: "pad";
+            }
+            align: 1.0 0.5;
+            min: POPUP_BUTTON_MIN_SIZE;
+         }
+      }
+      part { name: "pad";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.relative: 0.5 0.5;
+            rel2.relative: 0.5 0.5;
+            min: POPUP_BUTTON_PADDING_SIZE;
+         }
+      }
+      part{ name:"elm.swallow.content.button2";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 0.5;
+               to: "pad";
+            }
+            rel2 {
+               relative: 1.0 0.5;
+               to: "pad";
+            }
+            align: 0.0 0.5;
+            min: POPUP_BUTTON_MIN_SIZE;
+         }
+      }
+   }
+}
+
+group { name: "elm/popup/buttons3/popup/default";
+   data.item: "action_area_height" POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT;
+   parts{
+      part { name:"elm.swallow.content.button1";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 0.0 0.5;
+               to: "pad.left";
+            }
+            rel2 {
+               relative: 0.0 0.5;
+               to: "pad.left";
+            }
+            align: 1.0 0.5;
+            min: POPUP_BUTTON_MIN_SIZE;
+         }
+      }
+      part { name: "pad.left";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 0.0 0.5;
+               to: "elm.swallow.content.button2";
+            }
+            rel2 {
+               relative: 0.0 0.5;
+               to: "elm.swallow.content.button2";
+            }
+            align: 1.0 0.5;
+            min: POPUP_BUTTON_PADDING_SIZE;
+         }
+      }
+      part{ name:"elm.swallow.content.button2";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.relative: 0.5 0.5;
+            rel2.relative: 0.5 0.5;
+            min: POPUP_BUTTON_MIN_SIZE;
+         }
+      }
+      part { name: "pad.right";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 1.0 0.5;
+               to: "elm.swallow.content.button2";
+            }
+            rel2 {
+               relative: 1.0 0.5;
+               to: "elm.swallow.content.button2";
+            }
+            align: 0.0 0.5;
+            min: POPUP_BUTTON_PADDING_SIZE;
+         }
+      }
+      part{ name:"elm.swallow.content.button3";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 1.0 0.5;
+               to: "pad.right";
+            }
+            rel2 {
+               relative: 1.0 0.5;
+               to: "pad.right";
+            }
+            align: 0.0 0.5;
+            min: POPUP_BUTTON_MIN_SIZE;
+         }
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/progressbar.edc b/ElmSharp/theme/tv/widgets/progressbar.edc
new file mode 100644 (file)
index 0000000..ff31bcf
--- /dev/null
@@ -0,0 +1,767 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define ADD_PULSE_PARTS PULSE_PART(1,0) PULSE_PART(2,1) \
+PULSE_PART(3,2)   PULSE_PART(4,3)   PULSE_PART(5,4)   PULSE_PART(6,5)   PULSE_PART(7,6)   PULSE_PART(8,7)   PULSE_PART(9,8)   PULSE_PART(10,9) \
+PULSE_PART(11,10) PULSE_PART(12,11) PULSE_PART(13,12) PULSE_PART(14,13) PULSE_PART(15,14) PULSE_PART(16,15) PULSE_PART(17,16) PULSE_PART(18,17) \
+PULSE_PART(19,18) PULSE_PART(20,19) PULSE_PART(21,20) PULSE_PART(22,21) PULSE_PART(23,22) PULSE_PART(24,23) PULSE_PART(25,24) PULSE_PART(26,25) \
+PULSE_PART(27,26) PULSE_PART(28,27) PULSE_PART(29,28) PULSE_PART(30,29) PULSE_PART(31,30) PULSE_PART(32,31) PULSE_PART(33,32) PULSE_PART(34,33) \
+PULSE_PART(35,34) PULSE_PART(36,35) PULSE_PART(37,36) PULSE_PART(38,37) PULSE_PART(39,38) PULSE_PART(40,39) PULSE_PART(41,40) PULSE_PART(42,41) \
+PULSE_PART(43,42) PULSE_PART(44,43) PULSE_PART(45,44) PULSE_PART(46,45) PULSE_PART(47,46) PULSE_PART(48,47) PULSE_PART(49,48) PULSE_PART(50,49) \
+PULSE_PART(51,50) PULSE_PART(52,51) PULSE_PART(53,52) PULSE_PART(54,53) PULSE_PART(55,54) PULSE_PART(56,55) PULSE_PART(57,56) PULSE_PART(58,57) \
+PULSE_PART(59,58) PULSE_PART(60,59) PULSE_PART(61,60) PULSE_PART(62,61) PULSE_PART(63,62) PULSE_PART(64,63) PULSE_PART(65,64) PULSE_PART(66,65) \
+PULSE_PART(67,66) PULSE_PART(68,67) PULSE_PART(69,68) PULSE_PART(70,69) PULSE_PART(71,70) PULSE_PART(72,71) PULSE_PART(73,72) PULSE_PART(74,73) \
+PULSE_PART(75,74) PULSE_PART(76,75) PULSE_PART(77,76) PULSE_PART(78,77) PULSE_PART(79,78) PULSE_PART(80,79) PULSE_PART(81,80) PULSE_PART(82,81) \
+PULSE_PART(83,82) PULSE_PART(84,83) PULSE_PART(85,84) PULSE_PART(86,85) PULSE_PART(87,86) PULSE_PART(88,87) PULSE_PART(89,88) PULSE_PART(90,89) \
+PULSE_PART(91,90) PULSE_PART(92,91) PULSE_PART(93,92) PULSE_PART(94,93) PULSE_PART(95,94) PULSE_PART(96,95) PULSE_PART(97,96) PULSE_PART(98,97) \
+PULSE_PART(99,98) PULSE_PART(100,99)
+
+#define PULSE_PART(i,j) \
+part { name: "pulse_area_"i"_blank"; type: RECT; mouse_events: 0; \
+   clip_to: "pulse_clipper"; \
+   description { state: "default" 0.0; \
+      min: 10 4; \
+      max: 10 4; \
+      fixed: 1 1; \
+      rel1 { \
+         to_x: "pulse_area_"j"_filled"; \
+         to_y: "pulse_area_"j"_filled"; \
+         relative: 1.0 0.0; \
+      } \
+      rel2 { \
+         to_x: "pulse_area_"j"_filled"; \
+         to_y: "pulse_area_"j"_filled"; \
+         relative: 1.0 1.0; \
+      } \
+      align: 0.0 0.5; \
+      color: 255 255 255 26; \
+   } \
+} \
+part { name: "pulse_area_"i"_filled"; type: RECT; mouse_events: 0; \
+   clip_to: "pulse_clipper"; \
+   description { state: "default" 0.0; \
+      min: 10 4; \
+      max: 10 4; \
+      fixed: 1 1; \
+      rel1 { \
+         to_x: "pulse_area_"i"_blank"; \
+         to_y: "pulse_area_"i"_blank"; \
+         relative: 1.0 0.0; \
+      } \
+      rel2 { \
+         to_x: "pulse_area_"i"_blank"; \
+         to_y: "pulse_area_"i"_blank"; \
+         relative: 1.0 1.0; \
+      } \
+      align: 0.0 0.5; \
+      color: 255 255 255 178; \
+   } \
+} \
+
+
+/*****************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt, Page no. 95,
+Progessbar filling style, single progress filling,
+Gray color filling over a trasparent bg
+******************************************************************************/
+group { name: "elm/progressbar/horizontal/default";
+   parts {
+      part { name: "elm.background.progressbar"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 9999 4;
+         }
+      }
+      part { name: "elm.swallow.bar"; mouse_events: 0; type: SWALLOW;
+         description {
+            min: 4 4;
+            max: 9999 4;
+            fixed: 1 1;state: "default" 0.0;
+            rel1 {
+               to_x: "elm.text";
+               to_y: "elm.background.progressbar";
+            }
+            rel2.to: "elm.background.progressbar";
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.0 0.5;
+            rel1.to_y: "elm.background.progressbar";
+            rel2 {
+               relative: 0.0 1.0;
+               to_y: "elm.background.progressbar";
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            aspect: 1.0 1.0;
+            aspect_preference: VERTICAL;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+            align: 0.0 0.5;
+            rel1.to_x: "elm.swallow.content";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "elm.swallow.content";
+            color: 0 0 0 0;
+            text {
+               font: "Sans,Edje-Vera";
+               size: 10;
+               min: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+      part { name: "background"; type: RECT; mouse_events: 0;
+         clip_to: "elm.background.progressbar";
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.bar";
+            rel2.to: "elm.swallow.bar";
+            color: 255 255 255 26;
+         }
+      }
+      part { name: "elm.text.status"; type: TEXT; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 1;
+            rel1 {
+               to: "background";
+               relative: 0.5 0.5;
+            }
+            rel2 {
+               to: "background";
+               relative: 0.5 0.5;
+            }
+            text {
+               font: "Sans:style=Bold,Edje-Vera-Bold";
+               size: 10;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.5 0.0;
+            }
+            color: 0 0 0 0;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+            text.min: 0 0;
+         }
+      }
+      part { name: "elm.progress.progressbar"; type: RECT;  mouse_events: 0;
+         clip_to: "elm.background.progressbar";
+         description { state: "default" 0.0;
+            min: 10 4;
+            max: 9999 4;
+            fixed: 1 1;
+            rel1.to: "elm.swallow.bar";
+            rel2 {
+               to_y: "elm.swallow.bar";
+               to_x: "elm.cur.progressbar";
+            }
+            color: 255 255 255 178;
+         }
+         description { state: "invert" 0.0;
+            inherit: "default" 0.0;
+            rel1 {
+               to_y: "elm.swallow.bar";
+               to_x: "elm.cur.progressbar";
+            }
+            rel2.to: "elm.swallow.bar";
+         }
+         description { state: "state_begin" 0.0;          //OK
+            inherit: "default" 0.0;
+            min: 10 4;
+            max: 10 4;
+            rel1.to: "elm.swallow.bar";
+            rel2 {
+               to: "elm.swallow.bar";
+               relative: 0.0 1.0;
+            }
+            align: 0.0 0.5;
+         }
+         description { state: "state_end" 0.0;
+            inherit: "default" 0.0;
+            min: 10 4;
+            max: 10 4;
+            rel1 {
+               to: "pulse_area0";
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               to: "pulse_area0";
+               relative: 1.0 1.0;
+            }
+            align: 0.0 0.5;
+         }
+         description { state: "state_end1" 0.0;          //OK
+            inherit: "state_begin" 0.0;
+         }
+         description { state: "state_begin1" 0.0;          //OK
+            inherit: "state_end" 0.0;
+         }
+      }
+      part { name: "pulse_clipper"; type: RECT; mouse_events: 0;
+         clip_to: "elm.background.progressbar";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.background.progressbar";
+            rel2.to: "elm.background.progressbar";
+            visible: 0;
+         }//tt
+         description { state: "state_pulse" 0.0;          //OK
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "state_begin" 0.0;          //OK
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "pulse_area0"; type: SPACER; mouse_events: 0;
+         description { state: "default" 0.0;
+            min: 20 4;
+            max: 20 4;
+            fixed: 1 1;
+            rel1.to: "elm.swallow.bar";
+            rel2 {
+               to_y: "elm.swallow.bar";
+               to_x: "elm.cur.progressbar";
+               relative: 0.0 1.0;
+            }
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "pulse_area_0_blank"; type: RECT; mouse_events: 0;
+         clip_to: "pulse_clipper";
+         description { state: "default" 0.0;
+            min: 10 4;
+            max: 10 4;
+            fixed: 1 1;
+            rel1 {
+               to_x: "elm.progress.progressbar";
+               to_y: "elm.progress.progressbar";
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               to_x: "elm.progress.progressbar";
+               to_y: "elm.progress.progressbar";
+               relative: 1.0 1.0;
+            }
+            align: 0.0 0.5;
+            color: 255 255 255 26;
+         }
+      }
+      part { name: "pulse_area_0_filled"; type: RECT; mouse_events: 0;
+         clip_to: "pulse_clipper";
+         description { state: "default" 0.0;
+            min: 10 4;
+            max: 10 4;
+            fixed: 1 1;
+            rel1 {
+               to_x: "pulse_area_0_blank";
+               to_y: "pulse_area_0_blank";
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               to_x: "pulse_area_0_blank";
+               to_y: "pulse_area_0_blank";
+               relative: 1.0 1.0;
+            }
+            align: 0.0 0.5;
+            color: 255 255 255 178;
+         }
+      }
+      ADD_PULSE_PARTS
+      part { name: "text-bar"; type: TEXT; mouse_events: 0;
+         clip_to: "progress-rect";
+         effect: SOFT_SHADOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            fixed: 1 1;
+            visible: 1;
+            rel1.to: "elm.text.status";
+            rel2.to: "elm.text.status";
+            text {
+               text_source: "elm.text.status";
+               font: "Sans:style=Bold,Edje-Vera-Bold";
+               size: 10;
+               min: 1 1;
+               ellipsis: -1;
+               align: 0.0 0.0;
+            }
+            color: 224 224 224 0;
+            color3: 0 0 0 64;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+            text.min: 0 0;
+         }
+      }
+      part { name: "over1"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "elm.progress.progressbar";
+            rel2.to: "elm.progress.progressbar";
+            rel2.relative: 1.0 0.5;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "over2"; type: RECT; mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.progress.progressbar";
+            rel2.to: "elm.progress.progressbar";
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.cur.progressbar"; mouse_events: 0;
+         dragable {
+            confine: "background";
+            x: 1 1 1;
+            y: 0 0 0;
+         }
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 9999 4;
+            fixed: 1 1;
+            visible: 0;
+            rel1.to: "background";
+            rel2.to: "background";
+         }
+      }
+      part { name: "progress-rect"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "elm.progress.progressbar";
+            rel2.to: "elm.progress.progressbar";
+         }
+      }
+      part { name: "tmp"; type: RECT; mouse_events: 0;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.bar";
+            rel2.to: "elm.swallow.bar";
+            color: 255 0 0 0;
+         }
+      }
+   }
+   programs {
+      program { name: "label_show";
+         signal: "elm,state,text,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.text";
+      }
+      program { name: "label_hide";
+         signal: "elm,state,text,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "units_show";
+         signal: "elm,state,units,visible";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "text-bar";
+         target: "elm.text.status";
+      }
+      program { name: "units_hide";
+         signal: "elm,state,units,hidden";
+         source: "elm";
+         action:  STATE_SET "hidden" 0.0;
+         target: "text-bar";
+         target: "elm.text.status";
+      }
+      program { name: "slide_to_end";
+         action:  STATE_SET "state_end" 0.0;
+         transition: LINEAR 0.5;
+         target: "elm.progress.progressbar";
+         after: "slide_to_begin";
+      }
+      program { name: "slide_to_begin";
+         signal: "elm,state,slide,begin";
+         action: STATE_SET "state_begin" 0.0;
+         target: "elm.progress.progressbar";
+//         transition: LINEAR 0.5;
+         after: "slide_to_end";
+      }
+      program { name: "start_pulse";
+         signal: "elm,state,pulse,start";
+         source: "elm";
+         action: STATE_SET "state_pulse" 0.0;
+         target: "pulse_clipper";
+         after: "slide_to_end";
+      }
+      program { name: "stop_pulse";
+         signal: "elm,state,pulse,stop";
+         source: "elm";
+         action: ACTION_STOP;
+         target: "slide_to_begin";
+         target: "slide_to_end";
+         target: "start_pulse";
+         after: "state_pulse";
+      }
+      program { name: "state_pulse";
+         signal: "elm,state,pulse";
+         source: "elm";
+         action: STATE_SET "state_begin" 0.0;
+         target: "elm.progress.progressbar";
+         target: "pulse_clipper";
+         after: "units_hide";
+      }
+      program { name: "state_fraction";
+         signal: "elm,state,fraction";
+         source: "elm";
+         action: ACTION_STOP;
+         target: "slide_to_begin";
+         target: "slide_to_end";
+         target: "start_pulse";
+         action: STATE_SET "default" 0.0;
+         target: "elm.progress.progressbar";
+      }
+      program { name: "set_invert_on";
+         signal: "elm,state,inverted,on";
+         source: "elm";
+         action:  STATE_SET "invert" 0.0;
+         target: "elm.progress.progressbar";
+      }
+      program { name: "set_invert_off";
+         signal: "elm,state,inverted,off";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.progress.progressbar";
+      }
+   }
+}
+
+/*****************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt, Page no. 95,
+Vertical Progessbar filling style, single progress filling,
+Gray color filling over a trasparent bg
+******************************************************************************/
+group { name: "elm/progressbar/vertical/default";
+   parts {
+      part { name: "elm.background.progressbar"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.bar"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 4 9999;
+            fixed: 1 1;
+            align: 0.5 1.0;
+            rel1 {
+               to_y: "elm.text";
+               relative: 0.0 1.0;
+            }
+            rel2 {
+               to_y: "elm.text.box";
+               relative: 1.0 0.0;
+            }
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.5 0.0;
+            rel1.to_x: "elm.swallow.bar";
+            rel2 {
+               relative: 1.0 0.0;
+               to_x: "elm.swallow.bar";
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            aspect: 1.0 1.0;
+            aspect_preference: HORIZONTAL;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+            align: 0.5 0.0;
+            rel1.to_y: "elm.swallow.content";
+            rel1.relative: 0.5 1.0;
+            rel2.to_y: "elm.swallow.content";
+            rel2.relative: 0.5 1.0;
+            color: 0 0 0 0;
+            text {
+               font: "Sans,Edje-Vera";
+               size: 10;
+               min: 0 0;
+               align: 0.5 0.0;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+      part { name: "background"; type: RECT; mouse_events: 0;
+         clip_to: "elm.background.progressbar";
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.bar";
+            rel2.to: "elm.swallow.bar";
+            color: 255 255 255 26;
+         }
+      }
+      part { name: "elm.progress.progressbar"; type: RECT; mouse_events: 0;
+         clip_to: "elm.background.progressbar";
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 4 9999;
+            fixed: 1 1;
+            rel1.to: "elm.swallow.bar";
+            rel2 {
+               to_x: "elm.swallow.bar";
+               to_y: "elm.cur.progressbar";
+            }
+            color: 255 255 255 178;
+         }
+         description { state: "invert" 0.0;
+            inherit: "default" 0.0;
+            rel1 {
+               to_x: "elm.swallow.bar";
+               to_y: "elm.cur.progressbar";
+            }
+            rel2.to: "elm.swallow.bar";
+         }
+         description { state: "state_begin" 0.0;
+            inherit: "default" 0.0;
+            rel1.to: "elm.swallow.bar";
+            rel2 {
+               to: "elm.swallow.bar";
+               relative: 1.0 0.1;
+            }
+         }
+         description { state: "state_end" 0.0;
+            inherit: "default" 0.0;
+            rel1 {
+               to: "elm.swallow.bar";
+               relative: 0.0 0.9;
+            }
+            rel2.to: "elm.swallow.bar";
+         }
+      }
+      part { name: "over1"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "elm.progress.progressbar";
+            rel2.to: "elm.progress.progressbar";
+            rel2.relative: 1.0 0.5;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "over2"; type: RECT; mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.progress.progressbar";
+            rel2.to: "elm.progress.progressbar";
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.cur.progressbar"; mouse_events: 0;
+         dragable {
+            confine: "background";
+            x: 0 0 0;
+            y: 1 1 1;
+         }
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 9999 4;
+            fixed: 1 1;
+            visible: 0;
+            rel1.to: "background";
+            rel2.to: "background";
+         }
+      }
+      part { name: "elm.text.box"; mouse_events: 0; type: RECT;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to: "elm.text.status";
+            rel2.to: "elm.text.status";
+            color: 255 255 255 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.text.status"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+            align: 0.5 1.0;
+            rel1.relative: 0.0 1.0;
+            color: 0 0 0 0;
+            text {
+               font: "Sans:style=Bold,Edje-Vera-Bold";
+               size: 10;
+               min: 0 0;
+               align: 0.5 0.0;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            fixed: 1 1;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+   }
+   programs {
+      program { name: "label_show";
+         signal: "elm,state,text,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.text";
+      }
+      program { name: "label_hide";
+         signal: "elm,state,text,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "units_show";
+         signal: "elm,state,units,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.text.status";
+         target: "elm.text.box";
+      }
+      program { name: "units_hide";
+         signal: "elm,state,units,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.text.status";
+         target: "elm.text.box";
+      }
+      program { name: "slide_to_end";
+         action:  STATE_SET "state_end" 0.0;
+         transition: LINEAR 0.5;
+         target: "elm.progress.progressbar";
+         after: "slide_to_begin";
+      }
+      program { name: "slide_to_begin";
+         action:  STATE_SET "state_begin" 0.0;
+         target: "elm.progress.progressbar";
+         transition: LINEAR 0.5;
+         after: "slide_to_end";
+      }
+      program { name: "start_pulse";
+         signal: "elm,state,pulse,start";
+         source: "elm";
+         action: STATE_SET "state_begin" 0.0;
+         target: "elm.progress.progressbar";
+         after: "slide_to_end";
+      }
+      program { name: "stop_pulse";
+         signal: "elm,state,pulse,stop";
+         source: "elm";
+         action: ACTION_STOP;
+         target: "slide_to_begin";
+         target: "slide_to_end";
+         target: "start_pulse";
+         after: "state_pulse";
+      }
+      program { name: "state_pulse";
+         signal: "elm,state,pulse";
+         source: "elm";
+         action: STATE_SET "state_begin" 0.0;
+         target: "elm.progress.progressbar";
+         after: "units_hide";
+      }
+      program { name: "state_fraction";
+         signal: "elm,state,fraction";
+         source: "elm";
+         action: ACTION_STOP;
+         target: "slide_to_begin";
+         target: "slide_to_end";
+         target: "start_pulse";
+         action: STATE_SET "default" 0.0;
+         target: "elm.progress.progressbar";
+      }
+      program { name: "set_invert_on";
+         signal: "elm,state,inverted,on";
+         source: "elm";
+         action:  STATE_SET "invert" 0.0;
+         target: "elm.progress.progressbar";
+         target: "elm.cur.progressbar";
+      }
+      program { name: "set_invert_off";
+         signal: "elm,state,inverted,off";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.progress.progressbar";
+         target: "elm.cur.progressbar";
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/radio.edc b/ElmSharp/theme/tv/widgets/radio.edc
new file mode 100644 (file)
index 0000000..b94c1bc
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*****************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt, Page no. 77,
+******************************************************************************/
+#define RADIO_SIZE 38 38
+#define RADIO_FONT_SIZE 24
+
+group { name: "elm/radio/base/default";
+   images {
+      image: "radiobtn_on_nor.png" COMP;
+      image: "radiobtn_off_nor.png" COMP;
+      image: "radiobtn_off_foc.png" COMP;
+      image: "radiobtn_on_foc.png" COMP;
+   }
+   data.item: "focus_highlight" "on";
+   script {
+      public is_focus = 0;
+      public is_checkd = 0;
+      public set_focus() {
+         set_int(is_focus, 1);
+      }
+      public unset_focus() {
+         set_int(is_focus, 0);
+      }
+      public set_check_set() {
+         set_state(PART:"bg", "invisible", 0.0);
+         if (get_int(is_focus)) {
+            set_state(PART:"radio", "highlight", 0.0);
+         }
+         else {
+            set_state(PART:"radio", "visible", 0.0);
+         }
+      }
+      public set_check_unset() {
+         set_state(PART:"radio", "default", 0.0);
+         if (get_int(is_focus)) {
+            set_state(PART:"bg", "highlight", 0.0);
+         }
+         else {
+            set_state(PART:"bg", "default", 0.0);
+         }
+      }
+   }
+   parts {
+      part { name: "bg";
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel2.relative: 0.0 1.0;
+            align: 0.0 0.5;
+            min: RADIO_SIZE;
+            max: RADIO_SIZE;
+            aspect: 1.0 1.0;
+            aspect_preference: VERTICAL;
+            image.normal: "radiobtn_off_nor.png";
+         }
+         description { state: "invisible" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "radiobtn_off_foc.png";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 51;
+         }
+      }
+      part { name: "radio";
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            image.normal: "radiobtn_on_nor.png";
+            visible: 0;
+         }
+         description { state: "highlight" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "radiobtn_on_foc.png";
+            visible: 1;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            visible: 0;
+            align: 0.0 0.5;
+            max: 0 0;
+            rel1.to_x: "bg";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 1 1;
+            rel2.to_x: "bg";
+            rel2.offset: 1 -2;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            aspect: 1.0 1.0;
+            min: RADIO_SIZE;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 128;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 128;
+            visible: 1;
+            aspect: 1.0 1.0;
+         }
+      }
+      part { name: "elm.text";
+         type: TEXT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to_x: "elm.swallow.content";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 1 1;
+            rel2.offset: -2 -2;
+            color: 0 0 0 255;
+            text { font: FONT_M;
+               size: RADIO_FONT_SIZE;
+               min: 0 0;
+               align: -1.0 0.5;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 128;
+            color3: 0 0 0 0;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 128;
+            color3: 0 0 0 0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+      part { name: "events";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "disabler";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "click";
+         signal: "mouse,clicked,1";
+         source: "events";
+         action: SIGNAL_EMIT "elm,action,radio,toggle" "";
+      }
+      program { name: "radio_on";
+         signal: "elm,state,radio,on";
+         source: "elm";
+         script{
+            set_check_set();
+         }
+      }
+      program { name: "radio_off";
+         signal: "elm,state,radio,off";
+         source: "elm";
+         script{
+            set_check_unset();
+         }
+      }
+      program { name: "text_show";
+         signal: "elm,state,text,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.text";
+      }
+      program { name: "text_hide";
+         signal: "elm,state,text,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible";
+         source: "elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.content";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "bg";
+         target: "bg";
+         target: "disabler";
+         after: "disable_text";
+      }
+      program { name: "disable_text";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+            get_state(PART:"elm.swallow.content", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.swallow.content", "disabled", 0.0);
+         }
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disabler";
+         after:  "enable_text";
+      }
+      program { name: "enable_text";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "disabled_visible"))
+               set_state(PART:"elm.text", "visible", 0.0);
+            else
+               set_state(PART:"elm.text", "default", 0.0);
+            get_state(PART:"elm.swallow.content", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.swallow.content", "visible", 0.0);
+            else
+               set_state(PART:"elm.swallow.content", "default", 0.0);
+         }
+      }
+      program { name: "focused";
+        signal: "elm,action,focus"; source: "elm";
+        script {
+            set_focus();
+        }
+        after: "enable_focus";
+      }
+      program { name: "enable_focus";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"bg", st, 30, vl);
+            if (!strcmp(st, "default"))
+               set_state(PART:"bg", "highlight", 0.0);
+
+            get_state(PART:"radio", st, 30, vl);
+            if (!strcmp(st, "visible")) {
+               set_state(PART:"radio", "highlight", 0.0);
+               set_state(PART:"bg", "invisible", 0.0);
+            }
+         }
+      }
+      program { name: "unfocused";
+         signal: "elm,action,unfocus"; source: "elm";
+         script {
+            unset_focus();
+         }
+         after: "disable_focus";
+      }
+      program { name: "disable_focus";
+         script {
+         new st[31];
+         new Float:vl;
+         get_state(PART:"bg", st, 30, vl);
+         if (!strcmp(st, "highlight"))
+            set_state(PART:"bg", "default", 0.0);
+
+         get_state(PART:"radio", st, 30, vl);
+         if (!strcmp(st, "highlight"))
+            set_state(PART:"radio", "visible", 0.0);
+         }
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/scroller.edc b/ElmSharp/theme/tv/widgets/scroller.edc
new file mode 100644 (file)
index 0000000..178a43d
--- /dev/null
@@ -0,0 +1,613 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/****************************************************************************
+DOC: Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt page : 61 style: black
+****************************************************************************/
+group { name: "elm/scroller/base/default";
+   alias: "elm/list/base/default";
+   alias: "elm/genlist/base/default";
+   alias: "elm/gengrid/base/default";
+   alias: "elm/scroller/base/map_bubble";
+   alias: "elm/genscroller/base/default";
+
+   data {
+      item: "focus_highlight" "on";
+   }
+
+   script {
+      public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
+      public timer0(val) {
+         new v;
+         v = get_int(sbvis_v);
+         if (v) {
+            v = get_int(sbalways_v);
+            if (!v) {
+               emit("do-hide-vbar", "");
+               set_int(sbvis_v, 0);
+            }
+         }
+         v = get_int(sbvis_h);
+         if (v) {
+            v = get_int(sbalways_h);
+            if (!v) {
+               emit("do-hide-hbar", "");
+               set_int(sbvis_h, 0);
+            }
+         }
+         set_int(sbvis_timer, 0);
+         return 0;
+      }
+      public visible_scroll() {
+           new v;
+            v = get_int(sbvis_v);
+            v |= get_int(sbalways_v);
+            if (!v) {
+               emit("do-show-vbar", "");
+               set_int(sbvis_v, 1);
+            }
+            v = get_int(sbvis_h);
+            v |= get_int(sbalways_h);
+            if (!v) {
+               emit("do-show-hbar", "");
+               set_int(sbvis_h, 1);
+            }
+            v = get_int(sbvis_timer);
+            if (v > 0) cancel_timer(v);
+            v = timer(5.0, "timer0", 0);
+            set_int(sbvis_timer, v);
+      }
+      public mask(val) {
+            new x, y , w, h, x1, y1 , w1, h1;
+            get_geometry(PART:"pad.drag_up", x,y,w, h);
+            get_geometry(PART:"pad.vbar_up", x1,y1,w1, h1);
+
+            if( y >= y1 && y <=(y1+h1) )
+            {
+               set_state(PART:"mask.top", "default", 0.0);
+            }
+            else
+            {
+               set_state(PART:"mask.top", "show", 0.0);
+            }
+            get_geometry(PART:"pad.drag_down", x,y,w, h);
+            get_geometry(PART:"pad.vbar_down", x1,y1,w1, h1);
+
+            if( (y+h) >= y1 && (y+h) <= (y1+h1) )
+            {
+               set_state(PART:"mask.bottom", "hidden", 0.0);
+            }
+            else
+            {
+               set_state(PART:"mask.bottom", "default", 0.0);
+            }
+            if(val < 100)
+               timer(0.01,"mask",val+1);
+       }
+
+   }
+
+   images {
+      image: "scrollbar_vertical.png" COMP;
+      image: "scrollbar_horizontal.png" COMP;
+      image: "scrollbar_mask_top.png" COMP;
+      image: "scrollbar_mask_bottom.png" COMP;
+   }
+   parts {
+      part { name: "bg"; type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+         }
+      }
+      part { name: "clipper"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+         }
+      }
+      part { name: "mask.top"; mouse_events: 1;
+         repeat_events: 1;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.content";
+            align: 0 0;
+            min: 0 36;
+            max: -1 36;
+            fixed: 1 1;
+            image.normal: "scrollbar_mask_top.png";
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default";
+            visible: 0;
+         }
+      }
+      part { name: "mask.bottom"; mouse_events: 1;
+         repeat_events: 1;
+         clip_to: "clipper";
+         description { state: "default" 0.0;
+            rel2.to: "elm.swallow.content";
+            align: 1 1;
+            min: 0 36;
+            max: -1 36;
+            fixed: 1 1;
+            image.normal: "scrollbar_mask_bottom.png";
+            visible: 0;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default";
+            visible: 0;
+         }
+      }
+      part { name: "pad.vbar_up"; type: SPACER;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 4 18;
+            max: 4 18;
+            fixed: 1 1;
+            align: 0.0 0.0;
+            rel1.to: "sb_vbar";
+            rel2.to: "sb_vbar";
+         }
+      }
+      part { name: "pad.drag_up"; type: SPACER;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 4 4;
+            fixed: 1 1;
+            align: 0.0 0.0;
+            rel1.to: "elm.dragable.vbar";
+            rel2.to: "elm.dragable.vbar";
+         }
+      }
+      part { name: "pad.vbar_down"; type: SPACER;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 4 18;
+            max: 4 18;
+            fixed: 1 1;
+            align: 0.0 1.0;
+            rel1.to: "sb_vbar";
+            rel2.to: "sb_vbar";
+         }
+      }
+      part { name: "pad.drag_down"; type: SPACER;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 4 4;
+            max: 4 4;
+            fixed: 1 1;
+            align: 0.0 1.0;
+            rel1.to: "elm.dragable.vbar";
+            rel2.to: "elm.dragable.vbar";
+         }
+      }
+
+      part { name: "conf_over"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            color: 255 255 0 0;
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            color: 200 155 0 0;
+         }
+      }
+      part { name: "focus_highlight"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            color: 200 155 0 0;
+         }
+         description { state: "enabled" 0.0;
+            inherit: "default" 0.0;
+            color: 200 155 0 0;
+         }
+      }
+      part { name: "sb_vbar_clip_master"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "sb_vbar_clip"; type: RECT; mouse_events: 0;
+         clip_to: "sb_vbar_clip_master";
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "sb_vbar"; type: RECT; mouse_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 0;
+            min: 10 17;
+            align: 1.0 0.0;
+            rel1 {
+               relative: 1.0 0.0;
+               to_y: "elm.swallow.content";
+               to_x: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to_y:     "sb_hbar";
+               to_x:     "elm.swallow.content";
+            }
+         }
+      }
+      part { name: "elm.dragable.vbar"; mouse_events: 0;
+         clip_to: "sb_vbar_clip";
+         dragable {
+            x: 0 0 0;
+            y: 1 1 0;
+            confine: "sb_vbar";
+         }
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 8 9;
+            max: 8 -1;
+            rel1 {
+               relative: 0.5 0.5;
+               to: "sb_vbar";
+            }
+            rel2 {
+               relative: 0.5 0.5;
+               to: "sb_vbar";
+            }
+            color: 0 0 0 64;
+            image {
+               normal: "scrollbar_vertical.png";
+               border: 4 4 4 4;
+               middle: SOLID;
+            }
+         }
+      }
+      part { name: "sb_hbar_clip_master"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "sb_hbar_clip"; type: RECT; mouse_events: 0;
+         clip_to: "sb_hbar_clip_master";
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "sb_hbar"; type: RECT; mouse_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 0;
+            min: 17 10;
+            align: 0.0 1.0;
+            rel1 {
+               relative: 0.0 1.0;
+               to_x: "elm.swallow.content";
+               to_y: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "sb_vbar";
+               to_y: "elm.swallow.content";
+            }
+         }
+      }
+      part { name: "elm.dragable.hbar"; mouse_events: 0;
+         clip_to: "sb_hbar_clip";
+         dragable {
+            x: 1 1 0;
+            y: 0 0 0;
+            confine: "sb_hbar";
+         }
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 9  8 ;
+            max: -1 8 ;
+            rel1 {
+               relative: 0.5  0.5;
+               to: "sb_hbar";
+            }
+            rel2 {
+               relative: 0.5  0.5;
+               to: "sb_hbar";
+            }
+            color: 0 0 0 64;
+            image {
+               normal: "scrollbar_horizontal.png";
+               border: 4 4 4 4;
+               middle: SOLID;
+            }
+         }
+      }
+      part { name: "disabler"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to: "clipper";
+            rel2.to: "clipper";
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            color: 128 128 128 128;
+         }
+      }
+   }
+   programs {
+      program { name: "load";
+         signal: "load";
+         source: "";
+         script {
+            mask(0);
+            set_state(PART:"sb_hbar_clip", "hidden", 0.0);
+            set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+            set_int(sbvis_h, 0);
+            set_int(sbvis_v, 0);
+            set_int(sbalways_v, 0);
+            set_int(sbalways_h, 0);
+            set_int(sbvis_timer, 0);
+         }
+      }
+      program { name: "vbar_show";
+         signal: "elm,action,show,vbar";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "sb_vbar_clip_master";
+      }
+      program { name: "vbar_hide";
+         signal: "elm,action,hide,vbar";
+         source: "elm";
+         action:  STATE_SET "hidden" 0.0;
+         target: "sb_vbar_clip_master";
+      }
+      program { name: "vbar_show_always";
+         signal: "elm,action,show_always,vbar";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(sbvis_v);
+            v |= get_int(sbalways_v);
+            if (!v) {
+               set_int(sbalways_v, 1);
+               emit("do-show-vbar", "");
+               set_int(sbvis_v, 1);
+            }
+         }
+      }
+      program { name: "vbar_show_notalways";
+         signal: "elm,action,show_notalways,vbar";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(sbalways_v);
+            if (v) {
+               set_int(sbalways_v, 0);
+               v = get_int(sbvis_v);
+               if (!v) {
+                  emit("do-hide-vbar", "");
+                  set_int(sbvis_v, 0);
+               }
+            }
+         }
+      }
+      program { name: "sb_vbar_show";
+         signal: "do-show-vbar";
+         source: "";
+         action:  STATE_SET "default" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_vbar_clip";
+      }
+      program { name: "sb_vbar_hide";
+         signal: "do-hide-vbar";
+         source: "";
+         action:  STATE_SET "hidden" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_vbar_clip";
+      }
+
+      program { name: "hbar_show";
+         signal: "elm,action,show,hbar";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "sb_hbar_clip_master";
+      }
+      program { name: "hbar_hide";
+         signal: "elm,action,hide,hbar";
+         source: "elm";
+         action:  STATE_SET "hidden" 0.0;
+         target: "sb_hbar_clip_master";
+      }
+      program { name: "hbar_show_always";
+         signal: "elm,action,show_always,hbar";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(sbvis_h);
+            v |= get_int(sbalways_h);
+            if (!v) {
+               set_int(sbalways_h, 1);
+               emit("do-show-hbar", "");
+               set_int(sbvis_h, 1);
+            }
+         }
+      }
+      program { name: "hbar_show_notalways";
+         signal: "elm,action,show_notalways,hbar";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(sbalways_h);
+            if (v) {
+               set_int(sbalways_h, 0);
+               v = get_int(sbvis_h);
+               if (!v) {
+                  emit("do-hide-hbar", "");
+                  set_int(sbvis_h, 0);
+               }
+            }
+         }
+      }
+      program { name: "sb_hbar_show";
+         signal: "do-show-hbar";
+         source: "";
+         action:  STATE_SET "default" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_hbar_clip";
+      }
+      program { name: "sb_hbar_hide";
+         signal: "do-hide-hbar";
+         source: "";
+         action:  STATE_SET "hidden" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_hbar_clip";
+      }
+      program { name: "scroll";
+         signal: "elm,action,scroll";
+         source: "elm";
+         script {
+            mask(100);
+            visible_scroll();
+         }
+      }
+      program { name: "mouseoverv";
+         signal: "mouse,in";
+         source: "sb_vbar";
+         script {
+            visible_scroll();
+         }
+
+      }
+      program { name: "mouseoverh";
+         signal: "mouse,in";
+         source: "sb_hbar";
+         script {
+            visible_scroll();
+         }
+      }
+      program { name: "focus";
+         signal: "elm,action,focus";
+         source: "elm";
+         script {
+           mask(100);
+            visible_scroll();
+         }
+      }
+      program { name: "highlight_show";
+         signal: "elm,action,focus_highlight,show";
+         source: "elm";
+         action: STATE_SET "enabled" 0.0;
+         transition: ACCELERATE 0.3;
+         target: "focus_highlight";
+         target: "conf_over";
+      }
+      program { name: "highlight_hide";
+         signal: "elm,action,focus_highlight,hide";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.3;
+         target: "focus_highlight";
+         target: "conf_over";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "disabler";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disabler";
+      }
+      program {
+         signal: "elm,scroller,arrow_up,hide";
+         source: "elm";
+         action: STATE_SET "invisible" 0.0;
+         target: "mask.top";
+      }
+   }
+}
+/********************************************************************************
+DOC: Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt page : 61 style: white
+* ******************************************************************************/
+group { name: "elm/scroller/base/white";
+   inherit: "elm/scroller/base/default";
+   alias: "elm/list/base/white";
+   alias: "elm/genlist/base/white";
+   alias: "elm/gengrid/base/white";
+   alias: "elm/scroller/base/map_bubble";
+   alias: "elm/genscroller/base/white";
+
+   parts {
+      part { name: "elm.dragable.vbar";
+         description { state: "default" 0.0;
+           color: 255 255 255 25;
+        }
+      }
+      part { name: "elm.dragable.hbar";
+         description { state: "default" 0.0;
+            color: 255 255 255 25;
+         }
+      }
+   }
+}
+
+/********************************************************************************
+DOC: Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt page : 70 style: white
+********************************************************************************/
+group { name: "elm/scroller/base/no_bar";
+   inherit: "elm/scroller/base/default";
+   alias: "elm/list/base/no_bar";
+   alias: "elm/genlist/base/no_bar";
+   alias: "elm/gengrid/base/no_bar";
+   alias: "elm/scroller/base/map_bubble";
+   alias: "elm/genscroller/base/no_bar";
+
+   parts {
+      part { name: "elm.dragable.vbar";
+         description { state: "default" 0.0;
+            visible: 0;
+        }
+      }
+      part { name: "elm.dragable.hbar";
+         description { state: "default" 0.0;
+            visible: 0;
+         }
+      }
+   }
+}
diff --git a/ElmSharp/theme/tv/widgets/slider.edc b/ElmSharp/theme/tv/widgets/slider.edc
new file mode 100644 (file)
index 0000000..bedd884
--- /dev/null
@@ -0,0 +1,939 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt, Page no.94,
+style name: default
+*********************************************************************************/
+
+//ADD_COLOR_CLASS
+
+#define SLIDER_FONT_SIZE 26
+
+group { name: "elm/slider/horizontal/default";
+   data.item: "focus_highlight" "on";
+   styles {
+      style { name: "slider_style";
+         base: "font="FONT_M" font_size="26" align=centre color=#458fff left_margin=21 right_margin=21";
+         tag: "hilight" "+ font_weight=Bold";
+         tag: "em" "+ font_style=Bold";
+      }
+   }
+   parts {
+      alias: "default" "elm.text";
+      part { name: "base"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            max: -1 8;
+            min: 0 8;
+            rel1 { to_y: "bg";
+               to_x: "pad.level.left";
+               relative: 1 0;
+            }
+            rel2 { to: "bg";
+               to_x: "pad.level.right";
+               relative: 0 1;
+            }
+         }
+      }
+      part { name: "pad.level.left"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 { to: "elm.swallow.bar";
+               relative: 0 1;
+            }
+            rel2 { to: "elm.swallow.bar";
+               relative: 0 1;
+            }
+            min: 12 0;
+            max: 12 0;
+            fixed: 1 0;
+            align: 0 0;
+         }
+      }
+      part { name: "pad.level.right"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 { to: "elm.swallow.bar";
+               relative: 0 1;
+            }
+            rel2.to: "elm.swallow.bar";
+            min: 12 0;
+            max: 12 0;
+            align: 1 0;
+            fixed: 1 0;
+         }
+      }
+      part { name: "level"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel2 { to_y: "base";
+               to_x: "elm.dragable.slider";
+               relative: 0.5 1.0;
+            }
+            color: 255 255 255 255;
+         }
+         description { state: "inverted" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 0 0 100;
+         }
+         description { state: "disabled_inverted" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "over"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1 { to_y: "base";
+               to_x: "elm.dragable.slider";
+               relative: 0.5 0.0;
+            }
+            rel2.to: "base";
+            color: 0 0 0 65;
+         }
+      }
+      part { name: "level2"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 1;
+            rel1 { to_y: "base";
+               to_x: "elm.dragable.slider";
+               relative: 0.5 0.0;
+            }
+            rel2.to: "base";
+            color: 255 255 255 65;
+         }
+         description { state: "inverted" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "disabled_inverted" 0.0;
+            inherit: "default" 0.0;
+            color: 255 0 0 100;
+            visible: 1;
+         }
+      }
+      part { name: "pad.bg"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.bar";
+            rel2.to: "elm.swallow.bar";
+            min: 12 0;
+            max: 12 0;
+            align: 0 0;
+         }
+      }
+      part { name: "pad.bg.right"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.bar";
+            rel2.to: "elm.swallow.bar";
+            min: 12 2;
+            max: 12 2;
+            align: 1 1;
+         }
+      }
+      part { name: "bg"; type: RECT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.5 0.5;
+            rel1.to: "pad.bg";
+            rel1.relative: 1 0;
+            rel2.to: "pad.bg.right";
+            rel2.relative: 0 1;
+            color: 255 0 0 255;
+         }
+      }
+      part { name: "pad.swallow.left"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0 0;
+            min: 20 0;
+            max: 20 0;
+            rel1 {
+               to_x: "elm.text";
+               relative: 1.0 0.0;
+            }
+         }
+      }
+      part { name: "pad.swallow.right"; type: SPACER; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 20 0;
+            max: 20 0;
+            fixed: 1 1;
+            align: 1 1;
+            rel2 {
+               to_x: "elm.units";
+               relative: 0.0 1.0;
+            }
+         }
+      }
+      part { name: "elm.swallow.bar"; type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 48 24;
+            max: -1 24;
+            align: 1.0 0.5;
+            rel1 {
+               to: "pad.swallow.left";
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               to_x: "pad.swallow.right";
+               relative: 0.0 1.0;
+            }
+         }
+      }
+      part { name: "elm.swallow.icon"; type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.0 0.5;
+            rel1 {
+               to_y: "elm.swallow.bar";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_y: "elm.swallow.bar";
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            aspect: 1.0 1.0;
+            aspect_preference: VERTICAL;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+            align: 1.0 0.5;
+            rel1.to_x: "elm.swallow.icon";
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "elm.swallow.icon";
+            rel2.relative: 1.0 1.0;
+            text {
+               font: "FONT_M";
+               size: SLIDER_FONT_SIZE;
+               min: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 128 128 128;
+            visible: 0;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+      part { name: "elm.swallow.end"; type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 1.0 0.5;
+            rel1 {
+               relative: 1.0 0.0;
+               to_y: "elm.swallow.bar";
+            }
+            rel2 {
+               to_y: "elm.swallow.bar";
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            aspect: 1.0 1.0;
+            aspect_preference: VERTICAL;
+         }
+      }
+      part { name: "elm.units"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+            rel1.to_x: "elm.swallow.end";
+            rel2.to_x: "elm.swallow.end";
+            color: 255 255 255 255;
+            align: 0 0.5;
+            text {
+               font: FONT_M;
+               size: SLIDER_FONT_SIZE;
+               min: 0 0;
+               align: 0.0 0.5;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 128 128 128;
+            visible: 0;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            text.min: 1 1;
+            text.ellipsis: -1;
+         }
+      }
+      part { name: "button"; type: GROUP; mouse_events: 0;
+         source:"elm/slider/horizontal/indicator/default";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.dragable.slider";
+            rel2.to: "elm.dragable.slider";
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.dragable.slider"; type: RECT;
+         scale: 1;
+         dragable {
+            x: 1 1 0;
+            y: 0 0 0;
+            confine: "bg";
+         }
+         description { state: "default" 0.0;
+            min: 0 0;
+            max: 0 0;
+            fixed: 1 1;
+            rel1 {
+               relative: 0.5 0.0;
+               to_x: "bg";
+            }
+            rel2 {
+               relative: 0.5 1.0;
+               to_x: "bg";
+            }
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "slideevent"; type: RECT; mouse_events: 0;
+         scale: 1;
+         dragable.events: "elm.dragable.slider";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 24 24;
+            max: 24 24;
+            rel1.to: "elm.dragable.slider";
+            rel2.to: "elm.dragable.slider";
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "elm.track.slider"; type: SWALLOW; mouse_events: 0;
+         description { state: "default" 0.0;
+            max: 0 0;
+            rel1.to: "elm.dragable.slider";
+            rel2.to: "elm.dragable.slider";
+         }
+      }
+      part { name: "disabler"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "mouse_down_bar";
+         signal: "mouse,down,*"; source:"elm.swallow.bar";
+         action: SIGNAL_EMIT "popup,show" "elm";
+      }
+      program { name: "mouse_up_bar";
+         signal: "mouse,up,*"; source:"elm.swallow.bar";
+         action: SIGNAL_EMIT "popup,hide" "elm";
+      }
+
+      program { name: "indicator_show";
+         signal: "elm,state,indicator,show"; source:"elm";
+         action: SIGNAL_EMIT "popup,show" "elm";
+      }
+      program { name: "indicator_hide";
+         signal: "elm,state,indicator,hide"; source:"elm";
+         action: SIGNAL_EMIT "highlight,hide" "elm";
+      }
+      program { name: "popup_show";
+         signal: "mouse,down,1"; source:"slideevent";
+         action: SIGNAL_EMIT "popup,show" "elm";
+      }
+      program { name: "popup_hide";
+         signal: "mouse,up,1"; source:"slideevent";
+         action: SIGNAL_EMIT "highlight,hide" "elm";
+      }
+      program { name: "text_show";
+         signal: "elm,state,text,visible"; source:"elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.text";
+      }
+      program { name: "text_hide";
+         signal: "elm,state,text,hidden"; source:"elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.text";
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible"; source:"elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.swallow.icon";
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden"; source:"elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.icon";
+      }
+      program { name: "end_show";
+         signal: "elm,state,end,visible"; source:"elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.swallow.end";
+      }
+      program { name: "end_hide";
+         signal: "elm,state,end,hidden"; source:"elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.end";
+      }
+      program { name: "units_show";
+         signal: "elm,state,units,visible"; source:"elm";
+         action:  STATE_SET "visible" 0.0;
+         target: "elm.units";
+         after: "limits,children,visible";
+      }
+      program { name: "limits,children,visible";
+         action: SIGNAL_EMIT "limits:limits,visible" "elm";
+      }
+      program { name: "units_hide";
+         signal: "elm,state,units,hidden"; source:"elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.units";
+         after: "limits,children,hide";
+      }
+      program { name: "limits,children,hide";
+         action: SIGNAL_EMIT "limits:limits,hide" "elm";
+      }
+      program { name: "invert_on";
+         signal: "elm,state,inverted,on"; source:"elm";
+         action:  STATE_SET "inverted" 0.0;
+         target: "level";
+         target: "level2";
+      }
+      program { name: "invert_off";
+         signal: "elm,state,inverted,off"; source:"elm";
+         action:  STATE_SET "default" 0.0;
+         target: "level";
+         target: "level2";
+      }
+      program {
+         name:   "go_disabled";
+         signal: "elm,state,disabled"; source:"elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "disabler";
+         after: "disable_text";
+         after: "disable_ind";
+      }
+      program { name: "disable_ind";
+         action: SIGNAL_EMIT "elm.dragable.slider:elm,state,disabled" "elm";
+      }
+      program { name: "disable_text";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.text", "disabled", 0.0);
+
+            get_state(PART:"elm.units", st, 30, vl);
+            if (!strcmp(st, "visible"))
+               set_state(PART:"elm.units", "disabled_visible", 0.0);
+            else
+               set_state(PART:"elm.units", "disabled", 0.0);
+
+            get_state(PART:"level2", st, 30, vl);
+            if (!strcmp(st, "inverted"))
+            {
+               set_state(PART:"level", "disabled_inverted", 0.0);
+               set_state(PART:"level2", "disabled_inverted", 0.0);
+            }
+            else
+            {
+               set_state(PART:"level", "disabled", 0.0);
+               set_state(PART:"level2", "disabled", 0.0);
+            }
+         }
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled"; source:"elm";
+         action: STATE_SET "default" 0.0;
+         target: "disabler";
+         after: "enable_text";
+         after: "enable_ind";
+      }
+      program { name: "enable_ind";
+         action: SIGNAL_EMIT "elm.dragable.slider:elm,state,enabled" "elm";
+      }
+      program { name: "enable_text";
+         script {
+            new st[31];
+            new Float:vl;
+            get_state(PART:"elm.text", st, 30, vl);
+            if (!strcmp(st, "disabled_visible"))
+               set_state(PART:"elm.text", "visible", 0.0);
+            else
+               set_state(PART:"elm.text", "default", 0.0);
+
+            get_state(PART:"elm.units", st, 30, vl);
+            if (!strcmp(st, "disabled_visible"))
+               set_state(PART:"elm.units", "visible", 0.0);
+            else
+               set_state(PART:"elm.units", "default", 0.0);
+
+            get_state(PART:"level2", st, 30, vl);
+            if (!strcmp(st, "disabled_inverted"))
+            {
+               set_state(PART:"level", "inverted", 0.0);
+               set_state(PART:"level2", "inverted", 0.0);
+            }
+            else
+            {
+               set_state(PART:"level", "default", 0.0);
+               set_state(PART:"level2", "default", 0.0);
+            }
+         }
+      }
+   }
+}
+
+group { name: "elm/slider/horizontal/indicator/default";
+   alias: "elm/slider/horizontal/popup/default";
+   images{
+      image: "tooltip_bg.png" COMP;
+      image: "tooltip_arrow.png" COMP;
+      image: "slider_thumb_stroke.png" COMP;
+      image: "slider_thumb_fill.png" COMP;
+   }
+   script {
+      public popup_show = 0;
+      public is_in_focuse = 0;
+      public is_mouse_in = 0;
+      public is_focus = 0;
+      public setcol;
+
+      public set_value_show() {
+         set_int(popup_show, 0);
+      }
+
+      public set_value_hide() {
+         set_int(popup_show, 1);
+      }
+
+      public mouse_down()
+      {
+         if (get_int(popup_show) == 0)
+         {
+            set_state(PART:"progress_balloon", "clicked", 0.0);
+            set_state(PART:"progress_balloon_arrow", "clicked", 0.0);
+            set_state(PART:"elm.indicator", "clicked", 0.0);
+            set_state(PART:"knob_fill", "clicked", 0.0);
+            set_state(PART:"knob", "clicked", 0.0);
+         }
+         set_int(is_in_focuse, 1);
+      }
+      public mouse_up()
+      {
+         set_state(PART:"progress_balloon", "default", 0.0);
+         set_state(PART:"progress_balloon_arrow", "default", 0.0);
+         set_state(PART:"elm.indicator", "default", 0.0);
+         set_state(PART:"knob_fill", "default", 0.0);
+         set_state(PART:"knob", "clicked", 0.0);
+      }
+      public mouse_in_knob()
+      {
+         set_state(PART:"knob", "over", 0.0);
+         set_int(is_mouse_in, 1);
+      }
+      public mouse_out_knob()
+      {
+         set_int(is_mouse_in, 0);
+         if (get_int(is_in_focuse))
+         {
+            set_state(PART:"knob", "clicked", 0.0);
+         }
+         else
+           set_state(PART:"knob", "default", 0.0);
+      }
+   }
+   parts{
+      part { name: "knob_fill";
+         repeat_events: 1;
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "slider_thumb_fill.png";
+            min: 38 38;
+            max: 38 38;
+            align:0.5 0.5;
+            fixed: 1 1;
+            color_class: "open_ux_theme";
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+      }
+      part { name: "knob";
+         repeat_events: 1;
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "slider_thumb_stroke.png";
+            min: 38 38;
+            max: 38 38;
+            fixed: 1 1;
+            color: 255 255 255 255;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "over" 0.0;
+            inherit: "clicked" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "progress_balloon";
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            align: 0.5 1;
+            rel1.to: "pad.text_top.left";
+            rel2.to: "pad.text_bottom.right";
+            fixed: 1 1;
+            image.normal: "tooltip_bg.png";
+            image.border: 6 6 7 7;
+            image.border_scale: 1;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "pad.baloon_arrow_align"; type:SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "knob";
+            rel2{
+               to: "knob";
+               relative: 1 0;
+            }
+            min: 0 2;
+            max: 0 2;
+            fixed: 1 1;
+            align: 0.5 0;
+         }
+      }
+      part { name: "progress_balloon_arrow";
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1 { to: "pad.baloon_arrow_align";
+               relative: 0 1;
+            }
+            rel2.to: "pad.baloon_arrow_align";
+            min: 12 10;
+            max: 12 10;
+            align: 0.5 1;
+            fixed: 1 1;
+            image.normal: "tooltip_arrow.png";
+            image.border: 6 6 7 7;
+            image.border_scale: 1;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "tooltip_arrow.png";
+            visible: 1;
+         }
+      }
+      part { name: "pad.text_top.left"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 11 11;
+            max: 11 11;
+            fixed: 1 1;
+            align: 1 0;
+            rel1.to: "elm.indicator";
+            rel2 { to: "elm.indicator";
+               relative: 0 0;
+            }
+         }
+      }
+      part { name: "pad.text_bottom.right"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 11 11;
+            max: 11 11;
+            fixed: 1 1;
+            align: 0 0;
+            rel1 { to: "elm.indicator";
+               relative: 1 1;
+            }
+            rel2.to: "elm.indicator";
+         }
+      }
+      part { name: "pad.text_align"; type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 6;
+            max: 0 6;
+            fixed: 1 1;
+            align: 0.5 1;
+            rel1 { to: "progress_balloon_arrow";
+               relative: 0.5 0;
+            }
+            rel2 { to: "progress_balloon_arrow";
+               relative: 0.5 0;
+            }
+         }
+      }
+      part { name: "elm.indicator"; type: TEXTBLOCK; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+            rel1.to: "pad.text_align";
+            rel2 { to: "pad.text_align";
+               relative: 0 0;
+            }
+            align: 0.5 1;
+            text {
+               style: "slider_style";
+               min: 1 1;
+               ellipsis: -1;
+            }
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+
+   programs {
+      program { name: "mouse_down_bar";
+         signal: "mouse,down,*"; source:"knob";
+         script {
+             mouse_down();
+         }
+      }
+      program { name: "mouse_up_bar";
+         signal: "mouse,up,*"; source:"knob";
+         script {
+            mouse_up();
+         }
+      }
+      program { name: "popup_show";
+         signal: "popup,show"; source:"elm";
+         script {
+             mouse_down();
+         }
+      }
+      program { name: "popup_hide";
+         signal: "popup,hide"; source:"elm";
+         action: SIGNAL_EMIT "popup,hide,done" "elm";
+      }
+      program { name: "popup_hide2";
+         signal: "popup,hide"; source:"elm";
+         script {
+            mouse_up();
+         }
+      }
+      program { name: "set_val_show";
+         signal: "elm,state,val,show"; source:"elm";
+         script {
+            set_value_show();
+         }
+      }
+      program { name: "set_val_hide";
+         signal: "elm,state,val,hide"; source:"elm";
+         script {
+            set_value_hide();
+         }
+      }
+      program { name: "val_show";
+         signal: "mouse,down,*"; source:"knob";
+         script {
+            mouse_down();
+         }
+      }
+      program { name: "val_hide";
+         signal: "mouse,up,*"; source:"knob";
+         script {
+            mouse_up();
+         }
+      }
+
+
+   }
+}
+
+/*********************************************************************************
+Document: Tizen TV_General Guide_GUI Guideline_v1.0_140508_1.ppt, Page no.96,
+style name: default
+*********************************************************************************/
+group { name: "elm/slider/horizontal/progress";
+   inherit: "elm/slider/horizontal/default";
+   parts{
+      part { name: "level"; type: RECT; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel2 {
+               to_y: "base";
+               to_x: "elm.dragable.slider";
+               relative: 0.5 1.0;
+            }
+            color_class: "open_ux_theme";
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+           color_class: "open_ux_theme";            
+         }
+      }
+      part { name: "button"; type: GROUP; mouse_events: 0;
+         source:"elm/slider/horizontal/indicator/progress";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.dragable.slider";
+            rel2.to: "elm.dragable.slider";
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+  }
+  programs {
+    program { name: "Focus";
+    signal: "elm,action,focus"; source: "elm";
+    action:  STATE_SET "focus" 0.0;
+    target: "level";
+    }
+    program { name: "Unfocus";
+    signal: "elm,action,unfocus"; source: "elm";
+    action:  STATE_SET "default" 0.0;
+    target: "level";
+    }
+  }
+}
+
+group { name: "elm/slider/horizontal/indicator/progress";
+   inherit: "elm/slider/horizontal/indicator/default";
+   alias: "elm/slider/horizontal/popup/progress";
+   parts {
+      part { name: "knob_fill";
+         repeat_events: 1;
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "slider_thumb_fill.png";
+            min: 38 38;
+            max: 38 38;
+            align:0.5 0.5;
+            fixed: 1 1;
+            color: 0 0 0 255;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "knob";
+         repeat_events: 1;
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "slider_thumb_stroke.png";
+            min: 38 38;
+            max: 38 38;
+            fixed: 1 1;
+            color: 255 255 255 255;
+         }
+         description { state: "over" 0.0;
+            inherit: "clicked" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
+         description { state: "focus" 0.0;
+            inherit: "default" 0.0;
+            color_class: "open_ux_theme";
+         }
+         description { state: "clicked" 0.0;
+            inherit: "focus" 0.0;
+            color_class: "open_ux_theme";
+         }
+     }
+
+  }
+  programs {
+    program { name: "Focus";
+       signal: "elm,action,focus"; source: "elm";
+       action:  STATE_SET "focus" 0.0;
+       target: "knob";
+    }
+    program { name: "Unfocus";
+       signal: "elm,action,unfocus"; source: "elm";
+       action:  STATE_SET "default" 0.0;
+       target: "knob";
+    }
+  }
+}
diff --git a/ElmSharp/theme/tv/widgets/spinner.edc b/ElmSharp/theme/tv/widgets/spinner.edc
new file mode 100644 (file)
index 0000000..72a897a
--- /dev/null
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*************************************************************************
+Doc: Tizen TV_General Guide_GUI Guideline_v1.0_140709.ppt page:93
+**************************************************************************/
+
+group { name: "elm/spinner/base/default";
+   alias: "elm/spinner/base/horizontal";
+   parts {
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "access";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            color: 0 0 0 0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            visible: 1;
+         }
+         description { state: "active" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.swallow.inc_button";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 1.0 0.5;
+            min: 64 90;
+            max: 64 90;
+         }
+      }
+      part { name: "elm.swallow.dec_button";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.5;
+            min: 64 90;
+            max: 64 90;
+         }
+      }
+      part { name: "elm.swallow.text_button";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 1;
+            min: 0 146;
+            max: -1 146;
+            rel1 {
+               to_x: "elm.swallow.dec_button";
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               to_x: "elm.swallow.inc_button";
+               relative: 0.0 1.0;
+            }
+         }
+         description { state: "active" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.swallow.entry";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to: "elm.swallow.text_button";
+            rel2.to: "elm.swallow.text_button";
+            min: 0 146;
+            max: -1 146;
+            fixed: 1 1;
+         }
+         description { state: "active" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "disabler";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "entry_active";
+         signal: "elm,state,entry,active";
+         source: "elm";
+         action: STATE_SET "active" 0.0;
+         //target: "elm.swallow.text_button";
+         target: "elm.swallow.entry";
+      }
+      program { name: "entry_inactive";
+         signal: "elm,state,entry,inactive";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         //target: "elm.swallow.text_button";
+         target: "elm.swallow.entry";
+      }
+      program { name: "text_button_active";
+         signal: "elm,state,button,active";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.text_button";
+      }
+      program { name: "text_button_inactive";
+         signal: "elm,state,button,inactive";
+         source: "elm";
+         action: STATE_SET "inactive" 0.0;
+         target: "elm.swallow.text_button";
+      }
+      program { name: "access_activate";
+         signal: "elm,state,access,active";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "access";
+      }
+      program { name: "access_inactivate";
+         signal: "elm,state,access,inactive";
+         source: "elm";
+         action:  STATE_SET "active" 0.0;
+         target: "access";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "disabler";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disabler";
+      }
+   }
+}
+
+group { name: "elm/spinner/base/vertical";
+   parts {
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 146 348;
+            color: 250 250 250 255;
+         }
+      }
+      part { name: "access";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            color: 0 0 0 0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            visible: 1;
+         }
+         description { state: "active" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.swallow.inc_button";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 146 80;
+            max: 146 80;
+         }
+      }
+      part { name: "elm.swallow.dec_button";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            min: 146 80;
+            max: 146 80;
+         }
+      }
+      part { name: "elm.swallow.text_button";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 1;
+            min: 0 146;
+            max: -1 146;
+         }
+         description { state: "inactive" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.swallow.entry";
+         type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to: "elm.swallow.text_button";
+            rel2.to: "elm.swallow.text_button";
+            min: 0 146;
+            max: -1 146;
+            fixed: 1 1;
+         }
+         description { state: "active" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "disabler";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+   }
+   programs {
+      program { name: "entry_active";
+         signal: "elm,state,entry,active";
+         source: "elm";
+         action: STATE_SET "active" 0.0;
+         target: "elm.swallow.entry";
+      }
+      program { name: "entry_inactive";
+         signal: "elm,state,entry,inactive";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.entry";
+      }
+      program { name: "text_button_active";
+         signal: "elm,state,button,active";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.text_button";
+      }
+      program { name: "text_button_inactive";
+         signal: "elm,state,button,inactive";
+         source: "elm";
+         action: STATE_SET "inactive" 0.0;
+         target: "elm.swallow.text_button";
+      }
+      program { name: "access_activate";
+         signal: "elm,state,access,active";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "access";
+      }
+      program { name: "access_inactivate";
+         signal: "elm,state,access,inactive";
+         source: "elm";
+         action:  STATE_SET "active" 0.0;
+         target: "access";
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "disabler";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disabler";
+      }
+   }
+}
+
+group { name: "elm/spinner/base/vertical_date_picker";
+   inherit: "elm/spinner/base/vertical";
+   parts {
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 158 262;
+            color: 250 250 250 255;
+         }
+      }
+   }
+}
+
diff --git a/ElmSharp/theme/tv/widgets/tooltip.edc b/ElmSharp/theme/tv/widgets/tooltip.edc
new file mode 100644 (file)
index 0000000..3a30e64
--- /dev/null
@@ -0,0 +1,292 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *      list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+group { name: "elm/label/base/tooltip";
+   styles {
+      style { name: "tooltip_style";
+         base: "font=Sans font_size=22 align=left color=#1d1d1d left_margin=21 right_margin=21 wrap=word";
+         tag:  "br" "\n";
+         tag:  "hilight" "+ font_weight=Bold";
+         tag:  "b" "+ font_weight=Bold";
+         tag:  "tab" "\t";
+      }
+   }
+   parts {
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            text {
+               style: "tooltip_style";
+               min: 1 1;
+               ellipsis: -1;
+            }
+         }
+      }
+   }
+}
+
+group { name: "elm/tooltip/base/default";
+   min: 40 40;
+   data {
+      item: "pad_x" "20";
+      item: "pad_y" "20";
+      item: "pad_border_x" "10";
+      item: "pad_border_y" "10";
+      item: "hide_timeout" "0.35"; /**< tooltip is hidden after this amount, keep in sync with hide animations */
+   }
+   images {
+      image: "tooltip_bg.png" COMP;
+      image: "tooltip-edge-bottom-tip.png" COMP;
+      image: "tooltip-edge-top-tip.png" COMP;
+   }
+   script {
+      show_edge_top(Float:val) {
+         set_state(PART:"clipper-edge-top", "visible", 0.0);
+         set_drag(PART:"edge-drag-top", val, 0.0);
+      }
+      show_edge_bottom(Float:val) {
+         set_state(PART:"clipper-edge-bottom", "visible", 0.0);
+         set_drag(PART:"edge-drag-bottom", val, 0.0);
+      }
+
+      public message(Msg_Type:type, id, ...) {
+         if ((type == MSG_FLOAT_SET) && (id == 1)) {
+            new Float:x, Float:y;
+
+            x = getfarg(2);
+            y = getfarg(3);
+
+            if (y < 0.0)      show_edge_top(x);
+            else if (y > 1.0) show_edge_bottom(x);
+         }
+      }
+   }
+   parts {
+      part { name: "clipper"; type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+            rel1 { to: "pop"; offset: -15 -15; }
+            rel2 { to: "pop"; offset: 15 15; }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "pop"; mouse_events: 0;
+         clip_to: "clipper";
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 60 60;
+            rel1 {
+               to: "elm.swallow.content";
+               offset: -5 -4;
+            }
+            rel2 {
+               to: "elm.swallow.content";
+               offset: 4 5;
+            }
+            color: 255 255 255 230;
+            image {
+               normal: "tooltip_bg.png";
+               border: 5 6 6 7;
+            }
+         }
+      }
+
+      #define TT_EDGE_HORIZ(name_, ry, ay, oy)                     \
+      part { name: "clipper-edge-"name_;                           \
+         type: RECT;                                               \
+         clip_to: "clipper";                                       \
+         description { state: "default" 0.0;                       \
+            color: 255 255 255 0;                                  \
+            visible: 0;                                            \
+            min: 14 14;                                            \
+            align: 0.5 ay;                                         \
+            fixed: 1 1;                                            \
+            rel1 {                                                 \
+               relative: 0.0 ry;                                   \
+               offset: 0 oy;                                       \
+               to: "elm.swallow.content";                          \
+            }                                                      \
+            rel2 {                                                 \
+               relative: 1.0 ry;                                   \
+               offset: 0 oy;                                       \
+               to: "elm.swallow.content";                          \
+            }                                                      \
+         }                                                         \
+         description { state: "visible" 0.0;                       \
+            inherit: "default" 0.0;                                \
+            color: 255 255 255 255;                                \
+            visible: 1;                                            \
+         }                                                         \
+      }                                                            \
+      part { name: "edge-area-"name_;                              \
+         type: RECT;                                               \
+         mouse_events: 0;                                          \
+         clip_to: "clipper-edge-"name_;                            \
+         description { state: "default" 0.0;                       \
+            color: 0 0 0 0;                                        \
+            min: 14 14;                                            \
+            align: 0.5 ay;                                         \
+            fixed: 1 1;                                            \
+            rel1 {                                                 \
+               relative: 0.0 ry;                                   \
+               offset: 0 oy;                                       \
+               to: "elm.swallow.content";                          \
+            }                                                      \
+            rel2 {                                                 \
+               relative: 1.0 ry;                                   \
+               offset: 0 oy;                                       \
+               to: "elm.swallow.content";                          \
+            }                                                      \
+         }                                                         \
+      }                                                            \
+      part { name: "edge-drag-"name_;                              \
+         type: RECT;                                               \
+         mouse_events: 0;                                          \
+         clip_to: "clipper-edge-"name_;                            \
+         dragable {                                                \
+            x: 1 1 0;                                              \
+            y: 0 0 0;                                              \
+            confine: "edge-area-"name_;                            \
+         }                                                         \
+         description { state: "default" 0.0;                       \
+            color: 0 0 0 0;                                        \
+            min: 14 14;                                            \
+            rel1.to: "edge-area-"name_;                            \
+            rel2.to: "edge-area-"name_;                            \
+         }                                                         \
+      }                                                            \
+      part { name: "edge-img-"name_;                               \
+         type: IMAGE;                                              \
+         mouse_events: 0;                                          \
+         clip_to: "clipper-edge-"name_;                            \
+         description { state: "default" 0.0;                       \
+            min: 14 14;                                            \
+            max: 14 14;                                            \
+            align: 0.5 ay;                                         \
+            fixed: 1 1;                                            \
+            rel1.to: "edge-drag-"name_;                            \
+            rel2.to: "edge-drag-"name_;                            \
+            image.normal: "tooltip-edge-"name_"-tip.png";          \
+         }                                                         \
+      }
+      TT_EDGE_HORIZ("top", 0, 1, -5);
+      TT_EDGE_HORIZ("bottom", 1, 0, 2);
+      #undef TT_EDGE_HORIZ
+
+      part { name: "clipper_content";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+            rel1.to: "elm.swallow.content";
+            rel1.offset: -64 -64;
+            rel2.to: "elm.swallow.content";
+            rel2.offset: 63 63;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW;//this bring the tooltip up and down.
+         clip_to: "clipper_content";
+         description { state: "default" 0.0;
+            rel1.offset: 10 20;
+            rel2.offset: -10 -20;
+         }
+      }
+      programs {
+         program {
+            name: "show0";
+            signal: "elm,action,show";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "hide0";
+            target: "hide2";
+            target: "hide3";
+            after: "show1";
+            after: "show2";
+         }
+         program {
+            name: "show1";
+            action: STATE_SET "visible" 0.0;
+            transition: LINEAR 0.15;
+            target: "clipper";
+         }
+         program {
+            name: "show2";
+            in: 0.1 0.0;
+            action: STATE_SET "visible" 0.0;
+            transition: LINEAR 0.15;
+            target: "clipper_content";
+         }
+
+         program {
+            name: "hide0";
+            signal: "elm,action,hide";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "show0";
+            target: "show1";
+            target: "show2";
+            after: "hide2";
+            after: "hide3";
+         }
+         program {
+            name: "hide2";
+            action: STATE_SET "default" 0.0;
+            transition: LINEAR 0.1;
+            target: "clipper_content";
+         }
+         program {
+            name: "hide3";
+            in: 0.1 0.0;
+            action: STATE_SET "default" 0.0;
+            transition: LINEAR 0.1;
+            target: "clipper";
+         }
+      }
+   }
+}
+group { name: "elm/tooltip/base/transparent";
+   data {
+      item: "pad_x" "10";
+      item: "pad_y" "10";
+      item: "transparent" "enabled";
+   }
+   parts {
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         mouse_events:   0;
+         scale: 1;
+         description { state: "default" 0.0; }
+      }
+   }
+}