Evas_Object *common_utils_add_edit_box(Evas_Object *parent, const common_utils_entry_info_t *entry_info) { Evas_Object *layout = elm_layout_add(parent); Evas_Object *entry = NULL; elm_layout_theme_set(layout, "layout", "editfield", "title"); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_text_set(layout, "elm.text", entry_info->title); elm_object_part_text_set(layout, "elm.guidetext", entry_info->guide_txt); // Set guidetext. entry = elm_entry_add(layout); elm_object_part_content_set(layout, "elm.swallow.content", entry); elm_entry_single_line_set(entry, EINA_TRUE); elm_entry_scrollable_set(entry, EINA_TRUE); elm_entry_entry_set(entry, entry_info->entry_txt); elm_entry_input_panel_layout_set(entry, entry_info->panel_type); if (!elm_entry_is_empty(entry)) { INFO_LOG(UG_NAME_NORMAL, "entry is not empty"); elm_object_signal_emit(layout, "elm,state,guidetext,hide", "elm"); if (!entry_info->guide_txt || strlen(entry_info->guide_txt) <= 0) evas_object_data_set(layout, COMMON_UTILS_DEFAULT_ENTRY_TEXT_KEY, g_strdup(entry_info->entry_txt)); } evas_object_smart_callback_add(entry, "changed", __common_utils_entry_changed_cb, layout); evas_object_smart_callback_add(entry, "focused", __common_utils_entry_focused_cb, layout); evas_object_smart_callback_add(entry, "unfocused", __common_utils_entry_unfocused_cb, layout); elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", __common_utils_eraser_clicked_cb, entry); evas_object_show(entry); return layout; }
static void _entry_unfocused_cb(void *data, Evas_Object * obj, void *event_info) { if (elm_entry_is_empty(obj)) elm_object_signal_emit(data, "elm,state,guidetext,show", "elm"); elm_object_signal_emit(data, "elm,state,eraser,hide", "elm"); }
static void __common_utils_entry_changed_cb(void* data, Evas_Object* obj, void* event_info) { if (obj == NULL) return; if (elm_object_focus_get(data)) { if (elm_entry_is_empty(obj)) elm_object_signal_emit(data, "elm,state,eraser,hide", "elm"); else elm_object_signal_emit(data, "elm,state,eraser,show", "elm"); } }
static void __common_utils_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info) { INFO_LOG(UG_NAME_NORMAL, "__common_utils_entry_unfocused_cb entered"); if (elm_entry_is_empty(obj)) { const char *guide_txt = elm_object_part_text_get(data, "elm.guidetext"); INFO_LOG(UG_NAME_NORMAL, "entry is empty"); if (guide_txt && strlen(guide_txt)) { /* If guide text exists then show it */ elm_object_signal_emit(data, "elm,state,guidetext,show", "elm"); } else { /* If default entry text exists then show it */ char *default_entry_txt = NULL; default_entry_txt = evas_object_data_get(data, COMMON_UTILS_DEFAULT_ENTRY_TEXT_KEY); if (default_entry_txt && strlen(default_entry_txt)) { elm_entry_entry_set(obj, default_entry_txt); } } } elm_object_signal_emit(data, "elm,state,eraser,hide", "elm"); }
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_is_empty(const Evas_Object *obj) {return elm_entry_is_empty(obj);}