From f8c90cfa6ab9cd33cf488d3ff072edf296bf09ca Mon Sep 17 00:00:00 2001 From: Myungjae Lee Date: Wed, 10 Nov 2010 15:10:22 +0900 Subject: [PATCH] [entry] added selectall menu to copy paste contextual popup --- src/lib/elm_entry.c | 17 ++++++++++++++++- src/modules/ctxpopup_copypasteUI/copypaste.c | 11 +++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 4356236..7acce6a 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -582,6 +582,20 @@ _dismissed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) } static void +_selectall(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + Widget_Data *wd = elm_widget_data_get(data); + if (!wd) return; + wd->selmode = EINA_TRUE; + if (!wd->password) + edje_object_part_text_select_allow_set(wd->ent, "elm.text", EINA_TRUE); + edje_object_signal_emit(wd->ent, "elm,state,select,on", "elm"); + edje_object_part_text_select_all(wd->ent, "elm.text"); + //elm_widget_scroll_hold_push(data); + elm_object_scroll_freeze_pop(data); +} + +static void _select(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Widget_Data *wd = elm_widget_data_get(data); @@ -591,6 +605,7 @@ _select(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) if (!wd->password) edje_object_part_text_select_allow_set(wd->ent, "elm.text", EINA_TRUE); edje_object_signal_emit(wd->ent, "elm,state,select,on", "elm"); + elm_object_scroll_freeze_pop(data); //elm_widget_scroll_hold_push(data); } @@ -2154,7 +2169,7 @@ EAPI void elm_entry_extension_module_data_get(Evas_Object *obj,Elm_Entry_Extensi ext_mod->cut = _cut; ext_mod->paste = _paste; ext_mod->select = _select; - ext_mod->selectall = NULL; /* to be implemented*/ + ext_mod->selectall = _selectall; ext_mod->ent = wd->ent; ext_mod->items = wd->items; ext_mod->longpress_timer = wd->longpress_timer; diff --git a/src/modules/ctxpopup_copypasteUI/copypaste.c b/src/modules/ctxpopup_copypasteUI/copypaste.c index ee30e89..239ac76 100644 --- a/src/modules/ctxpopup_copypasteUI/copypaste.c +++ b/src/modules/ctxpopup_copypasteUI/copypaste.c @@ -27,6 +27,13 @@ _ctxpopup_position(Evas_Object *obj) } static void +_select_all(void *data, Evas_Object *obj, void *event_info) +{ + ext_mod->selectall(data,obj,event_info); + evas_object_hide(obj); +} + +static void _select(void *data, Evas_Object *obj, void *event_info) { ext_mod->select(data,obj,event_info); @@ -151,7 +158,10 @@ obj_longpress(Evas_Object *obj) if (!ext_mod->selmode) { if (!ext_mod->password) + { elm_ctxpopup_item_add(ext_mod->popup, NULL, "Select",_select, obj ); + elm_ctxpopup_item_add(ext_mod->popup, NULL, "Select All",_select_all, obj ); + } if (1) // need way to detect if someone has a selection { if (ext_mod->editable) @@ -177,6 +187,7 @@ obj_longpress(Evas_Object *obj) { _cancel(obj,ext_mod->popup,NULL); elm_ctxpopup_item_add(ext_mod->popup, NULL, "Select",_select, obj ); + elm_ctxpopup_item_add(ext_mod->popup, NULL, "Select All",_select_all, obj ); if (1) // need way to detect if someone has a selection { if (ext_mod->editable) -- 2.7.4