diff options
author | Ryuan Choi <ryuan.choi@gmail.com> | 2013-10-02 12:35:23 +0900 |
---|---|---|
committer | Ryuan Choi <ryuan.choi@gmail.com> | 2013-10-02 12:36:08 +0900 |
commit | 7d9b8def4db8ba2c1ac8fae282a79566842b1890 (patch) | |
tree | 991dd5184cafd5d0b9c66349e6300b9b8641c374 /src/lib/elc_fileselector.c | |
parent | 321a0db5a8120c4c8ec0ced4806546dfb2a1123a (diff) | |
download | elementary-7d9b8def4db8ba2c1ac8fae282a79566842b1890.tar.gz |
fileselector: fileselector: Add "activated" smart callback
It can be used to execute a file activated by double-clicking or
pressing Enter key.
Diffstat (limited to 'src/lib/elc_fileselector.c')
-rw-r--r-- | src/lib/elc_fileselector.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c index b0ae94600..cb963729b 100644 --- a/src/lib/elc_fileselector.c +++ b/src/lib/elc_fileselector.c @@ -4,7 +4,6 @@ * - user defined icon/label cb * - show/hide/add buttons ??? * - show/hide hidden files - * - double click to choose a file * - multi-selection * - make variable/function names that are sensible * - Pattern Filter support @@ -31,6 +30,7 @@ static Elm_Genlist_Item_Class *list_itc[ELM_FILE_LAST]; static Elm_Gengrid_Item_Class *grid_itc[ELM_FILE_LAST]; #define ELM_PRIV_FILESELECTOR_SIGNALS(cmd) \ + cmd(SIG_ACTIVATED, "activated", "s") \ cmd(SIG_DIRECTORY_OPEN, "directory,open", "s") \ cmd(SIG_DONE, "done", "s") \ cmd(SIG_SELECTED, "selected", "s") \ @@ -712,6 +712,25 @@ _on_item_double_clicked(void *data, } static void +_on_item_activated(void *data, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + //This event_info could be a list or gengrid item + Elm_Object_Item *it = event_info; + const char *path; + Eina_Bool is_dir; + + path = elm_object_item_data_get(it); + if (!path) return; + + is_dir = ecore_file_is_dir(path); + if (is_dir) return; + + evas_object_smart_callback_call(data, SIG_ACTIVATED, (void *)path); +} + +static void _on_item_selected(void *data, Evas_Object *obj __UNUSED__, void *event_info) @@ -1065,6 +1084,7 @@ _elm_fileselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) evas_object_smart_callback_add(li, "selected", _on_item_selected, obj); evas_object_smart_callback_add(li, "clicked,double", _on_item_double_clicked, obj); + evas_object_smart_callback_add(li, "activated", _on_item_activated, obj); evas_object_smart_callback_add (li, "expand,request", _on_list_expand_req, obj); evas_object_smart_callback_add @@ -1073,6 +1093,7 @@ _elm_fileselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) evas_object_smart_callback_add(li, "contracted", _on_list_contracted, obj); evas_object_smart_callback_add(grid, "selected", _on_item_selected, obj); evas_object_smart_callback_add(grid, "clicked,double", _on_item_double_clicked, obj); + evas_object_smart_callback_add(grid, "activated", _on_item_activated, obj); elm_widget_sub_object_add(obj, li); elm_widget_sub_object_add(obj, grid); |