Add Help Guideline Feature 03/117203/6
authorliuxd <xd123.liu@samsung.com>
Fri, 3 Mar 2017 07:38:48 +0000 (16:38 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Tue, 7 Mar 2017 08:14:16 +0000 (17:14 +0900)
Change-Id: Iea8a84e4db52ca8cd1b62657767238f41239fbac

48 files changed:
CMakeLists.txt
data/edc/customised_ctxpopup.edc [new file with mode: 0644]
edje/mobile/images/ctxpopup/B31_help_popup_picker_bg.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/B31_help_popup_picker_bottom.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/B31_help_popup_picker_left.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/B31_help_popup_picker_right.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/B31_help_popup_picker_top.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/btn_bubble_tail.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/language_change_popup_bg.png [new file with mode: 0644]
edje/mobile/images/ctxpopup/popup_stroke_customized.#.png [new file with mode: 0644]
po/ar.po
po/as.po
po/az.po
po/be_BY.po
po/bn.po
po/bn_BD.po
po/en.po
po/en_US.po
po/fr.po
po/gu.po
po/hi.po
po/hy.po
po/id.po
po/ka.po
po/kk.po
po/kn.po
po/ko_KR.po
po/ky_KG.po
po/ml.po
po/mn_MN.po
po/mr.po
po/ms.po
po/ne.po
po/or.po
po/pa.po
po/ru_RU.po
po/si.po
po/ta.po
po/te.po
po/tg_TJ.po
po/tk_TM.po
po/uk.po
po/ur.po
po/uz.po
po/zh_CN.po
src/config.cpp
src/include/config.h
src/ise.cpp

index f26a4b9..18fb0bb 100644 (file)
@@ -134,6 +134,15 @@ ADD_CUSTOM_TARGET(
 ADD_DEPENDENCIES(${PROJECT_NAME} layout_keypad.edj)
 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout_keypad.edj DESTINATION ${ISE_RESDIR}/edje)
 
+ADD_CUSTOM_TARGET( customised_ctxpopup.edj COMMAND edje_cc
+        -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile
+        -sd ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile
+        ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/customised_ctxpopup.edc
+        ${CMAKE_BINARY_DIR}/customised_ctxpopup.edj
+        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/customised_ctxpopup.edc)
+ADD_DEPENDENCIES(${PROJECT_NAME} customised_ctxpopup.edj)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/customised_ctxpopup.edj DESTINATION ${ISE_RESDIR}/edje/mobile)
+
 if(${TARGET} STREQUAL "wearable")
 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
