Change UI of language option view 98/168698/6
authorzhangzg <zg84.zhang@samsung.com>
Tue, 30 Jan 2018 07:18:58 +0000 (15:18 +0800)
committerzhangzg <zg84.zhang@samsung.com>
Tue, 30 Jan 2018 10:30:31 +0000 (18:30 +0800)
Change-Id: I138c46b0fa35a645f843a3f7e3c825a64c5a59c5

edje/tv/images/ic_settings_list_check.png [new file with mode: 0644]
res/tv/edje/popup_keyboard.edc
src/ise-stt-option.cpp

diff --git a/edje/tv/images/ic_settings_list_check.png b/edje/tv/images/ic_settings_list_check.png
new file mode 100644 (file)
index 0000000..235e24e
Binary files /dev/null and b/edje/tv/images/ic_settings_list_check.png differ
index 7b8b88e..0df6e95 100644 (file)
@@ -58,70 +58,452 @@ collections {
 #define COLOR_BG      255 255 255 255
 
 #define GENLIST_PROGRAM_DEFAULT( TARGET ) \
-             program { "default"; \
-                signal: "elm,state,default"; \
-                source: "elm"; \
-                action: STATE_SET "default"; \
-                TARGET \
-             } \
+          program { "default"; \
+             signal: "elm,state,default"; \
+             source: "elm"; \
+             action: STATE_SET "default"; \
+             TARGET \
+          } \
 
 #define GENLIST_PART_EVENT \
-             rect { "event"; nomouse; repeat; scale; \
-                desc { "default"; \
-                   rel.to: "base"; \
-                   color: 0 0 0 0; \
-                } \
-                desc { "disabled"; \
-                   inherit: "default"; \
-                   hid; \
-                } \
-             }
+          rect { "event"; nomouse; repeat; scale; \
+             desc { "default"; \
+                rel.to: "base"; \
+                color: 0 0 0 0; \
+             } \
+             desc { "disabled"; \
+                inherit: "default"; \
+                hid; \
+             } \
+          }
 
 #define GENLIST_PROGRAM_EVENT \
-             program { "enabled"; \
-                signal: "elm,state,enabled"; \
-                source: "elm"; \
-                action: STATE_SET "default"; \
-                target: "event"; \
-             } \
-             program { "disabled"; \
-                signal: "elm,state,disabled"; \
-                source: "elm"; \
-                action: STATE_SET "disabled"; \
-                target: "event"; \
-             } \
-             program { "enable_event_pass"; \
-                signal: "elm,event,pass,enabled"; \
-                source: "elm"; \
-                script { \
-                   set_mouse_events(PART:"event", 0); \
+          program { "enabled"; \
+             signal: "elm,state,enabled"; \
+             source: "elm"; \
+             action: STATE_SET "default"; \
+             target: "event"; \
+          } \
+          program { "disabled"; \
+             signal: "elm,state,disabled"; \
+             source: "elm"; \
+             action: STATE_SET "disabled"; \
+             target: "event"; \
+          } \
+          program { "enable_event_pass"; \
+             signal: "elm,event,pass,enabled"; \
+             source: "elm"; \
+             script { \
+                set_mouse_events(PART:"event", 0); \
+             } \
+          } \
+          program { "disable_event_pass"; \
+             signal: "elm,event,pass,disabled"; \
+             source:"elm"; \
+             script { \
+                set_mouse_events(PART:"event", 1); \
+             } \
+          } \
+          program { "enable_event_repeat"; \
+             signal: "elm,event,repeat,enabled"; \
+             source: "elm"; \
+             script { \
+                set_repeat_events(PART:"event", 1); \
+             } \
+          } \
+          program { "disable_event_repeat"; \
+             signal: "elm,event,repeat,disabled"; \
+             source:"elm"; \
+             script { \
+                set_repeat_events(PART:"event", 0); \
+             } \
+          }
+
+#define PARTS_FRONT \
+          spacer { "base"; scale; \
+             desc { "default"; \
+                min: 0 114; \
+             } \
+          } \
+          spacer { "bg_base"; scale; \
+             desc { "default"; \
+                min: 0 114; \
+             } \
+             desc { "focused"; \
+                inherit: "default"; \
+                min: 0 116; \
+             } \
+          } \
+          spacer { "left_top_out"; nomouse; scale; \
+             desc { "default"; \
+                rel1.to: "bg_base"; \
+                rel2 { \
+                   to: "bg_base"; \
+                   relative: 0.0 0.0; \
                 } \
+                align: 1.0 1.0; \
+                min: 28 28; \
+                max: 28 28; \
+                fixed: 1 1; \
              } \
-             program { "disable_event_pass"; \
-                signal: "elm,event,pass,disabled"; \
-                source:"elm"; \
-                script { \
-                   set_mouse_events(PART:"event", 1); \
+          } \
+          spacer { "right_bottom_out"; nomouse; scale; \
+             desc { "default"; \
+                rel1.to: "bg_base"; \
+                rel1 { \
+                   to: "bg_base"; \
+                   relative: 1.0 1.0; \
                 } \
+                align: 0.0 0.0; \
+                min: 28 28; \
+                max: 28 28; \
+                fixed: 1 1; \
+             } \
+          } \
+          image { "outline_shadow"; scale; \
+             desc { "default"; \
+                rel1.to: "left_top_out"; \
+                rel2.to: "right_bottom_out"; \
+                image.normal: "list_focused_shadow.#.png"; \
+                color: 0 0 0 0; \
+                hid; \
+             } \
+             desc { "focused"; \
+                inherit: "default"; \
+                rel1.to: "left_top_out"; \
+                rel2.to: "right_bottom_out"; \
+                color: 0 0 0 255; \
+                vis; \
+             } \
+          } \
+          image { "bg"; scale; \
+             desc { "default"; \
+                rel.to: "bg_base"; \
+                image.normal: "bg_list.#.png"; \
+                color_class: "genlist_item/default/bg"; \
+             } \
+             desc { "focused"; \
+                inherit: "default"; \
+                color_class: "genlist_item/default/bg_focused"; \
+             } \
+             desc { "pressed"; \
+                inherit: "focused"; \
+                color_class: "genlist_item/default/bg_pressed"; \
+             } \
+             desc { "disabled"; \
+                inherit: "default"; \
+                color_class: "genlist_item/default/bg_disabled"; \
+             } \
+          } \
+          spacer { "elm.padding.left"; scale; \
+             desc { "default"; \
+                fixed: 1 0; \
+                min: 42 0; \
+                align: 0.0 0.5; \
+                rel1 { to: "base"; relative: 0.0 0.0; } \
+                rel2 { to: "base"; relative: 0.0 1.0; } \
+             } \
+          } \
+          spacer { "elm.padding.right"; scale;\
+             desc { "default"; \
+                fixed: 1 0; \
+                min: 42 0; \
+                align: 1.0 0.5; \
+                rel1 { to: "base"; relative: 1.0 0.0; } \
+                rel2 { to: "base"; relative: 1.0 1.0; } \
+             } \
+          } \
+          spacer { "elm.padding.top"; scale; \
+             desc { "default"; \
+                fixed: 0 1; \
+                min: 0 44; \
+                max: -1 44; \
+                align: 0.5 0.0; \
+                rel1 { to: "base"; relative: 0.0 0.0; } \
+                rel2 { to: "base"; relative: 1.0 0.0; } \
+             } \
+          } \
+          spacer { "elm.padding.bottom"; scale; \
+             desc { "default"; \
+                fixed: 0 1; \
+                min: 0 40; \
+                max: -1 40; \
+                align: 0.5 1.0; \
+                rel1 { to: "base"; relative: 0.0 1.0; } \
+                rel2 { to: "base"; relative: 1.0 1.0; } \
+             } \
+          } \
+          swallow { "elm.swallow.icon"; scale; \
+             desc { "default"; \
+                fixed: 1 0; \
+                align: 0.0 0.5; \
+                rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1.0 1.0; } \
+                rel2 { to_x: "elm.padding.left"; to_y: "elm.padding.bottom"; relative: 1.0 0.0; } \
+             } \
+          } \
+          spacer { "elm.padding.B.A"; scale; \
+             desc { "default"; \
+                fixed: 1 0; \
+                min: 0 0; \
+                align: 0.0 0.5; \
+                rel1 { to_x: "elm.swallow.icon"; to_y: "elm.padding.top"; relative: 1.0 1.0; } \
+                rel2 { to_x: "elm.swallow.icon"; to_y: "elm.padding.bottom"; relative: 1.0 0.0; } \
              } \
-             program { "enable_event_repeat"; \
-                signal: "elm,event,repeat,enabled"; \
-                source: "elm"; \
-                script { \
-                   set_repeat_events(PART:"event", 1); \
+             desc { "icon_visible"; inherit: "default"; \
+                min: 20 0; \
+             } \
+          } \
+
+#define PARTS_BACK \
+          swallow { "elm.swallow.end"; scale; \
+             desc { "default"; \
+                fixed: 1 1; \
+                min: 32 32; \
+                max: 32 32; \
+                align: 1.0 0.5; \
+                rel1 { to_x: "elm.padding.right"; to_y: "elm.padding.top"; relative: 0.0 1.0; } \
+                rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; } \
+             } \
+          } \
+          spacer { "elm.padding.D.C"; scale; \
+             desc { "default"; \
+                fixed: 1 0; \
+                min: 0 0; \
+                align: 1.0 0.5; \
+                rel1 { to_x: "elm.swallow.end"; to_y: "elm.padding.top"; relative: 0.0 1.0; } \
+                rel2 { to_x: "elm.swallow.end"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; } \
+             } \
+             desc { "icon_visible"; inherit: "default"; \
+                min: 20 0; \
+             } \
+          } \
+          textblock { "elm.text"; scale; \
+             desc { "default"; \
+                fixed: 1 0; \
+                min: 0 32; \
+                align: 0.5 0.5; \
+                rel1 { to_x: "elm.padding.B.A"; to_y: "elm.padding.top"; relative: 1.0 1.0; } \
+                rel2 { to_x: "elm.padding.D.C"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; } \
+                text.style: "list_default_text"; \
+                text.min: 0 1; \
+             } \
+             desc { "focused"; \
+                inherit: "default"; \
+                text.style: "list_default_text_focused"; \
+             } \
+             desc { "pressed"; \
+                inherit: "default"; \
+                text.style: "list_default_text_pressed"; \
+             } \
+             desc { "disabled"; \
+                inherit: "default"; \
+                text.style: "list_default_text_disabled"; \
+             } \
+          } \
+          image { "bottom_line"; scale; \
+             desc { "default"; \
+                fixed: 0 1; \
+                min: 0 1; \
+                max: -1 1; \
+                align: 0.5 1.0; \
+                rel1 { to: "base"; relative: 0.0 1.0; } \
+                rel2 { to: "base"; relative: 1.0 1.0; } \
+                image.normal: "list_line.#.png"; \
+                color: 255 255 255 255; \
+                color_class: "genlist_item/default/bottom_line"; \
+             } \
+             desc { "focused" \
+                rel1 { to: "bg_base"; relative: 0.0 1.0; } \
+                rel2 { to: "bg_base"; relative: 1.0 1.0; } \
+             } \
+          } \
+
+#define GREATE_CHECK_PART( vis ) \
+          image { "elm.swallow.end.image"; scale; \
+             desc { "default"; \
+                visible: 0; \
+                fixed: 1 1; \
+                min: 32 32; \
+                max: 32 32; \
+                align: 1.0 0.5; \
+                rel1 { to_x: "elm.padding.right"; to_y: "elm.padding.top"; relative: 0.0 1.0; } \
+                rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; } \
+             } \
+             desc { "focused"; \
+                visible: vis; \
+                fixed: 1 1; \
+                min: 32 32; \
+                max: 32 32; \
+                align: 1.0 0.5; \
+                rel1 { to_x: "elm.padding.right"; to_y: "elm.padding.top"; relative: 0.0 1.0; } \
+                rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; } \
+                image.normal: "ic_settings_list_check.png"; \
+             } \
+          } \
+
+#define IMAGE_LOAD \
+          images { \
+             image: "bg_list.#.png" COMP; \
+             image: "list_focused_shadow.#.png" COMP; \
+             image: "list_line.#.png" COMP; \
+             image: "ic_settings_list_check.png" COMP; \
+          } \
+
+#define SCRIPT_LOAD \
+          script { \
+             public is_focused; \
+             public is_disabled; \
+             public is_pressed; \
+             public is_vis; \
+          } \
+
+#define PROGRAM_LOAD \
+        programs { \
+          program { "play_sound"; \
+             signal: "elm,state,clicked"; \
+             source: "elm"; \
+             script { \
+                run_program(PROGRAM:"touch_sound"); \
+             } \
+          } \
+          program { "touch_sound"; \
+             action: RUN_PLUGIN "touch_sound"; \
+          } \
+          program { \
+             signal: "elm,state,elm.swallow.icon,visible"; \
+             source: "elm"; \
+             action: STATE_SET "icon_visible"; \
+             target: "elm.padding.B.A"; \
+          } \
+          program { \
+             signal: "elm,state,elm.swallow.icon,hidden"; \
+             source: "elm"; \
+             action: STATE_SET "default"; \
+             target: "elm.padding.B.A"; \
+          } \
+          program { \
+             signal: "elm,state,elm.swallow.end,visible"; \
+             source: "elm"; \
+             action: STATE_SET "icon_visible"; \
+             target: "elm.padding.D.C"; \
+          } \
+          program { \
+             signal: "elm,state,elm.swallow.end,hidden"; \
+             source: "elm"; \
+             action: STATE_SET "default"; \
+             target: "elm.padding.D.C"; \
+          } \
+          GENLIST_PROGRAM_DEFAULT( \
+             target: "elm.padding.B.A"; \
+             target: "elm.padding.D.C"; \
+             target: "bg_base"; \
+             target: "bg"; \
+             target: "outline_shadow"; \
+             target: "elm.text"; \
+             target: "elm.swallow.end.image"; \
+             target: "bottom_line"; \
+             after: "script_init"; \
+          ) \
+          GENLIST_PROGRAM_EVENT; \
+          program { "script_init"; \
+             script { \
+                set_int(is_focused, 0); \
+                set_int(is_disabled, 0); \
+                set_int(is_pressed, 0); \
+             } \
+          } \
+          program { "pressed"; \
+             signal: "elm,state,selected"; \
+             source: "elm"; \
+             script { \
+                set_int(is_pressed, 1); \
+                set_state(PART:"bg", "pressed", 0.0); \
+                set_state(PART:"elm.text", "pressed", 0.0); \
+             } \
+          } \
+          program { "unpressed"; \
+             signal: "elm,state,unselected"; \
+             source: "elm"; \
+             script { \
+                set_int(is_pressed, 0); \
+                if (get_int(is_focused)) { \
+                   set_state(PART:"bg", "focused", 0.0); \
+                   set_state(PART:"elm.text", "focused", 0.0); \
+                } \
+                else { \
+                   set_state(PART:"bg", "default", 0.0); \
+                   set_state(PART:"elm.text", "default", 0.0); \
                 } \
              } \
-             program { "disable_event_repeat"; \
-                signal: "elm,event,repeat,disabled"; \
-                source:"elm"; \
-                script { \
-                   set_repeat_events(PART:"event", 0); \
+          } \
+          program { "on_enabled"; \
+             signal: "elm,state,enabled"; \
+             source: "elm"; \
+             action: STATE_SET "default"; \
+             script { \
+                set_int(is_disabled, 0); \
+                set_state(PART:"bg", "default", 0.0); \
+                set_state(PART:"elm.text", "default", 0.0); \
+             } \
+          } \
+          program { "on_disabled"; \
+             signal: "elm,state,disabled"; \
+             source: "elm"; \
+             action: STATE_SET "disabled"; \
+             target: "bg"; \
+             target: "elm.text"; \
+             script { \
+                set_int(is_disabled, 1); \
+                set_state(PART:"bg", "disabled", 0.0); \
+                set_state(PART:"elm.text", "disabled", 0.0); \
+             } \
+          } \
+          program { "focused"; \
+             signal: "elm,state,focused"; \
+             source: "elm"; \
+             script { \
+                set_int(is_focused, 1); \
+                if (get_int(is_pressed) == 0) { \
+                   set_state(PART:"bg", "focused", 0.0); \
+                   set_state(PART:"elm.text", "focused", 0.0); \
+                   set_state(PART:"elm.swallow.end.image", "focused", 0.0); \
+                   set_state(PART:"bottom_line", "focused", 0.0); \
                 } \
-             }
+                run_program(PROGRAM:"focus_anim"); \
+             } \
+          } \
+          program { "focus_anim"; \
+             action: STATE_SET "focused"; \
+             target: "bg_base"; \
+             target: "outline_shadow"; \
+             transition: EASE_IN1(0.167); \
+          } \
+          program { "unfocused"; \
+             signal: "elm,state,unfocused"; \
+             source: "elm"; \
+             action: STATE_SET "default"; \
+             script { \
+                set_int(is_focused, 0); \
+                if (get_int(is_pressed) == 0) { \
+                  set_state(PART:"bg", "default", 0.0); \
+                  set_state(PART:"elm.text", "default", 0.0); \
+                  set_state(PART:"elm.swallow.end.image", "default", 0.0); \
+                  set_state(PART:"bottom_line", "default", 0.0); \
+                } \
+                run_program(PROGRAM:"unfocus_anim"); \
+             } \
+          } \
+          program { "unfocus_anim"; \
+             action: STATE_SET "default"; \
+             target: "bg_base"; \
+             target: "outline_shadow"; \
+             transition: EASE_IN2(0.167); \
+          } \
+        } \
+
 #define EASE_IN1(duration) CUBIC_BEZIER (duration) 0.16 0.02 0.0 0.33
 #define EASE_IN2(duration) CUBIC_BEZIER (duration) 0.33 0.33 0.67 0.16
 
-
     group { name: "keyboard";
        images {
            image: "bg_list.#.png" COMP;
@@ -344,380 +726,121 @@ collections {
        }
     }
 
-    group { "elm/genlist/item/cus_style/default";
-       data.item: "texts" "elm.text";
-       data.item: "contents" "elm.swallow.icon elm.swallow.end";
-       data.item: "focus_highlight" "on";
-       data.item: "focusraise" "on";
-
-       images {
-           image: "bg_list.#.png" COMP;
-           image: "list_focused_shadow.#.png" COMP;
-           image: "list_line.#.png" COMP;
-       }
-
-       script {
-           public is_focused;
-           public is_disabled;
-           public is_pressed;
-       }
-
+    group { name: "language_setting";
+       inherit: "keyboard";
        parts {
-          // base spacer for item min height
-          spacer { "base"; scale;
-             desc { "default";
-                min: 0 114;//GENLIST_ITEM_1LINE_HEIGHT;
-             }
-          }
-          spacer { "bg_base"; scale;
-             desc { "default";
-                min: 0 114;//GENLIST_ITEM_1LINE_HEIGHT;
-             }
-             desc { "focused";
-                inherit: "default";
-                min: 0 116;//GENLIST_ITEM_1LINE_HEIGHT_FOCUSED;
-             }
-          }
-          spacer { "left_top_out"; nomouse; scale;
-             desc { "default";
-                rel1.to: "bg_base";
-                rel2 {
-                   to: "bg_base";
+          part { name: "part.popup";
+             type: SWALLOW;
+             scale: 1;
+             description { state: "default" 0.0;
+                min: 860 932+80;
+                max: 860 932+80;
+                fixed:1 1;
+                align: 0.5 0.5;
+                rel1 {
                    relative: 0.0 0.0;
+                   to: "bg";
                 }
-                align: 1.0 1.0;
-                min: 28 28;
-                max: 28 28;
-                fixed: 1 1;
-             }
-          }
-          spacer { "right_bottom_out"; nomouse; scale;
-             desc { "default";
-                rel1.to: "bg_base";
-                rel1 {
-                   to: "bg_base";
+
+                rel2 {
                    relative: 1.0 1.0;
+                   to: "bg";
                 }
-                align: 0.0 0.0;
-                min: 28 28;
-                max: 28 28;
-                fixed: 1 1;
-             }
-          }
-          image { "outline_shadow"; scale;
-             desc { "default";
-                rel1.to: "left_top_out";
-                rel2.to: "right_bottom_out";
-                image.normal: "list_focused_shadow.#.png";
-                color: 0 0 0 0;
-                hid;
-             }
-             desc { "focused";
-                inherit: "default";
-                rel1.to: "left_top_out";
-                rel2.to: "right_bottom_out";
-                color: 0 0 0 255;
-                vis;
              }
           }
-          image { "bg"; scale;
-             desc { "default";
-                rel.to: "bg_base";
-                color: 255 255 255 255;
-                image.normal: "bg_list.#.png";
-                color_class: "genlist_item/default/bg";
-             }
-             desc { "focused";
-                inherit: "default";
-                color_class: "genlist_item/default/bg_focused";
-             }
-             desc { "pressed";
-                inherit: "focused";
-                color_class: "genlist_item/default/bg_pressed";
-             }
-             desc { "disabled";
-                inherit: "default";
-                color_class: "genlist_item/default/bg_disabled";
-             }
-          }
-          // left outside padding
-          spacer { "elm.padding.left"; scale;
-             desc { "default";
-                fixed: 1 0;
-                min: 42 0;
-                align: 0.0 0.5;
-                rel1 { to: "base"; relative: 0.0 0.0; }
-                rel2 { to: "base"; relative: 0.0 1.0; }
-             }
-          }
-          // right outside padding
-          spacer { "elm.padding.right"; scale;
-             desc { "default";
-                fixed: 1 0;
-                min: 42 0;
-                align: 1.0 0.5;
-                rel1 { to: "base"; relative: 1.0 0.0; }
-                rel2 { to: "base"; relative: 1.0 1.0; }
-             }
-          }
-          // top outside padding
-          spacer { "elm.padding.top"; scale;
-             desc { "default";
-                fixed: 0 1;
-                min: 0 44;
-                max: -1 44;
-                align: 0.5 0.0;
-                rel1 { to: "base"; relative: 0.0 0.0; }
-                rel2 { to: "base"; relative: 1.0 0.0; }
-             }
-          }
-          // bottom outside padding
-          spacer { "elm.padding.bottom"; scale;
-             desc { "default";
-                fixed: 0 1;
-                min: 0 40;
-                max: -1 40;
-                align: 0.5 1.0;
-                rel1 { to: "base"; relative: 0.0 1.0; }
-                rel2 { to: "base"; relative: 1.0 1.0; }
-             }
-          }
-          // left swallow (Type B)
-          swallow { "elm.swallow.icon"; scale;
-             desc { "default";
-                fixed: 1 0;
-                align: 0.0 0.5;
-                rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1.0 1.0; }
-                rel2 { to_x: "elm.padding.left"; to_y: "elm.padding.bottom"; relative: 1.0 0.0; }
-             }
-          }
-          // padding between Type B & Type A
-          spacer { "elm.padding.B.A"; scale;
-             desc { "default";
-                fixed: 1 0;
-                min: 0 0;
-                align: 0.0 0.5;
-                rel1 { to_x: "elm.swallow.icon"; to_y: "elm.padding.top"; relative: 1.0 1.0; }
-                rel2 { to_x: "elm.swallow.icon"; to_y: "elm.padding.bottom"; relative: 1.0 0.0; }
-             }
-             desc { "icon_visible"; inherit: "default";
-                min: 20 0;
-             }
-          }
-          // right swallow (Type C)
-          swallow { "elm.swallow.end"; scale;
-             desc { "default";
-                fixed: 1 0;
-                align: 1.0 0.5;
-                rel1 { to_x: "elm.padding.right"; to_y: "elm.padding.top"; relative: 0.0 1.0; }
-                rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; }
-             }
-          }
-          // padding between Type D & Type C
-          spacer { "elm.padding.D.C"; scale;
-             desc { "default";
-                fixed: 1 0;
-                min: 0 0;
-                align: 1.0 0.5;
-                rel1 { to_x: "elm.swallow.end"; to_y: "elm.padding.top"; relative: 0.0 1.0; }
-                rel2 { to_x: "elm.swallow.end"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; }
-             }
-             desc { "icon_visible"; inherit: "default";
-                min: 20 0;
-             }
-          }
-          // main text part
-          textblock { "elm.text"; scale;
-             desc { "default";
-                fixed: 1 0;
-                min: 0 32;
+          part { name: "bg_popup";
+             type: SPACER;
+             scale: 1;
+             description { state: "default" 0.0;
+                min: 860 932+70;
+                max: 860 932+70;
+                fixed:1 1;
                 align: 0.5 0.5;
-                rel1 { to_x: "elm.padding.B.A"; to_y: "elm.padding.top"; relative: 1.0 1.0; }
-                rel2 { to_x: "elm.padding.D.C"; to_y: "elm.padding.bottom"; relative: 0.0 0.0; }
-                text.style: "list_default_text";
-                text.min: 0 1;
-             }
-             desc { "focused";
-                inherit: "default";
-                text.style: "list_default_text_focused";
-             }
-             desc { "pressed";
-                inherit: "default";
-                text.style: "list_default_text_pressed";
-             }
-             desc { "disabled";
-                inherit: "default";
-                text.style: "list_default_text_disabled";
-             }
-          }
-          // bottom outside padding
-          image { "bottom_line"; scale;
-             desc { "default";
-                fixed: 0 1;
-                min: 0 1;
-                max: -1 1;
-                align: 0.5 1.0;
-                rel1 { to: "base"; relative: 0.0 1.0; }
-                rel2 { to: "base"; relative: 1.0 1.0; }
-                image.normal: "list_line.#.png";
-                color: 255 255 255 255;
-                color_class: "genlist_item/default/bottom_line";
-             }
-             desc { "focused"
-                rel1 { to: "bg_base"; relative: 0.0 1.0; }
-                rel2 { to: "bg_base"; relative: 1.0 1.0; }
-             }
-          }
-          GENLIST_PART_EVENT
-       }
-       programs {
-          // play sound problem by click event
-          program { "play_sound";
-             signal: "elm,state,clicked";
-             source: "elm";
-             script {
-                run_program(PROGRAM:"touch_sound");
-             }
-          }
-          program { "touch_sound";
-             action: RUN_PLUGIN "touch_sound";
-          }
-          // band gradient enabled
-          // swallow icon is visible
-          program {
-             signal: "elm,state,elm.swallow.icon,visible";
-             source: "elm";
-             action: STATE_SET "icon_visible";
-             target: "elm.padding.B.A";
-          }
-          program {
-             signal: "elm,state,elm.swallow.icon,hidden";
-             source: "elm";
-             action: STATE_SET "default";
-             target: "elm.padding.B.A";
-          }
-          // swallow end is visible
-          program {
-             signal: "elm,state,elm.swallow.end,visible";
-             source: "elm";
-             action: STATE_SET "icon_visible";
-             target: "elm.padding.D.C";
-          }
-          program {
-             signal: "elm,state,elm.swallow.end,hidden";
-             source: "elm";
-             action: STATE_SET "default";
-             target: "elm.padding.D.C";
-          }
-          // set default state for caching the style
-          GENLIST_PROGRAM_DEFAULT(
-             target: "elm.padding.B.A";
-             target: "elm.padding.D.C";
-             target: "bg_base";
-             target: "bg";
-             target: "outline_shadow";
-             target: "elm.text";
-             target: "bottom_line";
-             after: "script_init";
-          )
-          GENLIST_PROGRAM_EVENT;
-          program { "script_init";
-             script {
-                set_int(is_focused, 0);
-                set_int(is_disabled, 0);
-                set_int(is_pressed, 0);
-             }
-          }
-          // mouse pressed
-          program { "pressed";
-             signal: "elm,state,selected";
-             source: "elm";
-             script {
-                set_int(is_pressed, 1);
-                set_state(PART:"bg", "pressed", 0.0);
-                set_state(PART:"elm.text", "pressed", 0.0);
-             }
-          }
-          // mouse unpressed
-          program { "unpressed";
-             signal: "elm,state,unselected";
-             source: "elm";
-             script {
-                set_int(is_pressed, 0);
-                if (get_int(is_focused)) {
-                   set_state(PART:"bg", "focused", 0.0);
-                   set_state(PART:"elm.text", "focused", 0.0);
+                rel1 {
+                   relative: 0.0 0.0;
+                   to: "bg";
                 }
-                else {
-                   set_state(PART:"bg", "default", 0.0);
-                   set_state(PART:"elm.text", "default", 0.0);
+
+                rel2 {
+                   relative: 1.0 1.0;
+                   to: "bg";
                 }
              }
           }
-          // item enabled
-          program { "on_enabled";
-             signal: "elm,state,enabled";
-             source: "elm";
-             action: STATE_SET "default";
-             script {
-                set_int(is_disabled, 0);
-                set_state(PART:"bg", "default", 0.0);
-                set_state(PART:"elm.text", "default", 0.0);
-             }
-          }
-          // item disabled
-          program { "on_disabled";
-             signal: "elm,state,disabled";
-             source: "elm";
-             action: STATE_SET "disabled";
-             target: "bg";
-             target: "elm.text";
-             script {
-                set_int(is_disabled, 1);
-                set_state(PART:"bg", "disabled", 0.0);
-                set_state(PART:"elm.text", "disabled", 0.0);
-             }
-          }
-          // item focused
-          program { "focused";
-             signal: "elm,state,focused";
-             source: "elm";
-             script {
-                set_int(is_focused, 1);
-                if (get_int(is_pressed) == 0) {
-                   set_state(PART:"bg", "focused", 0.0);
-                   set_state(PART:"elm.text", "focused", 0.0);
-                   set_state(PART:"bottom_line", "focused", 0.0);
+          part { name: "up_padding";
+             type: SPACER;
+             scale: 1;
+             description { state: "default" 0.0;
+                min: 860 25;
+                max: 860 25;
+                align: 0 0;
+                fixed:1 1;
+                rel1 {
+                   relative: 0.0 0.0;
+                   to: "part.popup";
+                }
+                rel2 {
+                   relative: 1.0 0.0;
+                   to: "part.popup";
                 }
-                run_program(PROGRAM:"focus_anim");
              }
           }
-          program { "focus_anim";
-             action: STATE_SET "focused";
-             target: "bg_base";
-             target: "outline_shadow";
-             transition: EASE_IN1(0.167);
-          }
-          program { "unfocused";
-             signal: "elm,state,unfocused";
-             source: "elm";
-             action: STATE_SET "default";
-             script {
-                set_int(is_focused, 0);
-                if (get_int(is_pressed) == 0) {
-                  set_state(PART:"bg", "default", 0.0);
-                  set_state(PART:"elm.text", "default", 0.0);
-                   set_state(PART:"bottom_line", "default", 0.0);
+          part { name: "part.list";
+             type: SWALLOW;
+             scale: 1;
+             description { state: "default" 0.0;
+                min: 670+56 812+100;
+                max: 670+56 812+100;
+                align: 0.5 0;
+                fixed:1 1;
+                rel1 {
+                   relative: 0.0 1.0;
+                   to: "list_padding";
+                   offset: 0 -28;
+                }
+                rel2 {
+                   relative: 1.0 1.0;
+                   to: "list_padding";
+                   offset: 0 -28;
                 }
-                run_program(PROGRAM:"unfocus_anim");
              }
           }
-          program { "unfocus_anim";
-             action: STATE_SET "default";
-             target: "bg_base";
-             target: "outline_shadow";
-             transition: EASE_IN2(0.167);
-          }
        }
     }
-}
+
+    group { "elm/genlist/item/cus_style/default";
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.swallow.icon elm.swallow.end";
+       data.item: "focus_highlight" "on";
+       data.item: "focusraise" "on";
+
+       IMAGE_LOAD
+       SCRIPT_LOAD
+       parts {
+          PARTS_FRONT
+          // right swallow (Type C)image
+          GREATE_CHECK_PART(0)
+          PARTS_BACK
+          GENLIST_PART_EVENT
+       }
+       PROGRAM_LOAD
+    }
+
+    group { "elm/genlist/item/cus_check_style/default";
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.swallow.icon elm.swallow.end";
+       data.item: "focus_highlight" "on";
+       data.item: "focusraise" "on";
+
+       IMAGE_LOAD
+       SCRIPT_LOAD
+       parts {
+          PARTS_FRONT
+          // right swallow (Type C)image
+          GREATE_CHECK_PART(1)
+          PARTS_BACK
+          GENLIST_PART_EVENT
+       }
+       PROGRAM_LOAD
+    }
+}
\ No newline at end of file
index 86c2e59..729e4c5 100644 (file)
 #include "ise-stt-option.h"
 #include "eflutil.h"
 
+#undef LOG_TAG
+#define LOG_TAG "ISE_DEFAULT"
+
 #define item_append(obj, style, index, cb, udata) \
                elm_genlist_item_append(obj, &(style), (void *)index, NULL, ELM_GENLIST_ITEM_NONE, cb, udata)
 
+#define EDJ_FILE                        RESDIR"/edje/tv/popup_keyboard.edj"
+#define IMG_POPUP_DIM_BG                RESDIR"/tv/images/bg_dimmed_bk_95.9.png"
+#define IMG_POPUP_BAR_LINE              RESDIR"/tv/images/img_popup_bar_line.png"
+#define IMG_POPUP_BAR_SHADOW            RESDIR"/tv/images/img_popup_bar_shadow.png"
+
 Eina_Bool g_setting_window_open_status = EINA_FALSE;
 
 static Evas_Object *radio_gp = NULL;
 static Evas_Object *g_setting_naviframe = NULL;
 static Evas_Object *g_setting_window = NULL;
 
+#ifdef _TV
+static Elm_Theme *g_list_theme = NULL;
+#endif
+
 static Elm_Genlist_Item_Class itc_1text;
 static Elm_Genlist_Item_Class itc_2text;
 
@@ -43,7 +55,9 @@ static const char* get_lang_label(char lang[]);
 static void set_language_value(int type);
 
 static char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+#ifndef _TV
 static Evas_Object *__get_genlist_item_content(void *data, Evas_Object *obj, const char *part);
+#endif
 static void language_set_genlist_radio_cb(void *data, Evas_Object *obj, void *event_info);
 static Eina_Bool close_setting_window_idler_cb(void *data);
 static Evas_Object *create_language_list(Evas_Object *parent);
@@ -207,6 +221,7 @@ static char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *
     return NULL;
 }
 
+#ifndef _TV
 static Evas_Object *__get_genlist_item_content(void *data, Evas_Object *obj, const char *part)
 {
     int index = (intptr_t)data;
@@ -224,6 +239,7 @@ static Evas_Object *__get_genlist_item_content(void *data, Evas_Object *obj, con
     }
     return content;
 }
+#endif
 
 static void language_set_genlist_radio_cb(void *data, Evas_Object *obj, void *event_info)
 {
@@ -249,6 +265,13 @@ static void close_setting_window()
     g_setting_naviframe = NULL;
     evas_object_del(g_setting_window);
     g_setting_window = NULL;
+#ifdef _TV
+    if (g_list_theme) {
+        elm_theme_extension_del(g_list_theme, EDJ_FILE);
+        elm_theme_free(g_list_theme);
+        g_list_theme = NULL;
+    }
+#endif
 }
 
 static Eina_Bool close_setting_window_idler_cb(void *data)
@@ -310,17 +333,26 @@ static Evas_Object *create_language_list(Evas_Object *parent)
     // 2 line text
 #ifdef _WEARABLE
     itc_2text.item_style = "2text.1icon.1/sub1.multiline";
+#elif _TV
+    itc_2text.item_style = "cus_check_style";
 #else
     itc_2text.item_style = "type1";
 #endif
     itc_2text.func.text_get = __get_genlist_item_label;
+#ifdef _TV
+    itc_2text.func.content_get = NULL;
+#else
     itc_2text.func.content_get = __get_genlist_item_content;
+#endif
 
     item = item_append(genlist, itc_2text, (void *)0, language_set_genlist_radio_cb, genlist); // AUTO
 
     if (lang_val == i) {
         LOGD("%d item is choiced.", i);
         elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+#ifdef _TV
+        elm_object_item_focus_set(item, EINA_TRUE);
+#endif
     }
 
     if (item == NULL) {
@@ -330,12 +362,17 @@ static Evas_Object *create_language_list(Evas_Object *parent)
     // 1 line text
 #ifdef _WEARABLE
     itc_1text.item_style = "1text.1icon.1";
+#elif _TV
+    itc_1text.item_style = "cus_check_style";
 #else
     itc_1text.item_style = "type1";
 #endif
     itc_1text.func.text_get = __get_genlist_item_label;
+#ifdef _TV
+    itc_1text.func.content_get = NULL;
+#else
     itc_1text.func.content_get = __get_genlist_item_content;
-
+#endif
     for (i = 1; i < (long)(sizeof(disp_lang_array)/sizeof(disp_lang_array[0])); i++)
     {
         item = item_append(genlist, itc_1text, i, language_set_genlist_radio_cb, genlist);
@@ -343,6 +380,9 @@ static Evas_Object *create_language_list(Evas_Object *parent)
         if (lang_val == i) {
             LOGD("%d item is choiced.", i);
             elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+#ifdef _TV
+            elm_object_item_focus_set(item, EINA_TRUE);
+#endif
         }
 
         if (item == NULL) {
@@ -413,6 +453,39 @@ void create_setting_window()
     eext_object_event_callback_add(naviframe, EEXT_CALLBACK_BACK, _naviframe_back_cb, naviframe);
 
     genlist = create_language_list(naviframe);
+#ifdef _TV
+    g_list_theme = elm_theme_new();
+    elm_theme_ref_set(g_list_theme, NULL);
+    elm_theme_extension_add(g_list_theme, EDJ_FILE);
+
+    elm_object_theme_set(genlist, g_list_theme);
+    Evas_Object *mlayout = NULL;
+    mlayout = elm_layout_add(naviframe);
+    evas_object_size_hint_weight_set(mlayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_show(mlayout);
+    edje_object_file_set(mlayout, EDJ_FILE, "language_setting");
+
+    Evas_Object *image = elm_image_add(mlayout);
+    elm_image_file_set(image, IMG_POPUP_DIM_BG, NULL);
+    elm_object_part_content_set(mlayout, "bg_image", image);
+    Evas_Object *playout = elm_layout_add(mlayout);
+    evas_object_size_hint_weight_set(mlayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_object_part_content_set(mlayout, "part.popup", playout);
+    evas_object_show(playout);
+
+    elm_object_domain_translatable_part_text_set(mlayout, "elm.text", PACKAGE, "IDS_VOICE_OPT_LANGUAGE_ABB");
+    Evas_Object *bar_line = elm_image_add(mlayout);
+    elm_image_file_set(bar_line, IMG_POPUP_BAR_LINE, NULL);
+    evas_object_color_set(bar_line, 255, 255, 255, 80);
+    elm_object_part_content_set(mlayout, "bar_line", bar_line);
+
+    Evas_Object *bar_shadow = elm_image_add(mlayout);
+    elm_image_file_set(bar_shadow, IMG_POPUP_BAR_SHADOW, NULL);
+    evas_object_color_set(bar_shadow, 0, 0, 255, 255);
+    elm_object_part_content_set(mlayout, "bar_shadow", bar_shadow);
+
+    elm_object_part_content_set(mlayout, "part.list", genlist);
+#endif
 
     char *title = NULL;
 #ifdef _MOBILE
@@ -422,8 +495,10 @@ void create_setting_window()
     bool title_enable = true;
 #ifdef _TV
     title_enable = false;
-#endif
+    naviframe_item_push(naviframe, title, mlayout, NULL, NULL, _naviframe_back_cb, naviframe, title_enable);
+#else
     naviframe_item_push(naviframe, title, genlist, NULL, NULL, _naviframe_back_cb, naviframe, title_enable);
+#endif
 
     elm_object_content_set(conformant, naviframe);