--- /dev/null
+#include "w-input-stt-button.edc"
+
+#define VOICE_CANDIDATE_AREA_HEIGHT 56
+
+collections
+{
+ base_scale: 1.3;
+
+ plugins {
+ plugin {
+ name: "touch_sound";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ /* 2014.06.11 updated from libsvi(feedback)
+ Above plugin will run below external function:
+ int feedback_play_type(feedback_type_e type, feedback_pattern_e pattern);
+
+ param1: feedback_type_e
+ FEEDBACK_TYPE_NONE = 0,
+ FEEDBACK_TYPE_SOUND = 1,
+ FEEDBACK_TYPE_VIBRATION,
+ FEEDBACK_TYPE_LED,
+ FEEDBACK_TYPE_END
+
+ * param2 enumeration:
+ FEEDBACK_PATTERN_TAP = 0,
+ FEEDBACK_PATTERN_SIP,
+ FEEDBACK_PATTERN_SIP_BACKSPACE,
+ FEEDBACK_PATTERN_SIP_FUNCTION,
+ FEEDBACK_PATTERN_SIP_FJKEY,
+ ...
+ */
+ }
+ plugin {
+ name: "haptic_tap";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_VIBRATION FEEDBACK_PATTERN_TAP";
+ }
+ }
+
+ images {
+ // MIC
+ image, "./bg/B13_mic_bg.png" COMP;
+ image, "./icon/B13_mic.png" COMP;
+ image, "./icon/B13_mic_Que.png" COMP;
+ image, "./icon/B13_mic_Que_01.png" COMP;
+ image, "./icon/B13_mic_procecessing_bg.png" COMP;
+ image, "./text_downdrop.#.png" COMP;
+ image, "./text_downdrop_press.#.png" COMP;
+
+ image, "./input_ic_voice_mic.png" COMP;
+ image, "./w_sip_mask_bg.png" COMP;
+ image, "./tw_bottom_btn_bg.png" COMP;
+
+ image, "./w_mode_ic_bg.png" COMP;
+
+ image, "./b_stt_text_fade_out.png" COMP;
+ image, "./b_stt_icon_btn.png" COMP;
+ image, "./b_stt_confirm_icon.png" COMP;
+ image, "./b_stt_send_icon.png" COMP;
+ }
+
+ color_classes
+ {
+ color_class
+ {
+ name: "AO013";
+ color: 68 71 77 100;
+ }
+ color_class
+ {
+ name: "AO014";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO014P";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO014D";
+ color: 0 0 0 35;
+ }
+ color_class
+ {
+ name: "AO015L1";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO015L1P";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO015L1D";
+ color: 0 0 0 40;
+ }
+ color_class
+ {
+ name: "AO0151";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0151P";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO0151D";
+ color: 0 0 0 20;
+ }
+ color_class
+ {
+ name: "AO0152";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO015L2";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO015L2P";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO015L2D";
+ color: 0 0 0 40;
+ }
+ color_class
+ {
+ name: "AO015L3";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO01151";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO01153L1";
+ color: 163 163 163 100;
+ }
+ color_class
+ {
+ name: "AO01153L1P";
+ color: 61 61 61 100;
+ }
+ color_class
+ {
+ name: "AO01153L1D";
+ color: 163 163 163 100;
+ }
+ color_class
+ {
+ name: "AO01154L1";
+ color: 110 110 110 100;
+ }
+ color_class
+ {
+ name: "AO01154L1P";
+ color: 41 41 41 100;
+ }
+ color_class
+ {
+ name: "AO01154L1D";
+ color: 110 110 110 100;
+ }
+ color_class
+ {
+ name: "AO01155L1";
+ color: 122 122 122 100;
+ }
+ color_class
+ {
+ name: "AO01155L1P";
+ color: 33 33 33 100;
+ }
+ color_class
+ {
+ name: "AO01155L1D";
+ color: 122 122 122 100;
+ }
+ color_class
+ {
+ name: "AO01153L2";
+ color: 18 18 18 30;
+ }
+ color_class
+ {
+ name: "AO01153L3";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO01153L3P";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO01153L3D";
+ color: 0 0 0 40;
+ }
+ color_class
+ {
+ name: "AO0116";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0116P";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO0116D";
+ color: 0 0 0 30;
+ }
+ color_class
+ {
+ name: "AO01161";
+ color: 64 64 64 100;
+ }
+ color_class
+ {
+ name: "AO01161P";
+ color: 38 38 38 100;
+ }
+ color_class
+ {
+ name: "AO01161D";
+ color: 26 26 26 100;
+ }
+ color_class
+ {
+ name: "AO0117";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0118";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0119";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0119P";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0119D";
+ color: 0 0 0 5;
+ }
+ color_class
+ {
+ name: "AO031";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO031P";
+ color: 0 0 0 40;
+ }
+ color_class
+ {
+ name: "AO031L1";
+ color: 0 0 0 41;
+ }
+ color_class
+ {
+ name: "AO031L1P";
+ color: 0 0 0 70;
+ }
+ color_class
+ {
+ name: "AO0331";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO0332";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO034";
+ color: 102 102 102 100;
+ }
+ color_class
+ {
+ name: "AO034P";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO034D";
+ color: 0 0 0 30;
+ }
+ color_class
+ {
+ name: "AO035";
+ color: 5 5 5 100;
+ }
+ color_class
+ {
+ name: "AO0351";
+ color: 0 0 0 15;
+ }
+ color_class
+ {
+ name: "AO036";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO0361";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO037";
+ color: 10 10 10 100;
+ }
+ color_class
+ {
+ name: "AO037P";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO037S";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO038";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AO038P";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AO038D";
+ color: 0 0 0 40;
+ }
+ color_class
+ {
+ name: "AT0113";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT0113P";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT0113D";
+ color: 0 0 0 70;
+ }
+ color_class
+ {
+ name: "AT0113S";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT0114";
+# color: 0 0 0 100;
+ color: 128 128 128 100;
+ }
+ color_class
+ {
+ name: "AT0114D";
+ color: 0 0 0 5;
+ }
+ color_class
+ {
+ name: "AT02111";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT02112";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT02113";
+ color: 10 10 10 100;
+ }
+ color_class
+ {
+ name: "AT021";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT022";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT023";
+ color: 0 0 0 100;
+ }
+ color_class
+ {
+ name: "AT023P";
+ color: 0 0 0 50;
+ }
+ color_class
+ {
+ name: "AT023D";
+ color: 0 0 0 40;
+ }
+ }
+
+ styles
+ {
+ style { name, "textblock_style";
+ base, "font=Tizen:style=Regular font_size=36 align=center color=#FFFFFF text_class=text_class wrap=word ellipsis=1.0";
+ tag, "br" "\n";
+ tag, "ps" "ps";
+ tag, "hilight" "+ font=Tizen:style=Bold";
+ tag, "b" "+ font=Tizen:style=Bold";
+ tag, "tab" "\t";
+ }
+ style { name, "textblock_style_bottom";
+ base, "font=Tizen:style=Regular font_size=36 align=center color=#FFFFFF text_class=text_class wrap=word ellipsis=1.0";
+ tag, "br" "\n";
+ tag, "ps" "ps";
+ tag, "hilight" "+ font=Tizen:style=Bold";
+ tag, "b" "+ font=Tizen:style=Bold";
+ tag, "tab" "\t";
+ }
+ }
+
+ group
+ {
+ name, "mic_control";
+ parts
+ {
+ part
+ {
+ name, "bg";
+ type, RECT;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ rel1
+ {
+ relative, 0.0 0.0;
+ }
+ rel2
+ {
+ relative, 1.0 1.0;
+ }
+ visible: 1;
+ color_class, "AO0118";
+ }
+ }
+ part
+ {
+ name, "top_block";
+ type, SPACER;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ min, 360 (360-103);
+ align, 0.5 0;
+ rel1
+ {
+ relative, 0.0 0.0;
+ to, "bg";
+ }
+ rel2
+ {
+ relative, 1.0 0.0;
+ to, "bg";
+ }
+ }
+ }
+
+ part
+ {
+ name, "text_area";
+ type, SWALLOW;
+ description
+ {
+ state, "default" 0.0;
+ align, 0.5 1;
+ min, 282 (360-103);
+ max, 282 (360-103);
+
+ rel1
+ {
+ relative, 39/360 1;
+ to, "top_block";
+ offset, 0 -1;
+ }
+ rel2
+ {
+ relative, 321/360 1;
+ to, "top_block";
+ offset, 0 -1;
+ }
+ }
+ }
+ part
+ {
+ name, "left_panel_area";
+ type, SWALLOW;
+ description
+ {
+ state, "default" 0.0;
+ align, 0.5 0.5;
+ rel1
+ {
+ relative, 0.0 0.0;
+ to, "bg";
+ }
+ rel2
+ {
+ relative, 1.0 1.0;
+ to, "bg";
+ }
+ }
+ }
+
+
+ part
+ {
+ name, "background";
+ type, IMAGE;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ min, 360 100;
+ max, 360 100;
+ rel1
+ {
+ relative, 0 260/360;
+ to, "bg";
+ }
+ rel2
+ {
+ relative, 1 1;
+ to, "bg";
+ }
+ image.normal, "./tw_bottom_btn_bg.png";
+ color: 128 128 128 128;
+ }
+ description
+ {
+ state, "pressed" 0.0;
+ inherit, "default" 0.0;
+ color: 128 128 128 128;
+ }
+ description
+ {
+ state, "dim" 0.0;
+ inherit, "default" 0.0;
+ color: 128 128 128 128;
+ }
+ }
+
+ part
+ {
+ name, "EFFECT_BG_AREA";
+ type, SPACER;
+ description
+ {
+ state, "default" 0.0;
+ min, 0 74;
+ max, 9999 74;
+ align, 0.5 1;
+ rel1
+ {
+ relative, 0 1;
+ to, "bg";
+ offset, 0 -14;
+ }
+ rel2
+ {
+ relative, 1 1;
+ to, "bg";
+ offset, 0 -14;
+ }
+ }
+ }
+ part
+ {
+ name, "EFFECT_BG";
+ type, SWALLOW;
+ description
+ {
+ state, "default" 0.0;
+ visible, 0;
+ rel1
+ {
+ relative, 0 0;
+ to, "EFFECT_BG_AREA";
+ }
+ rel2
+ {
+ relative, 1 1;
+ to, "EFFECT_BG_AREA";
+ }
+ }
+ description
+ {
+ state, "default" 0.1;
+ inherit, "default" 0.0;
+ visible, 1;
+ }
+ }
+
+
+ part
+ {
+ name, "MIC_ICON";
+ type, IMAGE;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ min, 50 50;
+ max, 50 50;
+ rel1
+ {
+ relative, 155/360 26/100;
+ to, "background";
+ }
+ rel2
+ {
+ relative, 205/360 76/100;
+ to, "background";
+ }
+ image.normal, "./input_ic_voice_mic.png";
+ }
+ description
+ {
+ state, "recording" 0.0;
+ inherit, "default" 0.0;
+ visible, 0;
+ }
+ description
+ {
+ state, "processing" 0.0;
+ inherit, "default" 0.0;
+ visible, 0;
+ }
+ description
+ {
+ state, "message" 0.0;
+ inherit, "default" 0.0;
+ rel1
+ {
+ relative, 155/360 41/100;
+ to, "background";
+ }
+ rel2
+ {
+ relative, 205/360 91/100;
+ to, "background";
+ }
+ visible, 1;
+ }
+ }
+
+
+
+ //Part for mic button
+ part
+ {
+ name, "MIC";
+ type, SWALLOW;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ visible, 1;
+ min, 290 100;
+ max, 290 100;
+ rel1
+ {
+ relative, 35/360 0.0;
+ to, "background";
+ }
+ rel2
+ {
+ relative, 325/360 1.0;
+ to, "background";
+ }
+ }
+ }
+ part
+ {
+ name, "PROGRESS_BAR";
+ type, SWALLOW;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ min, 50 50;
+ max, 50 50;
+ visible, 0;
+ rel1
+ {
+ relative, 155/360 27/100;
+ to, "background";
+ }
+ rel2
+ {
+ relative, 205/360 77/100;
+ to, "background";
+ }
+ }
+ description
+ {
+ state, "message" 0.0;
+ inherit, "default" 0.0;
+ }
+ description
+ {
+ state, "processing" 0.0;
+ inherit, "default" 0.0;
+ visible, 1;
+ }
+ }
+
+ part
+ {
+ name, "guide_text_block";
+ type, SPACER;
+ description
+ {
+ state, "default" 0.0;
+ align, 0.5 0;
+ rel1
+ {
+ relative, 39/360 140/360;
+ to, "bg";
+ }
+ rel2
+ {
+ relative, (360-39)/360 (140+42)/360;
+ to, "bg";
+ }
+ }
+ description
+ {
+ state, "bottom" 0.0;
+ align, 0.5 0;
+ rel1
+ {
+ relative, 74/360 (360-91)/360;
+ to, "bg";
+ }
+ rel2
+ {
+ relative, (360-74)/360 (360-57)/360;
+ to, "bg";
+ }
+ }
+ }
+
+ part
+ {
+ name, "elm.text";
+ type, TEXTBLOCK;
+ mouse_events, 0;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ visible, 1;
+ align, 0.5 0.6;
+ rel1.to, "guide_text_block";
+ rel2.to, "guide_text_block";
+ text
+ {
+ fit: 1 1;
+ style, "textblock_style";
+ }
+ color, 120 120 120 120;
+ }
+ description
+ {
+ state, "bottom" 0.0;
+ inherit, "default" 0.0;
+ text
+ {
+ fit: 1 1;
+ style, "textblock_style_bottom";
+ }
+ color, 120 120 120 120;
+ }
+ }
+ }
+
+ programs
+ {
+ program
+ {
+ name, "initial_view";
+ signal, "mouse,clicked,1";
+ source, "background";
+ in, 0 0.3;
+ after, "emit_signal1";
+ }
+
+ program
+ {
+ name, "emit_signal1";
+ action, SIGNAL_EMIT "idle,state,pulse,visible" "";
+ }
+
+ program
+ {
+ name, "listening";
+ signal, "elm,state,listening";
+ source, "elm";
+ action, STATE_SET "recording" 0.0;
+ target, "MIC_ICON";
+ }
+
+ program
+ {
+ name, "start_processing";
+ signal, "elm,state,processing";
+ source, "elm";
+ action, STATE_SET "processing" 0.0;
+ target, "PROGRESS_BAR";
+ target, "MIC_ICON";
+ transition, DECELERATE 0.3;
+ }
+
+ program
+ {
+ name, "idle";
+ signal, "elm,state,init";
+ source, "elm";
+ action, STATE_SET "default" 0.0;
+ target, "PROGRESS_BAR";
+ target, "MIC_ICON";
+ transition, DECELERATE 0.3;
+ }
+ program
+ {
+ name, "idle_message";
+ signal, "elm,state,init_message";
+ source, "elm";
+ action, STATE_SET "message" 0.0;
+ target, "PROGRESS_BAR";
+ target, "MIC_ICON";
+ }
+
+ program
+ {
+ name, "text_show";
+ signal, "idle,state,text,visible";
+ source, "elm";
+ action, STATE_SET "expand" 0.0;
+ target, "elm.text";
+ }
+
+ program
+ {
+ name, "text_hide";
+ signal, "idle,state,text,hidden";
+ source, "elm";
+ action, STATE_SET "default" 0.0;
+ target, "elm.text";
+ }
+ program
+ {
+ name, "show_effect_part";
+ signal, "elm,state,eq,show";
+ source, "eq";
+ action, STATE_SET "default" 0.1;
+ target, "EFFECT_BG";
+ }
+
+ program
+ {
+ name, "hide_effect_part";
+ signal, "elm,state,eq,hide";
+ source, "eq";
+ action, STATE_SET "default" 0.0;
+ target, "EFFECT_BG";
+ }
+
+ program
+ {
+ name, "guide_text_up";
+ signal, "idle,state,guide_text,up";
+ source, "elm";
+ action, STATE_SET "default" 0.0;
+ target, "guide_text_block";
+ }
+ program
+ {
+ name, "guide_text_bottom";
+ signal, "idle,state,guide_text,bottom";
+ source, "elm";
+ action, STATE_SET "bottom" 0.0;
+ target, "guide_text_block";
+ }
+
+
+ }
+ }
+
+ group{
+ name: "layout_textblock";
+
+ script {
+ public timer_cb(val) {
+ run_program(PROGRAM:"do_scroll");
+ }
+
+ }
+ parts {
+ part
+ {
+ name, "bg";
+ type, SPACER;
+ scale, 1;
+ description
+ {
+ state, "default" 0.0;
+ min, 282 39;
+ rel1
+ {
+ relative, 0.0 0.0;
+ }
+ rel2
+ {
+ relative, 1.0 1.0;
+ }
+ }
+ }
+ part { name: "elm.swallow.content";
+ scale: 1;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ min: 282 39;
+ color, 120 120 120 120;
+ }
+ }
+ }
+ programs {
+ program
+ {
+ name, "scroll";
+ signal, "scrolling";
+ source, "entry";
+ script {
+ timer(3/10, "timer_cb", 0);
+ }
+ }
+ program
+ {
+ name, "do_scroll";
+ action, SIGNAL_EMIT "do_scroll" "entry";
+ }
+ }
+ }
+
+
+
+#define PROGRESSBAR_ACTIVITY_SMALL_SIZE_INC 50
+ group
+ {
+ name: "elm/progressbar/horizontal/voice_input/process/small";
+ images {
+ image: "style/tw_loading_small_00.png" COMP;
+ image: "style/tw_loading_small_01.png" COMP;
+ image: "style/tw_loading_small_02.png" COMP;
+ image: "style/tw_loading_small_03.png" COMP;
+ image: "style/tw_loading_small_04.png" COMP;
+ image: "style/tw_loading_small_05.png" COMP;
+ image: "style/tw_loading_small_06.png" COMP;
+ image: "style/tw_loading_small_07.png" COMP;
+ image: "style/tw_loading_small_08.png" COMP;
+ image: "style/tw_loading_small_09.png" COMP;
+ image: "style/tw_loading_small_10.png" COMP;
+ image: "style/tw_loading_small_11.png" COMP;
+ image: "style/tw_loading_small_12.png" COMP;
+ image: "style/tw_loading_small_13.png" COMP;
+ image: "style/tw_loading_small_14.png" COMP;
+ image: "style/tw_loading_small_15.png" COMP;
+ image: "style/tw_loading_small_16.png" COMP;
+ image: "style/tw_loading_small_17.png" COMP;
+ image: "style/tw_loading_small_18.png" COMP;
+ image: "style/tw_loading_small_19.png" COMP;
+ image: "style/tw_loading_small_20.png" COMP;
+ image: "style/tw_loading_small_21.png" COMP;
+ image: "style/tw_loading_small_22.png" COMP;
+ image: "style/tw_loading_small_23.png" COMP;
+ image: "style/tw_loading_small_24.png" COMP;
+ image: "style/tw_loading_small_25.png" COMP;
+ image: "style/tw_loading_small_26.png" COMP;
+ image: "style/tw_loading_small_27.png" COMP;
+ image: "style/tw_loading_small_28.png" COMP;
+ image: "style/tw_loading_small_29.png" COMP;
+ image: "style/tw_loading_small_30.png" COMP;
+ image: "style/tw_loading_small_31.png" COMP;
+ image: "style/tw_loading_small_32.png" COMP;
+ image: "style/tw_loading_small_33.png" COMP;
+ image: "style/tw_loading_small_34.png" COMP;
+ image: "style/tw_loading_small_35.png" COMP;
+ image: "style/tw_loading_small_36.png" COMP;
+ image: "style/tw_loading_small_37.png" COMP;
+ image: "style/tw_loading_small_38.png" COMP;
+ image: "style/tw_loading_small_39.png" COMP;
+ image: "style/tw_loading_small_40.png" COMP;
+ image: "style/tw_loading_small_41.png" COMP;
+ image: "style/tw_loading_small_42.png" COMP;
+ image: "style/tw_loading_small_43.png" COMP;
+ image: "style/tw_loading_small_44.png" COMP;
+ image: "style/tw_loading_small_45.png" COMP;
+ image: "style/tw_loading_small_46.png" COMP;
+ image: "style/tw_loading_small_47.png" COMP;
+ image: "style/tw_loading_small_48.png" COMP;
+ image: "style/tw_loading_small_49.png" COMP;
+ image: "style/tw_loading_small_50.png" COMP;
+ image: "style/tw_loading_small_51.png" COMP;
+ image: "style/tw_loading_small_52.png" COMP;
+ image: "style/tw_loading_small_53.png" COMP;
+ image: "style/tw_loading_small_54.png" COMP;
+ image: "style/tw_loading_small_55.png" COMP;
+ image: "style/tw_loading_small_56.png" COMP;
+ image: "style/tw_loading_small_57.png" COMP;
+ image: "style/tw_loading_small_58.png" COMP;
+ image: "style/tw_loading_small_59.png" COMP;
+ image: "style/tw_loading_small_60.png" COMP;
+ image: "style/tw_loading_small_61.png" COMP;
+ image: "style/tw_loading_small_62.png" COMP;
+ image: "style/tw_loading_small_63.png" COMP;
+ image: "style/tw_loading_small_64.png" COMP;
+ }
+ parts {
+ part {
+ name: "access";
+ type: RECT;
+ description
+ {
+ state: "default" 0.0;
+ fixed: 1 1;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "elm.background.progressbar";
+ mouse_events: 0;
+ scale: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ part {
+ name: "bar";
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "elm.background.progressbar";
+ description {
+ state: "default" 0.0;
+ min: PROGRESSBAR_ACTIVITY_SMALL_SIZE_INC PROGRESSBAR_ACTIVITY_SMALL_SIZE_INC;
+ max: PROGRESSBAR_ACTIVITY_SMALL_SIZE_INC PROGRESSBAR_ACTIVITY_SMALL_SIZE_INC;
+ fixed, 1 1;
+ aspect: 1.0 1.0;
+ aspect_preference: BOTH;
+ image.normal: "style/tw_loading_small_00.png";
+ image.tween: "style/tw_loading_small_01.png";
+ image.tween: "style/tw_loading_small_02.png";
+ image.tween: "style/tw_loading_small_03.png";
+ image.tween: "style/tw_loading_small_04.png";
+ image.tween: "style/tw_loading_small_05.png";
+ image.tween: "style/tw_loading_small_06.png";
+ image.tween: "style/tw_loading_small_07.png";
+ image.tween: "style/tw_loading_small_08.png";
+ image.tween: "style/tw_loading_small_09.png";
+ image.tween: "style/tw_loading_small_10.png";
+ image.tween: "style/tw_loading_small_11.png";
+ image.tween: "style/tw_loading_small_12.png";
+ image.tween: "style/tw_loading_small_13.png";
+ image.tween: "style/tw_loading_small_14.png";
+ image.tween: "style/tw_loading_small_15.png";
+ image.tween: "style/tw_loading_small_16.png";
+ image.tween: "style/tw_loading_small_17.png";
+ image.tween: "style/tw_loading_small_18.png";
+ image.tween: "style/tw_loading_small_19.png";
+ image.tween: "style/tw_loading_small_20.png";
+ image.tween: "style/tw_loading_small_21.png";
+ image.tween: "style/tw_loading_small_22.png";
+ image.tween: "style/tw_loading_small_23.png";
+ image.tween: "style/tw_loading_small_24.png";
+ image.tween: "style/tw_loading_small_25.png";
+ image.tween: "style/tw_loading_small_26.png";
+ image.tween: "style/tw_loading_small_27.png";
+ image.tween: "style/tw_loading_small_28.png";
+ image.tween: "style/tw_loading_small_29.png";
+ image.tween: "style/tw_loading_small_30.png";
+ image.tween: "style/tw_loading_small_31.png";
+ image.tween: "style/tw_loading_small_32.png";
+ image.tween: "style/tw_loading_small_33.png";
+ image.tween: "style/tw_loading_small_34.png";
+ image.tween: "style/tw_loading_small_35.png";
+ image.tween: "style/tw_loading_small_36.png";
+ image.tween: "style/tw_loading_small_37.png";
+ image.tween: "style/tw_loading_small_38.png";
+ image.tween: "style/tw_loading_small_39.png";
+ image.tween: "style/tw_loading_small_40.png";
+ image.tween: "style/tw_loading_small_41.png";
+ image.tween: "style/tw_loading_small_42.png";
+ image.tween: "style/tw_loading_small_43.png";
+ image.tween: "style/tw_loading_small_44.png";
+ image.tween: "style/tw_loading_small_45.png";
+ image.tween: "style/tw_loading_small_46.png";
+ image.tween: "style/tw_loading_small_47.png";
+ image.tween: "style/tw_loading_small_48.png";
+ image.tween: "style/tw_loading_small_48.png";
+ image.tween: "style/tw_loading_small_49.png";
+ image.tween: "style/tw_loading_small_50.png";
+ image.tween: "style/tw_loading_small_51.png";
+ image.tween: "style/tw_loading_small_52.png";
+ image.tween: "style/tw_loading_small_53.png";
+ image.tween: "style/tw_loading_small_54.png";
+ image.tween: "style/tw_loading_small_55.png";
+ image.tween: "style/tw_loading_small_56.png";
+ image.tween: "style/tw_loading_small_57.png";
+ image.tween: "style/tw_loading_small_58.png";
+ image.tween: "style/tw_loading_small_59.png";
+ image.tween: "style/tw_loading_small_60.png";
+ image.tween: "style/tw_loading_small_61.png";
+ image.tween: "style/tw_loading_small_62.png";
+ image.tween: "style/tw_loading_small_63.png";
+ image.tween: "style/tw_loading_small_64.png";
+ color: 128 128 128 128;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "start_pulse";
+ signal: "elm,state,pulse,start";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bar";
+ transition: LINEAR 1.8;
+ after: "start_pulse";
+ }
+ program {
+ name: "stop_pulse";
+ signal: "elm,state,pulse,stop";
+ source: "elm";
+ action: ACTION_STOP;
+ target: "start_pulse";
+ after: "init_pulse";
+ }
+ program { name: "init_pulse";
+ action: STATE_SET "default" 0.0;
+ target: "bar";
+ }
+ }
+ }
+
+
+#define BUTTON_PADDING_SIZE_INC 20 0
+#define BUTTON_HEIGHT_INC 122
+#define BUTTON_ICON_SIZE_INC 60 60
+ group { name: "elm/button/base/default";
+ script {
+ public mouse_down = 0;
+ public multi_down = 0;
+ }
+ parts {
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 BUTTON_HEIGHT_INC;
+ color: 128 128 128 128;
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ }
+ 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: BUTTON_PADDING_SIZE_INC;
+ fixed: 1 1;
+ }
+ }
+ part { name: "padding_right_bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel1.relative: 1.0 1.0;
+ min: BUTTON_PADDING_SIZE_INC;
+ 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 0;
+ fixed: 1 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: BUTTON_ICON_SIZE_INC;
+ max: BUTTON_ICON_SIZE_INC;
+ fixed: 1 1;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ clip_to: "elm.swallow.content.clip";
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 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";
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ICON_SIZE_INC;
+ max: BUTTON_ICON_SIZE_INC;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text";
+ to_y: "padding_right_bottom";
+ }
+ }
+ description { state: "icononly" 0.0;
+ min: BUTTON_ICON_SIZE_INC;
+ max: BUTTON_ICON_SIZE_INC;
+ }
+ }
+ 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 {
+ max: 1 0;
+ style: "button_general_text_normal";
+ }
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text.style: "button_general_text_dim";
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ text.style: "button_general_text_press";
+ }
+ }
+ part { name: "elm.swallow.content.clip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ }
+ part { name: "event";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.to: "bg";
+ rel2.to: "bg";
+ }
+ }
+ }
+ programs {
+ program { name: "pressed";
+ signal: "mouse,down,1*";
+ source: "event";
+ script {
+ if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0))
+ {
+ set_int(mouse_down, 1);
+ run_program(PROGRAM:"button_press1");
+ }
+ }
+ }
+ program { name: "button_press1";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ set_state(PART:"bg", "pressed", 0.0);
+ set_state(PART:"elm.text", "pressed", 0.0);
+ emit("elm,action,press", "");
+ }
+ }
+ }
+ program { name: "unpressed";
+ signal: "mouse,up,1";
+ source: "event";
+ script {
+ if (get_int(mouse_down) == 1) {
+ set_int(mouse_down, 0);
+ run_program(PROGRAM:"button_unpress1");
+ }
+ }
+ }
+ program { name: "button_unpress1";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ set_state(PART:"bg", "default", 0.0);
+ set_state(PART:"elm.text", "default", 0.0);
+ emit("elm,action,unpress", "");
+ }
+ }
+ }
+ program { name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "event";
+ script {
+ new st[31];
+ new Float:vl;
+ if (get_int(multi_down) == 0) {
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ //run_program(PROGRAM:"play_sample");
+ emit("elm,action,click", "");
+ }
+ }
+ }
+ }
+ program {
+ name: "play_sample";
+ action: RUN_PLUGIN "touch_sound";
+ }
+ program { name: "text_show";
+ signal: "elm,state,text,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.content", st, 30, vl);
+ if (!strcmp(st, "icononly"))
+ {
+ set_state(PART:"elm.swallow.content", "visible", 0.0);
+ set_state(PART:"icon_rect", "visible", 0.0);
+ }
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled"))
+ set_state(PART:"elm.text", "default", 0.0);
+ else
+ set_state(PART:"elm.text", "disabled", 0.0);
+ }
+ }
+ program { name: "text_hide";
+ signal: "elm,state,text,hidden";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.content", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.swallow.content", "icononly", 0.0);
+ set_state(PART:"icon_rect", "default", 0.0);
+ }
+ set_state(PART:"elm.text", "default", 0.0);
+ }
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "icon_hide";
+ signal: "elm,state,icon,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "bg";
+ target: "elm.swallow.content.clip";
+ target: "elm.text";
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.swallow.content.clip";
+ 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);
+ }
+ }
+ }
+ }
+
+ group { name: "elm/button/base/ime_transparent";
+ inherit: "elm/button/base/default";
+ parts {
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 112;
+ visible: 0;
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ }
+ }
+
+
+
+#define NAVIFRAME_VIEW_TRANS_TIME 0.4 //time for push and pop
+#define NAVIFRAME_TITLE_TRANS_TIME 0.5 //Title transition time
+#define NAVIFRAME_TITLE_EXPAND_TRANS_TIME 0.5 //Title Expansion transition time
+#define NAVIFRAME_TEXT_FADE_OUT_CALC_TIME 0.2 //Text fade out calculation time
+#define ACTIONBAR_PADDING_SIZE_INC 64
+#define ACTIONBAR_HEIGHT_INC 115
+#define ACTIONBAR_TEXT_SIZE_INC 39
+#define ACTIONBAR_TEXT_TOP_PADDING_SIZE_INC 51
+#define ACTIONBAR_TEXT_BOTTOM_PADDING_SIZE_INC 25
+#define ACTIONBAR_TEX_SLIDING_SPEED 0.006
+#define ACTIONBAR_TEX_SLIDING_START_WAITING_TIME 0.8
+#define HIDDEN_BUTTON_HEIGHT_INC 88
+
+#define STYLE_TAG_MATCH \
+ tag: "match" "+ color=#ffffff color_class=T0212";
+
+styles {
+ style { name: "action_bar_title";
+ base: "font=Tizen:style=Regular font_size="ACTIONBAR_TEXT_SIZE_INC" color=#FFFFFF color_class=T012 text_class=T012";
+ STYLE_TAG_MATCH
+ }
+}
+
+group { name: "elm_naviframe_item_basic_customized";
+ data.item: "tizen_zoom" 1;
+ script {
+ public g_mirrored = 0; //Mirrored on/off status
+ public g_text_fade_out_calc_timer = 0; //Text fade out calculation timer
+
+ public g_duration_1st;
+ public g_duration_2nd;
+ public g_timer_id;
+ public g_anim_id;
+ public g_sliding_start;
+
+ public title_text_fade_out() {
+ new x, y, w, h, w2;
+
+ if (get_int(g_text_fade_out_calc_timer)) {
+ cancel_timer(g_text_fade_out_calc_timer);
+ set_int(g_text_fade_out_calc_timer, 0);
+ }
+
+ get_geometry(PART:"elm.text.title", x, y, w, h);
+ get_geometry(PART:"title_text_bg", x, y, w2, h);
+ }
+
+ public init() {
+ slide_stop();
+ set_float(g_duration_1st, 0);
+ set_float(g_duration_2nd, 0);
+ set_int(g_timer_id, 0);
+ set_int(g_anim_id, 0);
+ set_int(g_sliding_start, 0);
+ }
+ public slide_first_anim(val, Float:pos) {
+ set_tween_state(PART:"elm.text.title", pos, "slide", 0.0, "slide_1", 0.0);
+ if (pos >= 1.0) {
+ cancel_anim(get_int(g_anim_id));
+ set_int(g_anim_id, anim(get_float(g_duration_2nd), "slide_second_anim", 1));
+ }
+ }
+ public slide_second_anim(val, Float:pos) {
+ set_tween_state(PART:"elm.text.title", pos, "slide_2", 0.0, "slide", 0.0);
+ if (pos >= 1.0)
+ slide_stop();
+ }
+ public slide_first() {
+ check_size();
+ if (get_int(g_sliding_start)) {
+ set_state(PART:"elm.text.title", "slide", 0.0);
+ get_duration();
+ set_int(g_anim_id, anim(get_float(g_duration_1st), "slide_first_anim", 1));
+ }
+ }
+ public slide_start() {
+ set_int(g_timer_id, timer(ACTIONBAR_TEX_SLIDING_START_WAITING_TIME, "slide_first", 1));
+ }
+ public slide_stop() {
+ cancel_anim(get_int(g_anim_id));
+ set_state(PART:"elm.text.title", "default", 0.0);
+ set_int(g_sliding_start, 0);
+ }
+ public check_size() {
+ new x, y, w, w1, h;
+ get_geometry(PART:"elm.text.title", x, y, w, h);
+ get_geometry(PART:"title_text_clip", x, y, w1, h);
+ if (w >= w1) {
+ set_int(g_sliding_start, 1);
+ }
+ else {
+ set_int(g_sliding_start, 0);
+ }
+ }
+ public get_duration() {
+ new x, y, w, w1, h;
+ get_geometry(PART:"elm.text.title", x, y, w, h);
+ get_geometry(PART:"title_text_clip", x, y, w1, h);
+ set_float(g_duration_1st, w * ACTIONBAR_TEX_SLIDING_SPEED);
+ set_float(g_duration_2nd, w1 * ACTIONBAR_TEX_SLIDING_SPEED);
+ }
+ }
+ parts {
+ part { name: "clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "hide" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "base";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "clipper";
+ description { state: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ }
+ part { name: "title_expand";
+ type: RECT;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "clipper";
+ description { state: "default" 0.0;
+ min: 0 HIDDEN_BUTTON_HEIGHT_INC;
+ max: -1 HIDDEN_BUTTON_HEIGHT_INC;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 { relative: 0.0 1.0; to_x: "base"; to_y: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to_x: "base"; to_y: "title_bg"; }
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ align: 0.5 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "title_clip";
+ type: RECT;
+ clip_to: "clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ }
+ description { state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "title_bg";
+ type: RECT;
+ scale: 1;
+ clip_to: "title_clip";
+ description { state: "default" 0.0;
+ min: 0 ACTIONBAR_HEIGHT_INC;
+ max: -1 ACTIONBAR_HEIGHT_INC;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: 255 255 255 0;
+ }
+ description { state: "hide_trans" 0.0;
+ inherit: "default" 0.0;
+ align: 0.5 1.0;
+ }
+ description { state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ max: -1 0;
+ }
+ }
+ part { name: "title_text_bg";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "left_padding"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "right_padding"; to_y: "bottom_padding"; }
+ fixed: 0 1;
+ }
+ }
+ part { name: "title_text_clip";
+ type: RECT;
+ scale: 1;
+ clip_to: "title_clip";
+ description { state: "default" 0.0;
+ rel1.to: "title_text_bg";
+ rel2.to: "title_text_bg";
+ }
+ }
+ part { name: "elm.text.title";
+ type: TEXTBLOCK;
+ scale: 1;
+ clip_to: "title_text_clip";
+ description { state: "default" 0.0;
+ text {
+ min: 0 1;
+ max: 1 1;
+ ellipsis: -1.0;
+// fade_ellipsis: 1.0;
+ style: "action_bar_title";
+ }
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "title_text_bg"; rel2.to: "title_text_bg";
+ }
+ description { state: "slide" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "left_padding";
+ to_y: "top_padding";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "left_padding";
+ to_y: "bottom_padding";
+ }
+ text.min: 1 1;
+ }
+ description { state: "slide_1" 0.0;
+ inherit: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "left_padding";
+ to_y: "top_padding";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "left_padding";
+ to_y: "bottom_padding";
+ }
+ text.min: 1 1;
+ }
+ description { state: "slide_2" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "right_padding";
+ to_y: "top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "right_padding";
+ to_y: "bottom_padding";
+ }
+ text.min: 1 1;
+ }
+ }
+ part { name: "left_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: ACTIONBAR_PADDING_SIZE_INC 0;
+ max: ACTIONBAR_PADDING_SIZE_INC -1;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ }
+ }
+ part { name: "right_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: ACTIONBAR_PADDING_SIZE_INC 0;
+ max: ACTIONBAR_PADDING_SIZE_INC -1;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ }
+ }
+ part { name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description { state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "top_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ min: 0 ACTIONBAR_TEXT_TOP_PADDING_SIZE_INC;
+ max: -1 ACTIONBAR_TEXT_TOP_PADDING_SIZE_INC;
+ rel1 {relative: 0.0 0.0; to: "title_bg"; }
+ rel2 {relative: 1.0 0.0; to: "title_bg"; }
+ }
+ }
+ part { name: "bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ min: 0 ACTIONBAR_TEXT_BOTTOM_PADDING_SIZE_INC;
+ max: -1 ACTIONBAR_TEXT_BOTTOM_PADDING_SIZE_INC;
+ rel1 {relative: 0.0 1.0; to: "title_bg"; }
+ rel2 {relative: 1.0 1.0; to: "title_bg"; }
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "clipper";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "base"; to_y: "title_expand"; }
+ rel2 { relative: 1.0 0.0; to_x: "base"; to_y: "button_padding"; }
+ }
+ }
+ part { name: "elm.swallow.circle_bg";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "clipper";
+ description { state: "default" 0.0; }
+ }
+ part { name: "elm.swallow.circle";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "clipper";
+ description { state: "default" 0.0; }
+ }
+ part { name: "button_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ min: 0 100;
+ max: -1 100;
+ rel1 {relative: 0.0 1.0; to: "base"; }
+ rel2 {relative: 1.0 1.0; to: "base"; }
+ }
+ }
+ }
+ programs {
+ program { name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ set_state(PART:"clipper", "default", 0.0);
+ init();
+ slide_start();
+ run_program(PROGRAM:"title_text_fade_out");
+ }
+ }
+ program { name: "invisible";
+ signal: "elm,state,invisible";
+ source: "elm";
+ script {
+ set_state(PART:"clipper", "hide", 0.0);
+ }
+ }
+ program { name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ script {
+ set_state(PART:"title_bg", "hide", 0.0);
+ set_state(PART:"title_clip", "hide", 0.0);
+ }
+ }
+ program { name: "title_hide_trans";
+ signal: "elm,action,title,hide";
+ source: "elm";
+ script {
+ new st[32];
+ new Float:vl;
+ get_state(PART:"title_bg", st, 32, vl);
+ if (!strcmp(st, "default")) {
+ run_program(PROGRAM:"title_hide_trans2");
+ }
+ }
+ }
+ program { name: "title_hide_trans2";
+ action: STATE_SET "hide_trans" 0.0;
+ target: "title_bg";
+ transition: SIN_FAC NAVIFRAME_TITLE_TRANS_TIME 1.7;
+ after: "title_hide_trans3";
+ }
+ program { name: "title_hide_trans3";
+ script {
+ run_program(PROGRAM:"title_hide");
+ }
+ after: "title_trans_finished";
+ }
+ program { name: "title_trans_finished";
+ action: SIGNAL_EMIT "elm,action,title,transition,finished" "";
+ }
+ program { name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ script {
+ set_state(PART:"title_bg", "default", 0.0);
+ set_state(PART:"title_clip", "default", 0.0);
+ run_program(PROGRAM:"title_text_fade_out");
+ }
+ }
+ program { name: "title_show_trans";
+ signal: "elm,action,title,show";
+ source: "elm";
+ script {
+ new st[32];
+ new Float:vl;
+ get_state(PART:"title_bg", st, 32, vl);
+ if (!strcmp(st, "hide")) {
+ set_state(PART:"title_bg", "hide_trans", 0.0);
+ set_state(PART:"title_clip", "default", 0.0);
+ run_program(PROGRAM:"title_show_trans2");
+ }
+ }
+ }
+ program { name: "title_show_trans2";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ transition: SIN_FAC NAVIFRAME_TITLE_TRANS_TIME 1.7;
+ after: "title_trans_finished";
+ }
+ program { name: "title_label_show";
+ signal: "elm,state,title_label,show";
+ source: "elm";
+ script {
+ run_program(PROGRAM:"title_text_fade_out");
+ }
+ }
+ program { name: "title_label_hide";
+ signal: "elm,state,title_label,hide";
+ source: "elm";
+ }
+ program { name: "title_expand_show";
+ signal: "elm,state,title_expand,show";
+ source: "";
+ script {
+ set_state(PART:"title_expand", "show", 0.0);
+ }
+ }
+ program { name: "title_expand_hide";
+ signal: "elm,state,title_expand,hide";
+ source: "";
+ script {
+ set_state(PART:"title_expand", "default", 0.0);
+ }
+ }
+ program { name: "hidden_btn_show_trans";
+ signal: "elm,action,title_expand,show";
+ source: "";
+ action: STATE_SET "show" 0.0;
+ target: "title_expand";
+ transition: SIN_FAC NAVIFRAME_TITLE_EXPAND_TRANS_TIME 1.7;
+ }
+ program { name: "title_expand_hide_trans";
+ signal: "elm,action,title_expand,hide";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "title_expand";
+ transition: SIN_FAC NAVIFRAME_TITLE_EXPAND_TRANS_TIME 1.7;
+ }
+ program { name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "mirrored_on";
+ signal: "edje,state,rtl";
+ source: "edje";
+ script {
+ set_int(g_mirrored, 1);
+ run_program(PROGRAM:"title_text_fade_out");
+ }
+ }
+ program {
+ name: "mirrored_off";
+ signal: "edje,state,ltr";
+ source: "edje";
+ script {
+ set_int(g_mirrored, 0);
+ run_program(PROGRAM:"title_text_fade_out");
+ }
+ }
+ program {
+ name: "title_text_fade_out";
+ script {
+ if (get_int(g_text_fade_out_calc_timer)) {
+ cancel_timer(g_text_fade_out_calc_timer);
+ set_int(g_text_fade_out_calc_timer, 0);
+ }
+ set_int(g_text_fade_out_calc_timer, timer(NAVIFRAME_TEXT_FADE_OUT_CALC_TIME, "title_text_fade_out", 0));
+ }
+ }
+ }
+}
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <vconf.h>
+#include <stdio.h>
+#include <Ecore.h>
+#include <dlog.h>
+#include <string.h>
+#include <app.h>
+#include <stt.h>
+#include <unistd.h>
+#include <efl_extension.h>
+
+#include "ise.h"
+#include "ise-stt-option.h"
+#include "ise-stt-engine.h"
+
+#define item_append(obj, style, index, cb, udata) \
+ elm_genlist_item_append(obj, &(style), (void *)index, NULL, ELM_GENLIST_ITEM_NONE, cb, udata)
+
+extern stt_h g_stt;
+static Evas_Object *radio_gp = NULL;
+Evas_Object *g_setting_naviframe = NULL;
+Evas_Object *g_setting_window = NULL;
+char *language = "en_US";
+
+static Elm_Genlist_Item_Class itc_title;
+static Elm_Genlist_Item_Class itc_1text;
+static Elm_Genlist_Item_Class itc_2text;
+
+const char* get_lang_label(char lang[]);
+static int get_language_value();
+static void set_language_value(int type);
+void _stt_lang_changed_cb(keynode_t *key, void* data);
+int is_lang_supported_by_stt(char lang[]);
+static char *__get_genlist_title_label(void *data, Evas_Object *obj, const char *part);
+char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__get_genlist_item_content(void *data, Evas_Object *obj, const char *part);
+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);
+
+const char *supported_language[7] = {
+ "auto",
+ "en_US",
+ "es_US",
+ "fr_FR",
+ "zh_CN",
+ "ja_JP",
+ "ko_KR",
+};
+
+const char *disp_lang_array[7] = {
+ "",
+ "English (United States)",
+ "Español (América Latina)",
+ "Français (France)",
+ "简体中文",
+ "日本語",
+ "한국어",
+};
+
+typedef enum {
+ STT_VOICE_N66_AUTO,
+ STT_VOICE_N66_EN_US,
+ STT_VOICE_N66_ES_US,
+ STT_VOICE_N66_FR_FR,
+ STT_VOICE_N66_ZH_CN,
+ STT_VOICE_N66_JA_JP,
+ STT_VOICE_N66_KO_KR
+} STT_VOICE_LANGUAGE_N66_I;
+
+const char* get_lang_label(char lang[])
+{
+ const char *str = NULL;
+
+ if (strcmp (lang, "en_US") == 0)
+ str = disp_lang_array[1];
+ else if (strcmp (lang, "ko_KR") == 0)
+ str = disp_lang_array[6];
+ else if (strcmp (lang, "fr_FR") == 0)
+ str = disp_lang_array[3];
+ else if (strcmp (lang, "ja_JP") == 0)
+ str = disp_lang_array[5];
+ else if (strcmp (lang, "zh_CN") == 0)
+ str = disp_lang_array[4];
+ else if (strcmp (lang, "es_US") == 0)
+ str = disp_lang_array[2];
+ else
+ str = disp_lang_array[1];
+
+ return str;
+}
+
+static int get_language_value()
+{
+#if 1
+ int lang = 0, ret = 0;
+
+ ret = preference_get_int(PREFERENCE_ISE_STT_LANGUAGE, &lang);
+ if (PREFERENCE_ERROR_NONE != ret){
+ LOGD("preference_get_int error!(%d)", ret);
+ preference_set_int(PREFERENCE_ISE_STT_LANGUAGE, (int)2); //auto
+ lang = 2;
+ }
+#else
+ int lang = 0, ret = 0;
+
+ ret = vconf_get_int(VCONFKEY_ISE_STT_LANGUAGE, &lang);
+ if (ret !=0) {
+ LOGD("Vconf_get_int error!(%d)", ret);
+ }
+#endif
+ if (lang < 0 || lang > 6) {
+ LOGD("vconf lang orig(%d) to be 0", lang);
+ lang = 0;
+ }
+ LOGD("n66 current language value for stt (%s).", disp_lang_array[lang]);
+
+ return lang;
+}
+
+static void set_language_value(int type)
+{
+ // Add implementation to store language type.
+ int ret = 0;
+
+#if 1
+ ret = preference_set_int(PREFERENCE_ISE_STT_LANGUAGE, (int)type);
+ if (PREFERENCE_ERROR_NONE != ret){
+ LOGD("preference_set_int error!(%d)", ret);
+ }
+
+#else
+ ret = vconf_set_int(VCONFKEY_ISE_STT_LANGUAGE, (int) type);
+ if (ret != 0) {
+ LOGD("Vconf_set_int error!(%d)", ret);
+ return;
+ }
+#endif
+ LOGD("language type (%d)", type);
+
+ // Update string
+}
+
+void _stt_lang_changed_cb(keynode_t *key, void* data)
+{
+ get_stt_default_language();
+ return;
+}
+
+int is_lang_supported_by_stt(char lang[])
+{
+ /* to check if the language is supported by stt */
+ int index;
+ for (index = (sizeof(supported_language) / sizeof(supported_language[0]))-1; index != 0; index--)
+ {
+ if (!strcmp(lang, supported_language[index])) {
+ LOGD("current lang supported (%s)", supported_language[index]);
+ return TRUE;
+ }
+ }
+
+ LOGD("current lang not supported (%s)", lang);
+
+ return FALSE;
+}
+
+char * get_stt_default_language()
+{
+ STT_VOICE_LANGUAGE_N66_I stt_lang;
+ stt_lang = (STT_VOICE_LANGUAGE_N66_I)get_language_value();
+ char *kbd_lang;
+
+ LOGD("language type (%d)", stt_lang);
+
+ switch(stt_lang) {
+ case STT_VOICE_N66_AUTO :
+ {
+ stt_get_default_language(g_stt, &kbd_lang);
+
+ // get system display language
+ char* value = NULL;
+ value = vconf_get_str(VCONFKEY_LANGSET);
+ if (NULL == value) {
+ LOGD("Fail to get display language");
+ return NULL;
+ }
+ LOGD("system language (%s)", value);
+
+ char system_lang[6] = {0, };
+ strncpy(system_lang, value , 5);
+ free(value);
+
+ // confirm whether the system language is supported by stt engine or not.
+ // if supported, set the language
+ // otherwise, set language to en_US
+ if (is_lang_supported_by_stt(system_lang) == TRUE) {
+ kbd_lang = strdup(system_lang);
+ LOGD("Set auto language (%s)", system_lang);
+ } else {
+ kbd_lang = strdup("en_US");
+ LOGD("System language is not supported by STT (%s), en_US will be set", system_lang);
+ }
+ }
+ break;
+ case STT_VOICE_N66_EN_US :
+ case STT_VOICE_N66_ES_US :
+ case STT_VOICE_N66_FR_FR :
+ case STT_VOICE_N66_JA_JP :
+ case STT_VOICE_N66_KO_KR :
+ case STT_VOICE_N66_ZH_CN :
+ {
+ kbd_lang = strdup(supported_language[stt_lang]);
+ }
+ break;
+ default :
+ kbd_lang = strdup("en_US");
+ break;
+ }
+
+ LOGD("stt language (%s)", kbd_lang);
+ language = strdup(kbd_lang);
+
+ return language;
+}
+
+static char *__get_genlist_title_label(void *data, Evas_Object *obj, const char *part)
+{
+ return strdup(_("IDS_VOICE_OPT_LANGUAGE_ABB"));
+}
+
+char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+ char text[128] = {0, };
+
+ if (!strcmp(part, "elm.text"))
+ {
+ if ((int)data == 0) {
+ return strdup(_("IDS_VC_BODY_AUTOMATIC"));
+ } else {
+ char *s = NULL;
+ s = (char *)disp_lang_array[(int)data];
+
+ if (s) {
+ char *p = strchr(s, '(');
+ if (p) {
+ strncpy(text, s, p-s);
+ } else {
+ strncpy(text, s, strlen(s));
+ }
+ } else {
+ strncpy(text, "", strlen(""));
+ }
+ }
+ return strdup(text);
+ } else if (!strcmp(part, "elm.text.1")) {
+ if ((int)data == 0) {
+ char* value = NULL;
+ value = vconf_get_str(VCONFKEY_LANGSET);
+ if (NULL == value) {
+ LOGD("Fail to get display language");
+ return NULL;
+ }
+ LOGD("system language (%s)", value);
+
+ char system_lang[6] = {0, };
+ strncpy(system_lang, value , 5);
+ free(value);
+
+ // confirm whether the system language is supported by stt engine or not.
+ // if supported, set the language
+ // otherwise, set language to en_US
+ return strdup(get_lang_label(system_lang));
+
+ } else {
+ char *s = NULL;
+ s = (char *)disp_lang_array[(int)data];
+
+ if (s) {
+ char *p = strchr(s, '(');
+ if (p) {
+ strncpy(text, p+1, strlen(s)-(p-s)-2);
+ } else {
+ strncpy(text, s, strlen(s));
+ }
+ } else {
+ strncpy(text, "", strlen(""));
+ }
+ return strdup(text);
+ }
+ }
+ return NULL;
+}
+
+static Evas_Object *__get_genlist_item_content(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)data;
+ Evas_Object * content = NULL;
+
+ if (!strcmp(part, "elm.icon")) {
+ content = elm_radio_add(obj);
+ elm_radio_state_value_set(content, index);
+ elm_radio_group_add(content, radio_gp);
+ evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_propagate_events_set(content, EINA_TRUE);
+ evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_style_set(content, "list");
+ }
+ return content;
+}
+
+static void language_set_genlist_radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (!data) return;
+
+ int index = 0;
+
+ Elm_Object_Item * item = (Elm_Object_Item *) event_info;
+ if (item) {
+ elm_genlist_item_selected_set(item, 0);
+ index = (int)elm_object_item_data_get(item);
+ elm_genlist_item_update(item);
+ }
+ set_language_value(index);
+
+ elm_radio_value_set(radio_gp, index);
+ ecore_timer_add(0.3, close_setting_window_idler_cb, NULL);
+}
+
+static void close_setting_window()
+{
+ elm_naviframe_item_pop(g_setting_naviframe);
+ g_setting_naviframe = NULL;
+ evas_object_del(g_setting_window);
+ g_setting_window = NULL;
+ vconf_ignore_key_changed(VCONFKEY_ISE_STT_LANGUAGE, _stt_lang_changed_cb);
+}
+
+static Eina_Bool close_setting_window_idler_cb(void *data)
+{
+ LOGD("close_setting_window_idler_cb");
+ close_setting_window();
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void _naviframe_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *top_it = elm_naviframe_top_item_get(obj);
+ Elm_Object_Item *bottom_it = elm_naviframe_bottom_item_get(obj);
+ if (top_it && bottom_it &&
+ (elm_object_item_content_get(top_it) == elm_object_item_content_get(bottom_it))) {
+ close_setting_window();
+ } else {
+ elm_naviframe_item_pop(obj);
+ }
+}
+
+static void language_changed_cb2(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ if (!obj) return;
+ elm_genlist_realized_items_update(obj);
+}
+
+static Evas_Object *create_language_list(Evas_Object *parent)
+{
+ if (!parent) return NULL;
+
+ Evas_Object *genlist = elm_genlist_add(parent);
+ if (!genlist) return NULL;
+
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+#ifdef _CIRCLE
+ Evas_Object *circle_language_genlist = eext_circle_object_genlist_add(genlist, NULL);
+ eext_circle_object_genlist_scroller_policy_set(circle_language_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+ evas_object_resize(circle_language_genlist, 360, 360);
+ evas_object_show(circle_language_genlist);
+ eext_rotary_object_event_activated_set(circle_language_genlist, EINA_TRUE);
+#else
+ evas_object_show(genlist);
+#endif
+ int i = 0;
+ int lang_val = 0;
+ Elm_Object_Item * item = NULL;
+
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ radio_gp = elm_radio_add(genlist);
+ elm_radio_state_value_set(radio_gp, -1);
+
+ lang_val = get_language_value();
+
+ //Title
+ itc_title.item_style = "title";
+ itc_title.func.text_get = __get_genlist_title_label;
+ itc_title.func.content_get = NULL;
+
+ elm_genlist_item_append(genlist, &itc_title, (void *)-1, NULL, ELM_GENLIST_ITEM_GROUP, NULL, genlist);
+
+ // 2 line text
+#ifdef _WEARABLE
+ itc_2text.item_style = "2text.1icon.1/sub1.multiline";
+#else
+ itc_2text.item_style = "type1";
+#endif
+ itc_2text.func.text_get = __get_genlist_item_label;
+ itc_2text.func.content_get = __get_genlist_item_content;
+
+
+ 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);
+ }
+
+ if ( item == NULL ) {
+ LOGD("elm_genlist_item_append was failed");
+ }
+
+ // 1 line text
+#ifdef _WEARABLE
+ itc_1text.item_style = "1text.1icon.1";
+#else
+ itc_1text.item_style = "type1";
+#endif
+ itc_1text.func.text_get = __get_genlist_item_label;
+ itc_1text.func.content_get = __get_genlist_item_content;
+
+ for (i = 1; i < 7; i++)
+ {
+ char *s = (char *)disp_lang_array[i];
+
+ if (strchr(s, '(')){
+ item = item_append(genlist, itc_1text, i, language_set_genlist_radio_cb, genlist);
+ } else {
+ item = item_append(genlist, itc_1text, i, language_set_genlist_radio_cb, genlist);
+ }
+
+ if (lang_val == i) {
+ LOGD("%d item is choiced.", i);
+ elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ }
+
+ if ( item == NULL ) {
+ LOGD("elm_genlist_item_append was failed");
+ break;
+ }
+ }
+ Elm_Object_Item *dummy;
+ Elm_Genlist_Item_Class *itc_dummy = elm_genlist_item_class_new();
+ itc_dummy->item_style = "title";
+ itc_dummy->func.text_get = NULL;
+ itc_dummy->func.content_get = NULL;
+ dummy = elm_genlist_item_append(genlist, itc_dummy, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(dummy, ELM_OBJECT_SELECT_MODE_NONE);
+
+ LOGD("before elm_radio_value_set > lang_val = %d", lang_val);
+ radio_gp = elm_radio_add(genlist);
+ elm_radio_state_value_set(radio_gp, lang_val);
+ elm_radio_value_set(radio_gp, lang_val);
+
+ elm_object_signal_callback_add(genlist, "elm,system,language,change", "elm", language_changed_cb2, NULL);
+
+ return genlist;
+}
+
+void create_setting_window()
+{
+ ise_stt_finish();
+
+ Evas_Object *window = NULL;
+ Evas_Object *layout = NULL;
+ Evas_Object *genlist = NULL;
+ Evas_Object *naviframe = NULL;
+
+ window = elm_win_add(NULL, "voice-input-setting", ELM_WIN_BASIC);
+ if (!window) {
+ LOGD("it's fail to create window.");
+ return;
+ }
+
+ elm_win_indicator_mode_set(window, ELM_WIN_INDICATOR_HIDE);
+
+ layout = elm_layout_add(window);
+ if (layout) {
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(layout);
+ elm_win_resize_object_add(window, layout);
+ }
+
+ elm_win_activate(window);
+ evas_object_show(window);
+
+ naviframe = elm_naviframe_add(layout);
+ if (naviframe == NULL){
+ LOGD("create navi_frame failed");
+ }
+
+ eext_object_event_callback_add(naviframe, EEXT_CALLBACK_BACK, _naviframe_back_cb, NULL);
+
+ elm_object_part_content_set(layout, "elm.swallow.content", naviframe);
+
+ genlist = create_language_list(naviframe);
+
+ elm_naviframe_item_push(naviframe, NULL, NULL, NULL, genlist, "empty");
+
+ g_setting_naviframe = naviframe;
+ g_setting_window = window;
+}
+