diff --git a/data/edc/customised_ctxpopup.edc b/data/edc/customised_ctxpopup.edc
new file mode 100644 (file)
index 0000000..36ccbfe
--- /dev/null
@@ -0,0 +1,927 @@
+/*
+ * Copyright (c) 2011 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.
+ *
+ */
+
+///////////////////////////////////////////////////////////////////////////////////////
+//
+// customised ctxpopup
+//
+///////////////////////////////////////////////////////////////////////////////////////
+
+
+#define CTXPOPUP_SHADOW_LEFT_PADDING               7
+#define CTXPOPUP_SHADOW_RIGHT_PADDING              7
+#define CTXPOPUP_SHADOW_LEFT_PADDING_LANDSCAPE    80
+#define CTXPOPUP_SHADOW_RIGHT_PADDING_LANDSCAPE   80
+#define CTXPOPUP_SHADOW_TOP_PADDING                9
+#define CTXPOPUP_SHADOW_BOTTOM_PADDING             9
+
+#define CTXPOPUP_CONTENT_LEFT_PADDING_WIDTH       42
+#define CTXPOPUP_CONTENT_LEFT_PADDING_HEIGHT       9
+#define CTXPOPUP_CONTENT_RIGHT_PADDING_WIDTH      42
+#define CTXPOPUP_CONTENT_RIGHT_PADDING_HEIGHT      9
+
+#define CTXPOPUP_ICON_ITEM_HORIZONTAL_WIDTH_INC  112
+#define CTXPOPUP_ITEM_TEXT_PADDING_INC            20
+#define CTXPOPUP_MOVE_PAD_INC                     40
+#define CTXPOPUP_SHADOW_PADDING                   10
+#define CTXPOPUP_LIST_PADDING                     10
+#define CTXPOPUP_LIST_SHADOW_PADDING               3
+#define CTXPOPUP_ARROW_PADDING                     1
+#define CTXPOPUP_FRAME_CORNER_ARROW_PADDING       13
+
+#define CTXPOPUP_FRAME_CORNER_SIZE              4  4
+#define CTXPOPUP_ARROW_SIZE_INC                34 24
+#define CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC         1
+#define CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC          40
+#define CTXPOPUP_LIST_MAIN_TEXT_MAX_SIZE_INC      (CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC * 2)
+
+#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER               24 24 24 24
+#define CTXPOPUP_BUBBLE_BG_PRESSED_IMAGE_BORDER        8  8  8  8
+
+#define CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC           0   0   0 255
+#define CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC     128 131 133 255
+#define CTXPOPUP_LIST_MAIN_TEXT_PRESS_COLOR_INC   250 250 250 255
+#define CTXPOPUP_SEPARATOR_COLOR_INC              105 108 112 255
+#define CTXPOPUP_ITEM_DISABLED_COLOR                0   0   0   0
+#define CTXPOPUP_FONT_COLOR                         0   0   0 255
+#define CTXPOPUP_CLICKED_FONT_COLOR               255 255 255 255
+
+
+collections {
+    base_scale: 1.6;
+
+//========================================================================
+group {
+    name: "elm/ctxpopup/layout/customised_guideline_popup";
+    alias: "elm/ctxpopup/layout/customised_guideline_popup_landscape";
+    parts {
+        part {
+            name: "top_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: 0 CTXPOPUP_MOVE_PAD_INC;
+                fixed: 0 1;
+                align: 0.5 0.0;
+                rel1.relative: 0.0 0.0;
+                rel2.relative: 1.0 0.0;
+            }
+            description {
+                state: "show_up" 0.0;
+                inherit: "default" 0.0;
+            }
+            description {
+                state: "visible" 0.0;
+                inherit: "default" 0.0;
+                min: 0 0;
+            }
+        }
+        part {
+            name: "bottom_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: 0 CTXPOPUP_MOVE_PAD_INC;
+                fixed: 0 1;
+                align: 0.5 1.0;
+                rel1.relative: 0.0 1.0;
+                rel2.relative: 1.0 1.0;
+            }
+            description {
+                state: "show_down" 0.0;
+                inherit: "default" 0.0;
+            }
+            description {
+                state: "visible" 0.0;
+                inherit: "default" 0.0;
+                min: 0 0;
+            }
+        }
+        part {
+            name: "left_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_MOVE_PAD_INC 0;
+                fixed: 1 0;
+                align: 0.0 0.5;
+                rel1.relative: 0.0 0.0;
+                rel2.relative: 0.0 1.0;
+            }
+            description {
+                state: "show_left" 0.0;
+                inherit: "default" 0.0;
+            }
+            description {
+                state: "visible" 0.0;
+                inherit: "default" 0.0;
+                min: 0 0;
+            }
+        }
+        part {
+            name: "right_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_MOVE_PAD_INC 0;
+                fixed: 1 0;
+                align: 1 0.5;
+                rel1.relative: 1.0 0.0;
+                rel2.relative: 1.0 1.0;
+            }
+            description {
+                state: "show_right" 0.0;
+                inherit: "default" 0.0;
+            }
+            description {
+                state: "visible" 0.0;
+                inherit: "default" 0.0;
+                min: 0 0;
+            }
+        }
+        part {
+            name: "swallow";
+            type: SWALLOW;
+            clip_to: "layout_clip";
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                visible: 0;
+            }
+            description {
+                state: "show_up" 0.0;
+                rel1 {to_x:"left_padding"; to_y:"top_padding"; relative: 1.0 1.0;}
+                rel2 {to_x:"right_padding"; to_y:"top_padding"; relative: 0.0 1.0;}
+                align: 0.5 0.0;
+            }
+            description {
+                state: "show_down" 0.0;
+                rel1 {to_x:"left_padding"; to_y:"bottom_padding"; relative: 1.0 0.0;}
+                rel2 {to_x:"right_padding"; to_y:"bottom_padding"; relative: 0.0 0.0;}
+                align: 0.5 1.0;
+            }
+            description {
+                state: "show_left" 0.0;
+                rel1 {to_x:"left_padding"; to_y:"top_padding"; relative: 1.0 1.0;}
+                rel2 {to_x:"left_padding"; to_y:"bottom_padding"; relative: 1.0 0.0;}
+                align: 0.0 0.5;
+            }
+            description {
+                state: "show_right" 0.0;
+                rel1 {to_x:"right_padding"; to_y:"top_padding"; relative: 0.0 1.0;}
+                rel2 {to_x:"right_padding"; to_y:"bottom_padding"; relative: 0.0 0.0;}
+                align: 1.0 0.5;
+            }
+        }
+        part {
+            name: "event_blocker";
+            type: RECT;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                visible: 1;
+                color: 0 0 0 0;
+            }
+            description {
+                state: "visible" 0.0;
+                inherit: "default" 0.0;
+                visible: 0;
+            }
+        }
+        part {
+            name: "layout_clip";
+            type: RECT;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                color: 255 255 255 255;
+                rel1 {to: "swallow"; relative: -0.2 -0.2;}
+                rel2 {to: "swallow"; relative: 1.2 1.2;}
+            }
+            description {
+                state: "visible" 0.0;
+                inherit: "default" 0.0;
+                color: 255 255 255 255;
+            }
+        }
+    }
+    programs {
+        program {
+            name: "showup";
+            signal: "elm,state,show,up";
+            source: "elm";
+            script {
+                new st[31];
+                new Float:vl;
+                get_state(PART:"swallow", st, 30, vl);
+                if (strcmp(st, "show_up")) {
+                    set_state(PART:"swallow", "show_up", 0.0);
+                    set_state(PART:"top_padding", "show_up", 0.0);
+                }
+            }
+            after: "showupend";
+        }
+        program {
+            name: "showdown";
+            signal: "elm,state,show,down";
+            source: "elm";
+            script {
+                new st[31];
+                new Float:vl;
+                get_state(PART:"swallow", st, 30, vl);
+                if (strcmp(st, "show_down")) {
+                    set_state(PART:"swallow", "show_down", 0.0);
+                    set_state(PART:"bottom_padding", "show_down", 0.0);
+                }
+            }
+            after: "showdownend";
+        }
+        program {
+            name: "showleft";
+            signal: "elm,state,show,left";
+            source: "elm";
+            script {
+                new st[31];
+                new Float:vl;
+                get_state(PART:"swallow", st, 30, vl);
+                if (strcmp(st, "show_left")) {
+                    set_state(PART:"swallow", "show_left", 0.0);
+                    set_state(PART:"left_padding", "show_left", 0.0);
+                }
+            }
+            after: "showleftend";
+        }
+        program {
+            name: "showright";
+            signal: "elm,state,show,right";
+            source: "elm";
+            script {
+                new st[31];
+                new Float:vl;
+                get_state(PART:"swallow", st, 30, vl);
+                if (strcmp(st, "show_right")) {
+                    set_state(PART:"swallow", "show_right", 0.0);
+                    set_state(PART:"right_padding", "show_right", 0.0);
+                }
+            }
+            after: "showrightend";
+        }
+        program {
+            name: "show_clip_blocker";
+            signal: "elm,state,show,*";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            transition: SIN_FAC 0.25 0.5;
+            target: "layout_clip";
+            target: "event_blocker";
+        }
+        program {
+            name: "showupend";
+            action: STATE_SET "visible" 0.0;
+            transition: SIN_FAC 0.25 1.7;
+            target: "top_padding";
+        }
+        program {
+            name: "showdownend";
+            action: STATE_SET "visible" 0.0;
+            transition: SIN_FAC 0.25 1.7;
+            target: "bottom_padding";
+        }
+        program {
+            name: "showleftend";
+            action: STATE_SET "visible" 0.0;
+            transition: SIN_FAC 0.25 1.7;
+            target: "left_padding";
+        }
+        program {
+            name: "showrightend";
+            action: STATE_SET "visible" 0.0;
+            transition: SIN_FAC 0.25 1.7;
+            target: "right_padding";
+        }
+        program {
+            name: "hideup";
+            signal: "elm,state,hide,up";
+            source: "elm";
+            action: STATE_SET "show_up" 0.0;
+            target: "swallow";
+            target: "top_padding";
+            transition: SIN_FAC 0.13 1.1;
+            after: "be_default";
+        }
+        program {
+            name: "hidedown";
+            signal: "elm,state,hide,down";
+            source: "elm";
+            action: STATE_SET "show_down" 0.0;
+            target: "swallow";
+            target: "bottom_padding";
+            transition: SIN_FAC 0.13 1.1;
+            after: "be_default";
+        }
+        program {
+            name: "hideleft";
+            signal: "elm,state,hide,left";
+            source: "elm";
+            action: STATE_SET "show_left" 0.0;
+            target: "swallow";
+            target: "left_padding";
+            transition: SIN_FAC 0.13 1.1;
+            after: "be_default";
+        }
+        program {
+            name: "hideright";
+            signal: "elm,state,hide,right";
+            source: "elm";
+            action: STATE_SET "show_right" 0.0;
+            target: "swallow";
+            target: "right_padding";
+            transition: SIN_FAC 0.13 1.1;
+            after: "be_default";
+        }
+        program {
+            name: "hide_clip";
+            signal: "elm,state,hide,*";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "layout_clip";
+            transition: SIN_FAC 0.13 0.5;
+            after: "be_default";
+        }
+        program {
+            name: "hide_event_blocker";
+            signal: "elm,state,hide,*";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "event_blocker";
+        }
+        program {
+            name: "be_default";
+            action: STATE_SET "default" 0.0;
+            target: "swallow";
+            target: "top_padding";
+            target: "bottom_padding";
+            target: "left_padding";
+            target: "right_padding";
+            after: "hidefinished";
+        }
+        program {
+            name: "hidefinished";
+            action: SIGNAL_EMIT "elm,action,hide,finished" "";
+        }
+    }
+}
+
+
+group {
+   name: "elm/ctxpopup/layout/landscape/customised_guideline_popup";
+   alias: "elm/ctxpopup/layout/landscape/customised_guideline_popup_landscape";
+   inherit: "elm/ctxpopup/layout/customised_guideline_popup";
+
+//   data.item: "visible_maxw" CTXPOPUP_WIDTH_INC;
+}
+
+//========================================================================
+group {
+    name: "elm/ctxpopup/base/customised_guideline_popup";
+    images {
+        image : "images/ctxpopup/popup_stroke_customized.#.png" COMP;
+    }
+    parts {
+        part {
+            name:"frame_shadow_left_top_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_SHADOW_LEFT_PADDING CTXPOPUP_SHADOW_TOP_PADDING;
+                max: CTXPOPUP_SHADOW_LEFT_PADDING CTXPOPUP_SHADOW_TOP_PADDING;
+                rel2 { relative: 0 0; }
+                align: 0 0;
+                fixed: 1 1;
+            }
+        }
+        part {
+            name:"frame_shadow_right_bottom_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_SHADOW_RIGHT_PADDING CTXPOPUP_SHADOW_BOTTOM_PADDING;
+                max: CTXPOPUP_SHADOW_RIGHT_PADDING CTXPOPUP_SHADOW_BOTTOM_PADDING;
+                rel1{relative: 1 1;}
+                align: 1 1;
+                fixed: 1 1;
+            }
+        }
+        part {
+            name: "frame_bg";
+            type: IMAGE;
+            scale: 1;
+            mouse_events: 0;
+            description {
+                state: "default" 0.0;
+                rel1 { relative: 1.0 1.0; to:"frame_shadow_left_top_padding";}
+                rel2 { relative: 0.0 0.0;  to:"frame_shadow_right_bottom_padding"; }
+                min: (CTXPOPUP_ICON_ITEM_HORIZONTAL_WIDTH_INC + CTXPOPUP_SHADOW_LEFT_PADDING + CTXPOPUP_SHADOW_RIGHT_PADDING) 0;
+                image {
+                    normal: "images/ctxpopup/popup_stroke_customized.#.png";
+                }
+            }
+        }
+        part {
+            name: "access.outline";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+                fixed: 1 1;
+                rel1.to: "frame_bg";
+                rel2.to: "frame_bg";
+                color: 0 0 0 0;
+            }
+        }
+        part {
+            name: "arrow_area_left";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 1 0.5;
+                rel1 {
+                    relative: 1 1;
+                    to_x:"arrow_left_top_padding";
+                    to_y: "ctxpopup_frame_left_top";
+                }
+                rel2 {
+                    relative: 1 0;
+                    to_x:"arrow_left_top_padding";
+                    to_y:"ctxpopup_frame_right_bottom";
+                }
+            }
+        }
+        part {
+            name: "arrow_area_right";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 0 0.5;
+                rel1 {
+                    relative: 0 1;
+                    to_x:"arrow_right_bottom_padding";
+                    to_y:"ctxpopup_frame_left_top";
+                }
+                rel2 {
+                    relative: 0 0;
+                    to_x:"arrow_right_bottom_padding";
+                    to_y: "ctxpopup_frame_right_bottom";
+                }
+            }
+        }
+        part {
+            name: "arrow_area_up";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 0.5 1;
+                rel1 {
+                    relative: 1 1;
+                    to_x: "ctxpopup_frame_left_top";
+                    to_y: "arrow_left_top_padding";
+                }
+                rel2 {
+                    relative: 0 1;
+                    to_x:"ctxpopup_frame_right_bottom";
+                    to_y: "arrow_left_top_padding";
+                }
+            }
+        }
+        part {
+            name: "arrow_area_down";
+            type: SPACER;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 0.5 0;
+                rel1 {
+                    relative: 1 1;
+                    to_x:"ctxpopup_frame_left_top";
+                    to_y:"frame_bg";
+                    offset: 0 -2;
+                }
+                rel2 {
+                    relative: 0 1;
+                    to_x: "ctxpopup_frame_right_bottom";
+                    to_y:"frame_bg";
+                    offset: 0 -2;
+                }
+            }
+        }
+        part {
+            name: "elm.swallow.arrow_up";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            dragable {
+                x: 1 1 0;
+                y: 1 1 0;
+                confine: "arrow_area_up";
+            }
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                visible: 1;
+            }
+        }
+        part {
+            name: "elm.swallow.arrow_down";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            dragable {
+                x: 1 1 0;
+                y: 1 1 0;
+                confine: "arrow_area_down";
+            }
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                visible: 1;
+            }
+        }
+        part {
+            name: "elm.swallow.arrow_left";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            dragable {
+                x: 1 1 0;
+                y: 1 1 0;
+                confine: "arrow_area_left";
+            }
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                visible: 1;
+            }
+        }
+        part {
+            name: "elm.swallow.arrow_right";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            dragable {
+                x: 1 1 0;
+                y: 1 1 0;
+                confine: "arrow_area_right";
+            }
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                visible: 1;
+            }
+        }
+        part {
+            name: "ctxpopup_frame_left_top";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                align: 0 0;
+                fixed: 1 1;
+                min: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                max: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                rel1 {
+                    relative: 1 1;
+                    to: "frame_shadow_left_top_padding";
+                }
+            }
+        }
+        part {
+            name: "ctxpopup_frame_right_bottom";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                align: 1 1;
+                fixed: 1 1;
+                min: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                max: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                rel2 {
+                    relative: 0 0;
+                    to: "frame_shadow_right_bottom_padding";
+                }
+            }
+        }
+        part {
+            name:"content_left_top_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_CONTENT_LEFT_PADDING_WIDTH CTXPOPUP_CONTENT_LEFT_PADDING_HEIGHT;
+                max: CTXPOPUP_CONTENT_LEFT_PADDING_WIDTH CTXPOPUP_CONTENT_LEFT_PADDING_HEIGHT;
+                rel1 {
+                    to:"frame_shadow_left_top_padding";
+                    relative: 1.0 1.0;
+                }
+                align: 0 0;
+                fixed: 1 1;
+            }
+        }
+        part {
+            name:"content_right_bottom_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_CONTENT_RIGHT_PADDING_WIDTH CTXPOPUP_CONTENT_RIGHT_PADDING_HEIGHT;
+                max: CTXPOPUP_CONTENT_RIGHT_PADDING_WIDTH CTXPOPUP_CONTENT_RIGHT_PADDING_HEIGHT;
+                rel2 {
+                    to:"frame_shadow_right_bottom_padding";
+                    relative: 0.0 0.0;
+                }
+                align: 1 1;
+                fixed: 1 1;
+            }
+        }
+        part {
+            name: "arrow_left_top_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_PADDING CTXPOPUP_ARROW_PADDING;
+                max: CTXPOPUP_ARROW_PADDING CTXPOPUP_ARROW_PADDING;
+                rel1 {
+                    to:"frame_shadow_left_top_padding";
+                    relative: 1.0 1.0;
+                }
+                align: 0 0;
+            }
+        }
+        part {
+            name: "arrow_right_bottom_padding";
+            type: SPACER;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_PADDING CTXPOPUP_ARROW_PADDING;
+                max: CTXPOPUP_ARROW_PADDING CTXPOPUP_ARROW_PADDING;
+                rel2 {
+                    to:"frame_shadow_right_bottom_padding";
+                    relative: 0.0 0.0;
+                }
+                align: 1 1;
+            }
+        }
+        part {
+            name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                align: 0 0;
+                rel1 {
+                    to:"content_left_top_padding";
+                    relative: 1.0 1.0;
+                }
+                rel2 {
+                    to:"content_right_bottom_padding";
+                    relative: 0.0 0.0;
+                }
+            }
+        }
+    }
+}
+
+//========================================================================
+group {
+    name: "elm/ctxpopup/arrow/customised_guideline_popup";
+    alias: "elm/ctxpopup/arrow/customised_guideline_popup_landscape";
+    images {
+        image: "images/ctxpopup/B31_help_popup_picker_left.png" COMP;
+        image: "images/ctxpopup/B31_help_popup_picker_right.png" COMP;
+        image: "images/ctxpopup/B31_help_popup_picker_top.png" COMP;
+        image: "images/ctxpopup/B31_help_popup_picker_bottom.png" COMP;
+        image: "images/ctxpopup/btn_bubble_tail.png" COMP;
+    }
+    parts {
+        part {
+            name: "ctxpopup_arrow";
+            type: IMAGE;
+            scale: 1;
+            description {
+                state: "default" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                max: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                visible: 1;
+                align: 0.5 0.5;
+            }
+            description {
+                state: "left" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                max: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 1.0 0.5;
+                image {
+                    normal: "images/ctxpopup/B31_help_popup_picker_left.png";
+                }
+            }
+            description {
+                state: "right" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                max: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 0.0 0.5;
+                image {
+                    normal: "images/ctxpopup/B31_help_popup_picker_right.png";
+                }
+            }
+            description {
+                state: "top" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                max: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 0.5 1.0;
+                image {
+                    normal: "images/ctxpopup/B31_help_popup_picker_top.png";
+                }
+            }
+            description {
+                state: "bottom" 0.0;
+                min: CTXPOPUP_ARROW_SIZE_INC;
+                max: CTXPOPUP_ARROW_SIZE_INC;
+                fixed: 1 1;
+                align: 0.5 0.0;
+                image {
+//                    normal: "images/ctxpopup/B31_help_popup_picker_bottom.png";
+                    normal: "images/ctxpopup/btn_bubble_tail.png";
+                }
+            }
+        }
+    }
+    programs {
+        program {
+            name: "enable_left_arrow";
+            signal: "elm,state,left";
+            source: "elm";
+            action: STATE_SET "left" 0.0;
+            target: "ctxpopup_arrow";
+        }
+        program {
+            name: "enable_right_arrow";
+            signal: "elm,state,right";
+            source: "elm";
+            action: STATE_SET "right" 0.0;
+            target: "ctxpopup_arrow";
+        }
+        program {
+            name: "enable_top_arrow";
+            signal: "elm,state,top";
+            source: "elm";
+            action: STATE_SET "top" 0.0;
+            target: "ctxpopup_arrow";
+        }
+        program {
+            name: "enable_bottom_arrow";
+            signal: "elm,state,bottom";
+            source: "elm";
+            action: STATE_SET "bottom" 0.0;
+            target: "ctxpopup_arrow";
+        }
+    }
+}
+
+group {
+   name: "elm/ctxpopup/bg/customised_guideline_popup";
+   alias: "elm/ctxpopup/bg/customised_guideline_popup_landscape";
+   parts {
+      part {
+         name: "bg";
+         type: RECT;
+         scale: 1;
+         mouse_events: 1;
+         description {
+            state: "default" 0.0;
+            visible: 0;
+            color: 0 0 0 77;
+         }
+         description {
+            state: "visible" 0.0;
+            inherit: "default" 0.0;
+            align: 0.0 0.0;
+            visible: 1;
+         }
+      }
+      part {
+         name: "event_blocker";
+         type: RECT;
+         description {
+            state: "default" 0.0;
+            color: 0 0 0 0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            visible: 1;
+         }
+         description {
+            state: "visible" 0.0;
+            visible: 0;
+         }
+      }
+   }
+   programs {
+      program {
+         name: "transition_finished";
+         in: 0.3 0.0;
+         action: STATE_SET "visible" 0.0;
+         target: "event_blocker";
+      }
+      program {
+         name: "clicked_event";
+         signal: "mouse,clicked,1";
+         source: "bg";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program {
+         name: "show";
+         signal: "elm,state,show";
+         source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "bg";
+         after:"transition_finished";
+      }
+      program {
+         name: "hide";
+         signal: "elm,state,hide";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "bg";
+      }
+   }
+}
+
+//////////////////////////////////////////////////////////////////////////
+group {
+    name: "elm/ctxpopup/base/customised_guideline_popup_landscape";
+    inherit: "elm/ctxpopup/base/customised_guideline_popup";
+
+    parts {
+    part {
+        name:"frame_shadow_left_top_padding";
+        type: SPACER;
+        scale: 1;
+        description {
+            state: "default" 0.0;
+            min: CTXPOPUP_SHADOW_LEFT_PADDING_LANDSCAPE CTXPOPUP_SHADOW_TOP_PADDING;
+            max: CTXPOPUP_SHADOW_LEFT_PADDING_LANDSCAPE CTXPOPUP_SHADOW_TOP_PADDING;
+            rel2 { relative: 0 0; }
+            align: 0 0;
+            fixed: 1 1;
+        }
+    }
+    part {
+        name:"frame_shadow_right_bottom_padding";
+        type: SPACER;
+        scale: 1;
+        description {
+            state: "default" 0.0;
+            min: CTXPOPUP_SHADOW_RIGHT_PADDING_LANDSCAPE CTXPOPUP_SHADOW_BOTTOM_PADDING;
+            max: CTXPOPUP_SHADOW_RIGHT_PADDING_LANDSCAPE CTXPOPUP_SHADOW_BOTTOM_PADDING;
+            rel1{relative: 1 1;}
+            align: 1 1;
+            fixed: 1 1;
+        }
+    }
+   }
+}
+
+}
\ No newline at end of file
diff --git a/edje/mobile/images/ctxpopup/B31_help_popup_picker_bg.png b/edje/mobile/images/ctxpopup/B31_help_popup_picker_bg.png
new file mode 100644 (file)
index 0000000..fafe5ea
Binary files /dev/null and b/edje/mobile/images/ctxpopup/B31_help_popup_picker_bg.png differ
diff --git a/edje/mobile/images/ctxpopup/B31_help_popup_picker_bottom.png b/edje/mobile/images/ctxpopup/B31_help_popup_picker_bottom.png
new file mode 100644 (file)
index 0000000..32f84e7
Binary files /dev/null and b/edje/mobile/images/ctxpopup/B31_help_popup_picker_bottom.png differ
diff --git a/edje/mobile/images/ctxpopup/B31_help_popup_picker_left.png b/edje/mobile/images/ctxpopup/B31_help_popup_picker_left.png
new file mode 100644 (file)
index 0000000..da8a683
Binary files /dev/null and b/edje/mobile/images/ctxpopup/B31_help_popup_picker_left.png differ
diff --git a/edje/mobile/images/ctxpopup/B31_help_popup_picker_right.png b/edje/mobile/images/ctxpopup/B31_help_popup_picker_right.png
new file mode 100644 (file)
index 0000000..19b4866
Binary files /dev/null and b/edje/mobile/images/ctxpopup/B31_help_popup_picker_right.png differ
diff --git a/edje/mobile/images/ctxpopup/B31_help_popup_picker_top.png b/edje/mobile/images/ctxpopup/B31_help_popup_picker_top.png
new file mode 100644 (file)
index 0000000..15e1a36
Binary files /dev/null and b/edje/mobile/images/ctxpopup/B31_help_popup_picker_top.png differ
diff --git a/edje/mobile/images/ctxpopup/btn_bubble_tail.png b/edje/mobile/images/ctxpopup/btn_bubble_tail.png
new file mode 100644 (file)
index 0000000..9d6a0c5
Binary files /dev/null and b/edje/mobile/images/ctxpopup/btn_bubble_tail.png differ
diff --git a/edje/mobile/images/ctxpopup/language_change_popup_bg.png b/edje/mobile/images/ctxpopup/language_change_popup_bg.png
new file mode 100644 (file)
index 0000000..97afb34
Binary files /dev/null and b/edje/mobile/images/ctxpopup/language_change_popup_bg.png differ
diff --git a/edje/mobile/images/ctxpopup/popup_stroke_customized.#.png b/edje/mobile/images/ctxpopup/popup_stroke_customized.#.png
new file mode 100644 (file)
index 0000000..dd1e8bb
Binary files /dev/null and b/edje/mobile/images/ctxpopup/popup_stroke_customized.#.png differ
index 9ad40d6..aee5a38 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -126,3 +126,6 @@ msgstr "خدمة التعرف مشغولة."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "انقر للإيقاف مؤقتاً"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "اسحب شريط المسافة إلى اليسار أو اليمين للتغيير بين اللغات."
\ No newline at end of file
index 655b5cd..06547ae 100644 (file)
--- a/po/as.po
+++ b/po/as.po
@@ -126,3 +126,6 @@ msgstr "স্বীকৃতিপ্ৰাপ্ত সেৱা ব্যস
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "বিৰতি দিবলৈ টিপক"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ভাষাসমূহৰ মাজত সাল-সলনি কৰিবলৈ স্পেচ দণ্ডিকা বাঁও বা সোঁ দিশলৈ ঘঁহাওক৷"
\ No newline at end of file
index 39bb700..044461b 100644 (file)
--- a/po/az.po
+++ b/po/az.po
@@ -126,3 +126,6 @@ msgstr "Tanınma xidməti məşğuldur."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Pauza üçün vur"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Dilləri dəyişmək üçün boşluq panelini sola və ya sağa sürüşdürün."
\ No newline at end of file
index e65a5d1..396cabb 100755 (executable)
@@ -126,3 +126,6 @@ msgstr "Сэрвіс распазнавання заняты."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Націс.,каб прыпыніць"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Правядзіце ўздоўж прабелу ўлева або ўправа, каб пераключыцца на іншую мову."
\ No newline at end of file
index ba61775..bbec6c3 100644 (file)
--- a/po/bn.po
+++ b/po/bn.po
@@ -126,3 +126,9 @@ msgstr "শনাক্তকরণ পরিষেবা ব্যস্ত।"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "বিরতি দিতে ট্যাপ ক:"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ভাষাগুলির মধ্যে পরিবর্তন করতে স্পেস বারটি বাম থেকে ডানে সোয়াইপ করুন।"
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "প্রতীকের তালিকাটি দেখতে এই কী ট্যাপ করুন ও ধরে থাকুন। শর্টকাট রূপে ব্যবহার করার জন্য একটি নির্বাচন করুন।"
\ No newline at end of file
index d2a2dcb..f9ae99f 100644 (file)
@@ -126,3 +126,9 @@ msgstr "শনাক্তকরণ পরিষেবা ব্যস্ত।"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "বিরতি দিতে ট্যাপ করুন"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ভাষা পরিবর্তন করতে স্পেস বারটি বামে বা ডানে সোয়াইপ করুন।"
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "প্রতীকের তালিকাটি দেখতে এই কী ট্যাপ করুন ও ধরে থাকুন। শর্টকাট রূপে ব্যবহার করতে একটি নির্বাচন করুন।"
\ No newline at end of file
index 52d2a32..264854a 100644 (file)
--- a/po/en.po
+++ b/po/en.po
@@ -126,3 +126,6 @@ msgstr "Recognition service busy."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Tap to pause"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Swipe the space bar left or right to change between languages."
index 6ea66fe..8556e18 100755 (executable)
@@ -126,3 +126,6 @@ msgstr "Recognition service busy."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Tap to pause"
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "Tap and hold this key to see the symbol list. Select one to use it as a shortcut."
index 4295a93..a885010 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -126,3 +126,9 @@ msgstr "Service de reconnaissance occupé"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Appuyer pour pause"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Faites glisser votre doigt vers la gauche ou la droite sur la barre d'espace pour passer d'une langue à l'autre."
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "Appuyez sur cette touche et maintenez-la enfoncée pour afficher la liste des symboles. Sélectionnez-en un pour l'utiliser comme raccourci."
\ No newline at end of file
index d132546..c05c9c4 100644 (file)
--- a/po/gu.po
+++ b/po/gu.po
@@ -126,3 +126,6 @@ msgstr "ઓળખાણ સેવા વ્યસ્ત."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "થોભાવવા ટેપ કરો"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ભાષાઓ વચ્ચે બદલી કરવા માટે સ્પેસ બારને ડાબે અથવા જમણે સરકાવો."
\ No newline at end of file
index 97473f3..63c3111 100644 (file)
--- a/po/hi.po
+++ b/po/hi.po
@@ -126,3 +126,6 @@ msgstr "पहचान सेवा व्यस्त।"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "विराम हेतु टैप करें"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "भाषाएँ बदलने के लिए स्पेस बार बाएँ या दाएँ स्वाइप करें।"
\ No newline at end of file
index fc6b812..6fa927b 100644 (file)
--- a/po/hy.po
+++ b/po/hy.po
@@ -126,3 +126,6 @@ msgstr "Ճանաչման ծառայությունը զբաղված է:"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Թակել ընդմիջելու հր"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Բացատի ստեղնը մատով սահեցրեք ձախ կամ աջ՝ լեզուները փոխելու համար:"
\ No newline at end of file
index fb7837d..0eb2910 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -126,3 +126,6 @@ msgstr "Layanan pengenal sibuk."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Ketuk untuk jeda"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Usap bilah spasi ke kiri atau kanan untuk mengubah bahasa."
\ No newline at end of file
index 8bb5fbd..3e9400b 100644 (file)
--- a/po/ka.po
+++ b/po/ka.po
@@ -126,3 +126,6 @@ msgstr "ამოცნობის სერვისი დაკავებ
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "შეეხე, რომ დაპაუზდეს"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ენის შესაცვლელად, ინტერვალის კლავიშს გადაუსვით თითი მარცხნივ ან მარჯვნივ."
\ No newline at end of file
index 544fd46..66d7cc7 100644 (file)
--- a/po/kk.po
+++ b/po/kk.po
@@ -126,3 +126,6 @@ msgstr "Тану қызметі бос емес."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Кідірту үшін түрту"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Тілдер арасында өзгерту үшін бос орын пернесін солға немесе оңға сипаңыз."
\ No newline at end of file
index b24f1ad..326b9b5 100644 (file)
--- a/po/kn.po
+++ b/po/kn.po
@@ -126,3 +126,6 @@ msgstr "ಗುರುತಿಸುವಿಕೆ ಸೇವೆ ನಿರತ."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "ವಿರಾಮಗೊಳಿಸಲು ತಟ್ಟಿ"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Usap bilah spasi ke kiri atau kanan untuk mengubah bahasa."
\ No newline at end of file
index bc77d63..489f6e0 100644 (file)
@@ -126,3 +126,6 @@ msgstr "인식 서비스가 응답하지 않습니다."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "일시정지하려면 누르세요"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "언어를 변경하려면 스페이스 키를 왼쪽 또는 오른쪽으로 움직이세요."
\ No newline at end of file
index a5a7cd6..142b64c 100644 (file)
@@ -126,3 +126,9 @@ msgstr "Таануу кызматы бош эмес"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Тыныгуу үчүн басыңыз"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Тилдерди өзгөртүүгө ара тилкесин солго же оңго ала салыңыз."
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "Сиволдор тизмесин көрүүгө, бул баскычты таптап кармап туруңуз. Бирөөсүн тез чакырма катары колдонууга, тандап алыңыз."
\ No newline at end of file
index e22841f..6ff3557 100644 (file)
--- a/po/ml.po
+++ b/po/ml.po
@@ -126,3 +126,6 @@ msgstr "തിരിച്ചറിയല്‍ സേവനം തിരക്
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "തൽക്കാലം നിർത്താൻ സ്പർശിക്കുക"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ഭാഷകൾ പരസ്പരം മാറുന്നതിന് സ്പെയ്സ് ബാർ ഇടത്തോട്ടോ വലത്തോട്ടോ സ്വൈപ് ചെയ്യുക."
\ No newline at end of file
index cf26abe..5e56582 100644 (file)
@@ -126,3 +126,6 @@ msgstr "Таних үйлчилгээ завгүй"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Товшоод түр зогс"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Хэлнүүдийн хооронд өөрчлөхийн тулд зай авдаг хөндлийг зүүн эсвэл баруун тийш шудар."
\ No newline at end of file
index 3b86c7f..854adfd 100644 (file)
--- a/po/mr.po
+++ b/po/mr.po
@@ -126,3 +126,6 @@ msgstr "ओळख सेवा व्यस्त."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "विराम देण्यासाठी टॅप करा"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "भाषांदरम्‍यान बदलण्‍यासाठी स्‍पेस बार डावीकडे किंवा उजवीकडे स्‍वाइप करा."
\ No newline at end of file
index 8a20278..e58a2ff 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -126,3 +126,6 @@ msgstr "Perkhidmatan pengecaman sibuk."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Ketik untuk dijedakn"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Leret bar ruang ke kiri atau ke kanan untuk menukar antara bahasa."
\ No newline at end of file
index 10175a2..2804ba2 100644 (file)
--- a/po/ne.po
+++ b/po/ne.po
@@ -126,3 +126,6 @@ msgstr "पहिचान सेवा व्यस्त छ।"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "पज गर्न ट्याप गर्नुहोस्"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "भाषाहरू परिवर्तन गर्न स्पेस बारलाई बायाँ वा दायाँ स्वाइप गर्नुहोस्।"
\ No newline at end of file
index 5ac815b..14b3930 100644 (file)
--- a/po/or.po
+++ b/po/or.po
@@ -126,3 +126,9 @@ msgstr "ଚିହ୍ନଟ ସେବା ବ୍ୟସ୍ତ ଅଛି।"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "ବିରତ କରିବାକୁ ଟ୍ୟାପ୍"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ଭାଷାଗୁଡିକ ମଧ୍ୟରେ ବଦଳାଇବାକୁ ସ୍ପେସ୍ ବାର୍ ବାମ କିମ୍ଵା ଡାହାଣକୁ ଘୁଞ୍ଚାନ୍ତୁ।"
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "ଚିହ୍ନ ତାଲିକା ଦେଖିବାକୁ ଏହି କୀ ଟ୍ୟାପ୍ ଏବଂ ହୋଲ୍ଡ କରନ୍ତୁ। ଏହାକୁ ଏକ ସର୍ଟକଟ୍ ଭାବେ ବ୍ୟବହାର କରିବାକୁ ଚୟନ କରନ୍ତୁ।"
\ No newline at end of file
index b8c2e92..1ac9c5a 100644 (file)
--- a/po/pa.po
+++ b/po/pa.po
@@ -126,3 +126,6 @@ msgstr "ਪਛਾਣ ਸੇਵਾ ਵਿਅਸਤ।"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "ਵਿਰਾਮ ਦੇਣ ਲਈ ਟੈਪ ਕਰੋ"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "ਭਾਸ਼ਾਵਾਂ ਦੇ ਵਿਚਕਾਰ ਬਦਲਣ ਦੇ ਲਈ ਸਪੇਸ ਬਾਰ ਨੂੰ ਖੱਬੇ ਜਾਂ ਸੱਜੇ ਸਵਾਈਪ ਕਰੋ।"
\ No newline at end of file
index 2fc68b8..af4c82c 100644 (file)
@@ -126,3 +126,9 @@ msgstr "Служба распознавания занята."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Коснитесь для паузы"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Чтобы изменить язык, проведите пальцем по клавише пробела влево или вправо."
+
+msgid "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"
+msgstr "Для просмотра списка символов нажмите и удерживайте эту клавишу. Выберите один из них для ярлыка."
\ No newline at end of file
index 1a23bae..3de749d 100644 (file)
--- a/po/si.po
+++ b/po/si.po
@@ -126,3 +126,6 @@ msgstr "හඳුනාගැනීමේ සේවාව කාර්ය බහ
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "රැඳවීමට තට්ටු කරන්න"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "භාෂා අතර වෙනස් කිරීමට ඉඩ යතුර වමට හෝ දකුණට ස්වයිප් කරන්න."
\ No newline at end of file
index cc982af..7e0ffad 100644 (file)
--- a/po/ta.po
+++ b/po/ta.po
@@ -126,3 +126,6 @@ msgstr "கண்டறிதல் சேவை பிஸியாக உள்
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "இ.நிறுத்தம் டேப் செய்க"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "மொழிகளுக்கு இடையில் மாறுவதற்கு ஸ்பேஸ் பாரை இடமாக அல்லது வலமாக ஸ்வைப் செய்க."
\ No newline at end of file
index d3334a4..1b5072a 100644 (file)
--- a/po/te.po
+++ b/po/te.po
@@ -126,3 +126,6 @@ msgstr "గుర్తింపు సేవ పనిలో ఉంది."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "పాజ్ చేయడానికి ట్యాప్ చేయండి"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "భాషల మధ్య మారడానికి ఎడమ లేదా కుడి స్పేస్ బార్ స్వైప్ చేయండి."
\ No newline at end of file
index cd46e3c..be7b1a8 100644 (file)
@@ -126,3 +126,6 @@ msgstr "Хидмати шинохтагирӣ банд аст."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Барои таваққуф, зрба"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Барои гузариш байни забонҳо тугмаи фосиларо ба чап ё рост молед."
\ No newline at end of file
index 2ad873b..564719e 100644 (file)
@@ -126,3 +126,6 @@ msgstr "Tanama hyzmaty meşgul"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Säginmek üçin bas"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Dilden-dile geçmek üçin, probeli çepe ýa-da saga syryň."
\ No newline at end of file
index a9f61d8..7dac521 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -126,3 +126,6 @@ msgstr "Служба розпізнавання зайнята."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "Торкніться для паузи"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Проведіть по пробілу вліво або вправо для переключення між мовами."
\ No newline at end of file
index 8dff3c5..bf42c1d 100644 (file)
--- a/po/ur.po
+++ b/po/ur.po
@@ -127,3 +127,5 @@ msgstr "پہچان کی خدمت مشغول ہے۔"
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "وقفہ کے لیے تھپکی دیں"
 
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "زبانیں تبدیل کرنے کے لیے اسپیس بار کو دائیں یا بائیں سوائپ کریں۔"
\ No newline at end of file
index 9d5e289..bcd0fad 100644 (file)
--- a/po/uz.po
+++ b/po/uz.po
@@ -126,3 +126,6 @@ msgstr "Aniqlash xizmati band."
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "To‘xtam uchun teging"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "Tillarni o‘zgartirish uhcun bo‘shliq tugmasini chap yoki o‘ngga suring."
\ No newline at end of file
index 66d59d6..87a3d94 100644 (file)
@@ -126,3 +126,6 @@ msgstr "识别服务忙。"
 
 msgid "IDS_VOICE_NPBODY_TAP_TO_PAUSE_ABB"
 msgstr "点击以暂停"
