extern InputKeyboardData g_input_keyboard_data;
extern App_Data* app_data;
-Evas_Object *entry;
+static Evas_Object *entry;
+
+struct _input_panel_layout_item {
+ const char *layout_string;
+ Elm_Input_Panel_Layout input_panel_layout;
+};
+
+static struct _input_panel_layout_item _input_panel_layout_items[] = {
+ { "Normal", ELM_INPUT_PANEL_LAYOUT_NORMAL },
+ { "Number", ELM_INPUT_PANEL_LAYOUT_NUMBER },
+ { "Email", ELM_INPUT_PANEL_LAYOUT_EMAIL },
+ { "Url", ELM_INPUT_PANEL_LAYOUT_URL },
+ { "Phonenumber", ELM_INPUT_PANEL_LAYOUT_PHONENUMBER },
+ { "Ip", ELM_INPUT_PANEL_LAYOUT_IP },
+ { "Month", ELM_INPUT_PANEL_LAYOUT_MONTH },
+ { "Numberonly", ELM_INPUT_PANEL_LAYOUT_NUMBERONLY },
+ { "Datetime", ELM_INPUT_PANEL_LAYOUT_NUMBERONLY },
+ { "Emoticon", ELM_INPUT_PANEL_LAYOUT_EMOTICON },
+ { NULL, ELM_INPUT_PANEL_LAYOUT_NORMAL }
+};
+
+static Elm_Input_Panel_Layout convert_string_to_input_panel_layout(const char *input_panel_layout)
+{
+ Elm_Input_Panel_Layout layout = ELM_INPUT_PANEL_LAYOUT_NORMAL;
+
+ unsigned int idx = 0;
+
+ while (_input_panel_layout_items[idx].layout_string != NULL) {
+ if (strcasecmp(_input_panel_layout_items[idx].layout_string, input_panel_layout) == 0) {
+ layout = _input_panel_layout_items[idx].input_panel_layout;
+ break;
+ }
+ idx++;
+ }
+
+ return layout;
+}
bool input_keyboard_init(app_control_h app_control)
{
char *return_key_type = NULL;
char *max_text_length = NULL;
char *cursor_position_set = NULL;
+ char *input_panel_layout = NULL;
input_keyboard_deinit();
free(cursor_position_set);
cursor_position_set = NULL;
+ // input panel layout
+ ret = app_control_get_extra_data(app_control, "http://tizen.org/appcontrol/data/input_panel_layout", &input_panel_layout);
+ if (ret == APP_CONTROL_ERROR_NONE) {
+ if (input_panel_layout) {
+ g_input_keyboard_data.input_panel_layout = convert_string_to_input_panel_layout(input_panel_layout);
+ }
+ }
+
+ free(input_panel_layout);
+ input_panel_layout = NULL;
+
return true;
}
if (g_input_keyboard_data.cursor_position_set != 0) {
elm_entry_cursor_pos_set(entry, g_input_keyboard_data.cursor_position_set);
}
+
+ elm_entry_input_panel_layout_set(entry, g_input_keyboard_data.input_panel_layout);
+
evas_object_show(entry);
elm_box_pack_end(box, entry);
elm_entry_cursor_pos_set(entry, g_input_keyboard_data.cursor_position_set);
}
+ elm_entry_input_panel_layout_set(entry, g_input_keyboard_data.input_panel_layout);
+
evas_object_show(entry);
elm_object_part_content_set(editfield, "elm.swallow.content", entry);