+
+msgid "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"
+msgstr "向左或向右滑动空格键切换语言。"
\ No newline at end of file
index 6640f7a..7f7c06d 100644 (file)
@@ -52,6 +52,8 @@ CONFIG_VALUES::CONFIG_VALUES() {
     sound_on = SOUND_ON;
     vibration_on = VIBRATION_ON;
     preview_on = PREVIEW_ON;
+    first_guideset = FALSE;
+    first_guidechange = FALSE;
 };
 
 CONFIG_VALUES g_config_values;
@@ -115,6 +117,14 @@ void read_ise_config_values() {
     integer_value = PREVIEW_ON;
     preference_get_int(ISE_CONFIG_PREVIEW_ON, &integer_value);
     g_config_values.preview_on = integer_value;
+
+    integer_value = 0;
+    preference_get_int(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING, &integer_value);
+    g_config_values.first_guideset = integer_value;
+
+    integer_value = 0;
+    preference_get_int(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE, &integer_value);
+    g_config_values.first_guidechange = integer_value;
 #ifdef _TV
     g_config_values.enabled_languages.push_back("English");
     g_config_values.enabled_languages.push_back("Chinese");
@@ -143,6 +153,8 @@ void write_ise_config_values() {
     preference_set_int(ISE_CONFIG_SOUND_ON, g_config_values.sound_on);
     preference_set_int(ISE_CONFIG_VIBRATION_ON, g_config_values.vibration_on);
     preference_set_int(ISE_CONFIG_PREVIEW_ON, g_config_values.preview_on);
+    preference_set_int(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING, g_config_values.first_guideset);
+    preference_set_int(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE, g_config_values.first_guidechange);
 }
 
 void erase_ise_config_values() {
@@ -155,6 +167,8 @@ void erase_ise_config_values() {
     preference_remove(ISE_CONFIG_SOUND_ON);
     preference_remove(ISE_CONFIG_VIBRATION_ON);
     preference_remove(ISE_CONFIG_PREVIEW_ON);
+    preference_remove(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING);
+    preference_remove(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE);
 }
 
 void reset_ise_config_values() {
@@ -168,6 +182,8 @@ void reset_ise_config_values() {
     g_config_values.sound_on = SOUND_ON;
     g_config_values.vibration_on = VIBRATION_ON;
     g_config_values.preview_on = PREVIEW_ON;
+    g_config_values.first_guideset = FALSE;
+    g_config_values.first_guidechange = FALSE;
 
     write_ise_config_values();
 }
index 796e461..bfcd6e7 100644 (file)
@@ -33,6 +33,9 @@
 #define ISE_CONFIG_VIBRATION_ON         "/ise-default/vibration_on"
 #define ISE_CONFIG_PREVIEW_ON           "/ise-default/preview_on"
 #define ISE_CONFIG_RECENT_EMOTICONS_LIST "/ise-default/recent_emoticons_list"
+#define ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING          "/ise-default/first_guideline_popup_for_setting"
+#define ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE        "/ise-default/first_guideline_popup_for_language_change"
+
 
 using namespace scl;
 
@@ -53,6 +56,8 @@ struct CONFIG_VALUES {
     sclboolean sound_on;
     sclboolean vibration_on;
     sclboolean preview_on;
+    sclboolean first_guideset;
+    sclboolean first_guidechange;
 };
 
 void read_ise_config_string(const char *key, std::string &value);
index da39016..86caed0 100644 (file)
@@ -41,7 +41,7 @@
 #include "ise-stt-option.h"
 #include "ise-language-change.h"
 #include "modeindicator.h"
-
+#define EDJ_FILE                        RESDIR"/edje/mobile/customised_ctxpopup.edj"
 #define EXPORTED __attribute__((visibility("default")))
 
 #define CANDIDATE_WINDOW_HEIGHT 84
@@ -75,6 +75,7 @@ static string g_current_punctuation[MAX_DEFAULT_PUNCTUATION-1] = {"RCENT1", "RCE
 static vector<string> g_softcandidate_string;
 static bool g_softcandidate_show = false;
 static bool g_caps_mode_pending = false;
+static Ecore_Timer *guideline_timer = NULL;
 
 #define SOFT_CANDIDATE_DELETE_TIME (1.0/100)
 static Ecore_Timer *g_softcandidate_hide_timer = NULL;
@@ -159,6 +160,7 @@ static ISELanguageManager _language_manager;
 static sclboolean           _cm_popup_opened = FALSE;
 static const char          *_cm_key_list[CM_KEY_LIST_SIZE] = {USER_KEYSTRING_OPTION, USER_KEYSTRING_EMOTICON, USER_KEYSTRING_CLIPBOARD, USER_KEYSTRING_VOICE};
 static scluint              _current_cm_key_id = 0;
+Evas_Object* _guide_popup_window = NULL;
 
 /*
  * This callback class will receive all response events from SCL
@@ -607,6 +609,132 @@ SCLEventReturnType CUIEventCallback::on_event_notification(SCLUINotiType noti_ty
     return ret;
 }
 
+void ise_destory_guideline_popup()
+{
+    if (_guide_popup_window != NULL) {
+        evas_object_del(_guide_popup_window);
+        _guide_popup_window = NULL;
+    }
+}
+
+void _guideline_popup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    evas_object_smart_callback_del(obj, "dismissed", _guideline_popup_dismissed_cb);
+    evas_object_del(obj);
+    obj = NULL;
+
+    if (_guide_popup_window != NULL)
+    {
+        evas_object_del(_guide_popup_window);
+        _guide_popup_window = NULL;
+    }
+
+    g_config_values.first_guideset = TRUE;
+    write_ise_config_values();
+}
+
+Evas_Object *open_message_popup(Evas_Object *parentWnd)
+{
+    static Evas_Object *msg_window = NULL;
+    if (msg_window) {
+        evas_object_del(msg_window);
+        msg_window = NULL;
+    }
+    msg_window = elm_win_add(parentWnd, "MCFMessagePopup", ELM_WIN_UTILITY);
+    if (msg_window) {
+        int w, h;
+        elm_win_borderless_set(msg_window, EINA_TRUE);
+        elm_win_alpha_set(msg_window, EINA_TRUE);
+        elm_win_title_set(msg_window, "ISF Popup");
+        elm_win_screen_size_get(msg_window, NULL, NULL, &w, &h);
+        elm_win_prop_focus_skip_set(msg_window, TRUE);
+        int rots[4] = {0, 90, 180, 270};
+        elm_win_wm_rotation_available_rotations_set(msg_window, rots, 4);
+        evas_object_resize(msg_window, w, h);
+    }
+
+    int rots[4] = { 0, 90, 180, 270 };
+    elm_win_wm_rotation_available_rotations_set(msg_window, rots, 4);
+    evas_object_show(msg_window);
+    return msg_window;
+}
+
+void ise_show_help_popup(sclulong keyEvent)
+{
+    char buf[2048] = {0, };
+    int font_size = 40;
+    sclint scr_w = 0;
+    sclint scr_h = 0;
+    SclRectangle rectangle = {0};
+
+    if (g_ui)
+        g_ui->get_screen_resolution(&scr_w, &scr_h);
+
+    if (keyEvent == MVK_space)
+    {
+        g_ui->get_button_geometry("SPACE_KEY", &rectangle);
+    } else {
+        g_ui->get_button_geometry("CM_KEY", &rectangle);
+    }
+
+    _guide_popup_window = open_message_popup(NATIVE_WINDOW_CAST(ime_get_main_window()));
+
+    Elm_Theme *theme = elm_theme_new();
+    elm_theme_ref_set(theme, NULL);
+    elm_theme_extension_add(theme, EDJ_FILE);
+
+    Evas_Object *ctxpopup = elm_ctxpopup_add(_guide_popup_window);
+    elm_object_theme_set(ctxpopup, theme);
+
+    int rotation = elm_win_rotation_get(NATIVE_WINDOW_CAST(ime_get_main_window()));
+    if (rotation == 0 || rotation == 180) {
+        elm_object_style_set(ctxpopup, "customised_guideline_popup");
+    } else {
+        elm_object_style_set(ctxpopup, "customised_guideline_popup_landscape");
+    }
+
+    evas_object_smart_callback_add(ctxpopup, "dismissed", _guideline_popup_dismissed_cb, (void *)keyEvent);
+    elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP,
+                          ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                          ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                          ELM_CTXPOPUP_DIRECTION_UNKNOWN);
+
+    Evas_Object* text = elm_label_add(ctxpopup);
+
+    if (keyEvent == MVK_space) {
+        sprintf(buf, "<font_style=Regular font_size=%d align=left wrap=mixed color=#000000>%s</>", font_size,
+            dgettext(PACKAGE, "IDS_IME_BODY_SWIPE_THE_SPACE_BAR_LEFT_OR_RIGHT_TO_CHANGE_BETWEEN_LANGUAGES"));
+    } else {
+        sprintf(buf, "<font_style=Regular font_size=%d align=left wrap=mixed color=#000000>%s</>", font_size,
+               dgettext(PACKAGE, "IDS_IME_BODY_TAP_AND_HOLD_THIS_KEY_TO_SEE_THE_SYMBOL_LIST_SELECT_ONE_TO_USE_IT_AS_A_SHORTCUT"));
+    }
+    elm_object_text_set(text, buf);
+    elm_object_content_set(ctxpopup, text);
+    Evas_Coord x, y, w, h;
+    evas_object_geometry_get(NATIVE_WINDOW_CAST(ime_get_main_window()), &x, &y, &w, &h);
+
+    if (rotation == 0 || rotation == 180) {
+        elm_label_wrap_width_set(text, (scr_w * 4) / 5);
+        evas_object_size_hint_min_set(ctxpopup, ELM_SCALE_SIZE(scr_w), ELM_SCALE_SIZE(50));
+        evas_object_size_hint_max_set(ctxpopup, ELM_SCALE_SIZE(scr_w), ELM_SCALE_SIZE(600));
+        evas_object_move(ctxpopup, rectangle.x + rectangle.width / 2,
+                    (scr_h - h) + rectangle.y - ELM_SCALE_SIZE(5));
+    } else {
+        elm_label_wrap_width_set(text, (scr_h * 4) / 5);
+        evas_object_size_hint_min_set(ctxpopup, ELM_SCALE_SIZE(scr_h), ELM_SCALE_SIZE(50));
+        evas_object_size_hint_max_set(ctxpopup, ELM_SCALE_SIZE(scr_h), ELM_SCALE_SIZE(600));
+        evas_object_move(ctxpopup, rectangle.x + rectangle.width / 2,
+                (scr_w - h)+ rectangle.y - ELM_SCALE_SIZE(5));
+    }
+    elm_label_line_wrap_set(text, ELM_WRAP_MIXED);
+    evas_object_show(text);
+
+    evas_object_layer_set(_guide_popup_window, EVAS_LAYER_MAX);
+    evas_object_show(_guide_popup_window);
+    evas_object_layer_set(ctxpopup, EVAS_LAYER_MAX);
+    evas_object_show(ctxpopup);
+}
+
 SCLEventReturnType CUIEventCallback::on_event_drag_state_changed(SclUIEventDesc event_desc)
 {
     if (event_desc.event_type == EVENT_TYPE_MOVE) {
@@ -757,6 +885,10 @@ SCLEventReturnType CUIEventCallback::on_event_key_clicked(SclUIEventDesc event_d
                 break;
            }
         case KEY_TYPE_MODECHANGE:
+            if (!g_config_values.first_guideset){
+               ise_show_help_popup(event_desc.key_event);
+               break;
+           }
             if (strcmp(event_desc.key_value, USER_VOICE_LANGUAGE) == 0) {
                 if (!g_setting_window_open_status) {
                     create_setting_window();
@@ -919,6 +1051,41 @@ ise_focus_out(int ic)
     _reset_multitap_state(true);
 }
 
+bool ise_is_guideline_popup_enable_layout(void)
+{
+    bool ret;
+    switch (_context_layout)
+    {
+        case ISE_LAYOUT_STYLE_PHONENUMBER:
+        case ISE_LAYOUT_STYLE_IP:
+        case ISE_LAYOUT_STYLE_MONTH:
+        case ISE_LAYOUT_STYLE_NUMBERONLY:
+        case ISE_LAYOUT_STYLE_HEX:
+        case ISE_LAYOUT_STYLE_TERMINAL:
+        case ISE_LAYOUT_STYLE_DATETIME:
+        case ISE_LAYOUT_STYLE_PASSWORD:
+            ret = false;
+            break;
+        default:
+            ret = true;
+            break;
+    }
+    return ret;
+}
+
+static Eina_Bool popup_guideline_timer_cb(void *data)
+{
+    if ((!g_config_values.first_guidechange)&&(_language_manager.get_enabled_languages_num() > 1))
+    {
+        ise_show_help_popup(MVK_space);
+        g_config_values.first_guidechange = TRUE;
+        write_ise_config_values();
+    }
+
+    guideline_timer = NULL;
+    return ECORE_CALLBACK_CANCEL;
+}
+
 void
 ise_show(int ic)
 {
@@ -1109,6 +1276,9 @@ ise_show(int ic)
 #ifdef _IVI
         g_ui->enable_button("CM_KEY", false);
 #endif
+        if (ise_is_guideline_popup_enable_layout()) {
+            guideline_timer = ecore_timer_add(0.1, popup_guideline_timer_cb, NULL);
+        }
     }
 
     g_keyboard_state.visible_state = TRUE;
@@ -1226,6 +1396,7 @@ ise_hide()
 
     _click_count = 0;
     delete_commit_timer();
+    ise_destory_guideline_popup();
 
     g_keyboard_state.visible_state = FALSE;