jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3c5297bcfc91bb909e06a05ecc4b601fa5cdd5fc
commit 3c5297bcfc91bb909e06a05ecc4b601fa5cdd5fc Author: Avi Levin <avi.le...@samsung.com> Date: Sun May 10 17:49:01 2015 +0300 elc_fileselector, elc_fileselector_button: porting evas smart callbacks to eo --- src/lib/elc_fileselector.c | 238 +++++++++++++++++++++++-------------- src/lib/elc_fileselector_button.c | 25 ++-- src/lib/elm_fileselector.eo | 9 +- src/lib/elm_fileselector_button.eo | 3 +- 4 files changed, 174 insertions(+), 101 deletions(-) diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c index 32d3cff..7c5fb7e 100644 --- a/src/lib/elc_fileselector.c +++ b/src/lib/elc_fileselector.c @@ -58,8 +58,10 @@ static const Elm_Action key_actions[] = { {NULL, NULL} }; -static void _ok(void *data, Evas_Object *obj, void *event_info); -static void _canc(void *data, Evas_Object *obj, void *event_info); +static Eina_Bool _ok(void *data, + Eo *obj, const Eo_Event_Description *desc, void *event_info); +static Eina_Bool _canc(void *data, + Eo *obj, const Eo_Event_Description *desc, void *event_info); /* final routine on deletion */ static void @@ -158,14 +160,14 @@ _elm_fileselector_elm_widget_theme_apply(Eo *obj, Elm_Fileselector_Data *sd) static Eina_Bool _key_action_select(Evas_Object *obj, const char *params EINA_UNUSED) { - _ok(obj, NULL, NULL); + _ok(obj, NULL, NULL, NULL); return EINA_TRUE; } static Eina_Bool _key_action_escape(Evas_Object *obj, const char *params EINA_UNUSED) { - _canc(obj, NULL, NULL); + _canc(obj, NULL, NULL, NULL); return EINA_TRUE; } @@ -546,8 +548,8 @@ _signal_first(Listing_Request *lreq) EINA_LIST_FREE(sd->paths, path) free(path); } - evas_object_smart_callback_call - (lreq->obj, SIG_DIRECTORY_OPEN, (void *)lreq->path); + eo_do(lreq->obj, eo_event_callback_call + (ELM_FILESELECTOR_EVENT_DIRECTORY_OPEN, (void *)lreq->path)); if (!lreq->parent_it) { @@ -705,45 +707,53 @@ _populate(Evas_Object *obj, } -static void +static Eina_Bool _on_list_expanded(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Elm_Object_Item *it = event_info; const char *path = elm_object_item_data_get(it); _populate(data, path, it, NULL); + + return EINA_TRUE; } -static void -_on_list_contracted(void *data EINA_UNUSED, - Evas_Object *obj EINA_UNUSED, +static Eina_Bool +_on_list_contracted(void *data EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Elm_Object_Item *it = event_info; elm_genlist_item_subitems_clear(it); + + return EINA_TRUE; } -static void -_on_list_expand_req(void *data EINA_UNUSED, - Evas_Object *obj EINA_UNUSED, +static Eina_Bool +_on_list_expand_req(void *data EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Elm_Object_Item *it = event_info; elm_genlist_item_expanded_set(it, EINA_TRUE); + + return EINA_TRUE; } -static void -_on_list_contract_req(void *data EINA_UNUSED, - Evas_Object *obj EINA_UNUSED, +static Eina_Bool +_on_list_contract_req(void *data EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Elm_Object_Item *it = event_info; elm_genlist_item_expanded_set(it, EINA_FALSE); + + return EINA_TRUE; } static Eina_Bool @@ -787,9 +797,9 @@ _schedule_populate(Evas_Object *fs, sd->populate_idler = ecore_idler_add(_populate_do, sdata); } -static void +static Eina_Bool _on_item_activated(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { //This event_info could be a list or gengrid item @@ -800,18 +810,21 @@ _on_item_activated(void *data, ELM_FILESELECTOR_DATA_GET(data, sd); path = elm_object_item_data_get(it); - if (!path) return; + if (!path) return EINA_TRUE; is_dir = ecore_file_is_dir(path); if (!is_dir) { - evas_object_smart_callback_call(data, SIG_ACTIVATED, (void *)path); - return; + eo_do(data, eo_event_callback_call + (ELM_FILESELECTOR_EVENT_ACTIVATED, (void *)path)); + return EINA_TRUE; } - if (!sd->double_tap_navigation) return; + if (!sd->double_tap_navigation) return EINA_TRUE; _schedule_populate(data, sd, eina_stringshare_add(path), NULL); + + return EINA_TRUE; } static void @@ -842,9 +855,9 @@ _clear_selections(Elm_Fileselector_Data *sd, Elm_Object_Item *last_selected) } } -static void +static Eina_Bool _on_item_selected(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { //This event_info could be a list or gengrid item @@ -856,7 +869,7 @@ _on_item_selected(void *data, ELM_FILESELECTOR_DATA_GET(data, sd); path = elm_object_item_data_get(it); - if (!path) return; + if (!path) return EINA_TRUE; is_dir = ecore_file_is_dir(path); @@ -893,7 +906,8 @@ _on_item_selected(void *data, else elm_object_text_set(sd->name_entry, ecore_file_file_get(path)); - evas_object_smart_callback_call(data, SIG_SELECTED, (void *)path); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, (void *)path)); } else if (sd->multi && is_dir && sd->double_tap_navigation) { @@ -905,7 +919,7 @@ _on_item_selected(void *data, * - mode is GRID; * - mode is LIST and 'not expand mode'; * in other cases update anchors. */ - if (!is_dir) return; + if (!is_dir) return EINA_TRUE; if (sd->expand && sd->mode == ELM_FILESELECTOR_LIST) { @@ -921,17 +935,19 @@ _on_item_selected(void *data, eina_stringshare_replace(&sd->path, path); _anchors_do(data, path); } - return; + return EINA_TRUE; } - if (sd->double_tap_navigation) return; + if (sd->double_tap_navigation) return EINA_TRUE; _schedule_populate(data, sd, eina_stringshare_add(path), NULL); + + return EINA_TRUE; } -static void +static Eina_Bool _on_item_unselected(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Eina_List *li, *l; @@ -943,10 +959,10 @@ _on_item_unselected(void *data, ELM_FILESELECTOR_DATA_GET(data, sd); - if (!sd->multi) return; + if (!sd->multi) return EINA_TRUE; unselected_path = elm_object_item_data_get(it); - if (!unselected_path) return; + if (!unselected_path) return EINA_TRUE; buf = eina_strbuf_new(); EINA_LIST_FOREACH_SAFE(sd->paths, li, l, path) @@ -969,11 +985,13 @@ _on_item_unselected(void *data, elm_object_text_set(sd->name_entry, eina_strbuf_string_get(buf)); eina_strbuf_free(buf); + + return EINA_TRUE; } -static void +static Eina_Bool _on_dir_up(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *fs = data; @@ -984,11 +1002,13 @@ _on_dir_up(void *data, parent = ecore_file_dir_get(sd->path); _populate(fs, parent, NULL, NULL); free(parent); + + return EINA_TRUE; } -static void +static Eina_Bool _home(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *fs = data; @@ -1002,6 +1022,8 @@ _home(void *data, _populate(fs, path, NULL, NULL); + + return EINA_TRUE; } static void @@ -1019,9 +1041,9 @@ _current_filter_changed(void *data, _populate(filter->sd->obj, filter->sd->path, NULL, NULL); } -static void +static Eina_Bool _ok(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { const char *name; @@ -1031,8 +1053,8 @@ _ok(void *data, if (!sd->path) { - evas_object_smart_callback_call(fs, SIG_DONE, NULL); - return; + eo_do(fs, eo_event_callback_call(ELM_FILESELECTOR_EVENT_DONE, NULL)); + return EINA_TRUE; } name = elm_object_text_get(sd->name_entry); @@ -1047,23 +1069,28 @@ _ok(void *data, else selection = eina_stringshare_add(elm_fileselector_selected_get(fs)); - evas_object_smart_callback_call(fs, SIG_DONE, (void *)selection); + eo_do(fs, eo_event_callback_call + (ELM_FILESELECTOR_EVENT_DONE, (void *)selection)); eina_stringshare_del(selection); + + return EINA_TRUE; } -static void +static Eina_Bool _canc(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *fs = data; - evas_object_smart_callback_call(fs, SIG_DONE, NULL); + eo_do(fs, eo_event_callback_call(ELM_FILESELECTOR_EVENT_DONE, NULL)); + + return EINA_TRUE; } -static void +static Eina_Bool _on_text_activated(void *data, - Evas_Object *obj, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *fs = data; @@ -1076,8 +1103,10 @@ _on_text_activated(void *data, if (!ecore_file_exists(path)) { - evas_object_smart_callback_call(fs, SIG_SELECTED, (void *)path); - evas_object_smart_callback_call(fs, SIG_SELECTED_INVALID, (void *)path); + eo_do(fs, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, (void *)path)); + eo_do(fs, eo_event_callback_call + (ELM_FILESELECTOR_EVENT_SELECTED_INVALID, (void *)path)); goto end; } @@ -1089,7 +1118,8 @@ _on_text_activated(void *data, eina_stringshare_del(p); if (sd->only_folder) - evas_object_smart_callback_call(fs, SIG_SELECTED, (void *)path); + eo_do(fs, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, (void *)path)); goto end; } @@ -1102,7 +1132,8 @@ _on_text_activated(void *data, _populate(fs, dir, NULL, path); if (sd->only_folder) - evas_object_smart_callback_call(fs, SIG_SELECTED, (void *)path); + eo_do(fs, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, (void *)path)); } else { @@ -1143,6 +1174,8 @@ _on_text_activated(void *data, end: elm_object_focus_set(obj, EINA_FALSE); + + return EINA_TRUE; } static Eina_Bool @@ -1158,28 +1191,33 @@ _anchors_undo(void *data) return ECORE_CALLBACK_CANCEL; } -static void +static Eina_Bool _on_text_focused(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { ELM_FILESELECTOR_DATA_GET(data, sd); if (!sd->path_entry_idler) sd->path_entry_idler = ecore_idler_add(_anchors_undo, data); + + return EINA_TRUE; } -static void + +static Eina_Bool _on_text_unfocused(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { ELM_FILESELECTOR_DATA_GET(data, sd); _anchors_do(data, sd->path); + + return EINA_TRUE; } -static void +static Eina_Bool _anchor_clicked(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Elm_Entry_Anchor_Info *info = event_info; @@ -1200,10 +1238,13 @@ _anchor_clicked(void *data, ecore_idler_del(sd->path_entry_idler); sd->path_entry_idler = NULL; } + + return EINA_TRUE; } -static void -_files_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +static Eina_Bool +_files_key_down(void *data, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Event_Key_Down *ev = event_info; Evas_Object *par, *searchbar; @@ -1211,7 +1252,7 @@ _files_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v par = data; searchbar = evas_object_data_get(par, "search"); - if (!searchbar) return; + if (!searchbar) return EINA_TRUE; if (((ev->string) && *(ev->string) && (isalpha(*ev->string) || @@ -1234,6 +1275,8 @@ _files_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v elm_entry_entry_set(searchbar, buf); } } + + return EINA_TRUE; } static Evas_Object * @@ -1248,16 +1291,22 @@ _files_list_add(Evas_Object *obj) evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_min_set(li, 100, 100); - evas_object_smart_callback_add(li, "selected", _on_item_selected, obj); - evas_object_smart_callback_add(li, "unselected", _on_item_unselected, 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 - (li, "contract,request", _on_list_contract_req, obj); - evas_object_smart_callback_add(li, "expanded", _on_list_expanded, obj); - evas_object_smart_callback_add(li, "contracted", _on_list_contracted, obj); - evas_object_event_callback_add(li, EVAS_CALLBACK_KEY_DOWN, _files_key_down, obj); + eo_do(li, eo_event_callback_add + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, _on_item_selected, obj)); + eo_do(li, eo_event_callback_add + (EVAS_SELECTABLE_INTERFACE_EVENT_UNSELECTED, _on_item_unselected, obj)); + eo_do(li, eo_event_callback_add + (ELM_GENLIST_EVENT_ACTIVATED, _on_item_activated, obj)); + eo_do(li, eo_event_callback_add + (ELM_GENLIST_EVENT_EXPAND_REQUEST, _on_list_expand_req, obj)); + eo_do(li, eo_event_callback_add + (ELM_GENLIST_EVENT_CONTRACT_REQUEST, _on_list_contract_req, obj)); + eo_do(li, eo_event_callback_add + (ELM_GENLIST_EVENT_EXPANDED, _on_list_expanded, obj)); + eo_do(li, eo_event_callback_add + (ELM_GENLIST_EVENT_CONTRACTED, _on_list_contracted, obj)); + eo_do(li, eo_event_callback_add + (EVAS_OBJECT_EVENT_KEY_DOWN, _files_key_down, obj)); elm_widget_sub_object_add(obj, li); @@ -1281,10 +1330,14 @@ _files_grid_add(Evas_Object *obj) elm_gengrid_align_set(grid, 0.0, 0.0); - evas_object_smart_callback_add(grid, "selected", _on_item_selected, obj); - evas_object_smart_callback_add(grid, "unselected", _on_item_unselected, obj); - evas_object_smart_callback_add(grid, "activated", _on_item_activated, obj); - evas_object_event_callback_add(grid, EVAS_CALLBACK_KEY_DOWN, _files_key_down, obj); + eo_do(grid, eo_event_callback_add + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, _on_item_selected, obj)); + eo_do(grid, eo_event_callback_add + (EVAS_SELECTABLE_INTERFACE_EVENT_UNSELECTED, _on_item_unselected, obj)); + eo_do(grid, eo_event_callback_add + (ELM_GENGRID_EVENT_ACTIVATED, _on_item_activated, obj)); + eo_do(grid, eo_event_callback_add + (EVAS_OBJECT_EVENT_KEY_DOWN, _files_key_down, obj)); elm_widget_sub_object_add(obj, grid); @@ -1422,8 +1475,9 @@ _resource_deleted(void *data, int type EINA_UNUSED, void *ev) return ECORE_CALLBACK_PASS_ON; } -static void _preedit_cb(void *data, Evas_Object *obj, - void *event_info EINA_UNUSED) +static Eina_Bool +_preedit_cb(void *data, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { ELM_FILESELECTOR_DATA_GET(data, sd); @@ -1431,6 +1485,8 @@ static void _preedit_cb(void *data, Evas_Object *obj, if (sd->search_string && sd->path) _populate(data, sd->path, NULL, NULL); + + return EINA_TRUE; } EOLIAN static void @@ -1460,7 +1516,8 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv) elm_object_part_content_set(bt, "icon", ic); elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Up")); evas_object_size_hint_align_set(bt, 0.0, 0.0); - evas_object_smart_callback_add(bt, "clicked", _on_dir_up, obj); + eo_do(bt, eo_event_callback_add + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _on_dir_up, obj)); elm_widget_sub_object_add(obj, bt); @@ -1475,9 +1532,9 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv) elm_object_part_content_set(bt, "icon", ic); elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Home")); evas_object_size_hint_align_set(bt, 0.0, 0.0); - evas_object_smart_callback_add(bt, "clicked", _home, obj); + eo_do(bt, eo_event_callback_add + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _home, obj)); - elm_widget_sub_object_add(obj, bt); priv->home_button = bt; // spinner @@ -1504,10 +1561,14 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv) evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(en, "anchor,clicked", _anchor_clicked, obj); - evas_object_smart_callback_add(en, "focused", _on_text_focused, obj); - evas_object_smart_callback_add(en, "unfocused", _on_text_unfocused, obj); - evas_object_smart_callback_add(en, "activated", _on_text_activated, obj); + eo_do(en, eo_event_callback_add + (ELM_ENTRY_EVENT_ANCHOR_CLICKED, _anchor_clicked, obj)); + eo_do(en, eo_event_callback_add + (ELM_LAYOUT_EVENT_FOCUSED, _on_text_focused, obj)); + eo_do(en, eo_event_callback_add + (ELM_LAYOUT_EVENT_UNFOCUSED, _on_text_unfocused, obj)); + eo_do(en, eo_event_callback_add + (ELM_ENTRY_EVENT_ACTIVATED, _on_text_activated, obj)); elm_widget_sub_object_add(obj, en); priv->path_entry = en; @@ -1541,7 +1602,8 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv) elm_entry_icon_visible_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(en, "changed", _preedit_cb, obj); + eo_do(en, eo_event_callback_add + (ELM_ENTRY_EVENT_CHANGED, _preedit_cb, obj)); evas_object_data_set(obj, "search", en); elm_widget_sub_object_add(obj, en); @@ -1706,7 +1768,8 @@ _elm_fileselector_buttons_ok_cancel_set(Eo *obj, Elm_Fileselector_Data *sd, Eina elm_widget_mirrored_automatic_set(bt, EINA_FALSE); elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Cancel")); - evas_object_smart_callback_add(bt, "clicked", _canc, obj); + eo_do(bt, eo_event_callback_add + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _canc, obj)); sd->cancel_button = bt; @@ -1715,7 +1778,8 @@ _elm_fileselector_buttons_ok_cancel_set(Eo *obj, Elm_Fileselector_Data *sd, Eina elm_widget_mirrored_automatic_set(bt, EINA_FALSE); elm_object_domain_translatable_text_set(bt, PACKAGE, N_("OK")); - evas_object_smart_callback_add(bt, "clicked", _ok, obj); + eo_do(bt, eo_event_callback_add + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _ok, obj)); sd->ok_button = bt; diff --git a/src/lib/elc_fileselector_button.c b/src/lib/elc_fileselector_button.c index b62b684..9d6cbe8 100644 --- a/src/lib/elc_fileselector_button.c +++ b/src/lib/elc_fileselector_button.c @@ -61,9 +61,9 @@ _elm_fileselector_button_elm_widget_theme_apply(Eo *obj, Elm_Fileselector_Button return EINA_TRUE; } -static void +static Eina_Bool _selection_done(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info) { Elm_Fileselector_Button_Data *sd = data; @@ -77,8 +77,10 @@ _selection_done(void *data, sd->fsw = NULL; evas_object_del(del); - evas_object_smart_callback_call - (sd->obj, SIG_FILE_CHOSEN, (void *)file); + eo_do(sd->obj, eo_event_callback_call + (ELM_FILESELECTOR_BUTTON_EVENT_FILE_CHOSEN, (void *)file)); + + return EINA_TRUE; } static Evas_Object * @@ -89,7 +91,8 @@ _new_window_add(Elm_Fileselector_Button_Data *sd) win = elm_win_add(NULL, "fileselector_button", ELM_WIN_DIALOG_BASIC); elm_win_title_set(win, sd->window_title); elm_win_autodel_set(win, EINA_TRUE); - evas_object_smart_callback_add(win, "delete,request", _selection_done, sd); + eo_do(win, eo_event_callback_add + (ELM_WIN_EVENT_DELETE_REQUEST, _selection_done, sd)); bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -142,7 +145,8 @@ _activate(Elm_Fileselector_Button_Data *sd) evas_object_size_hint_weight_set (sd->fs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(sd->fs, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(sd->fs, "done", _selection_done, sd); + eo_do(sd->fs, eo_event_callback_add + (ELM_FILESELECTOR_EVENT_DONE, _selection_done, sd)); evas_object_show(sd->fs); if (is_inwin) @@ -157,12 +161,14 @@ _activate(Elm_Fileselector_Button_Data *sd) } } -static void +static Eina_Bool _button_clicked(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { _activate(data); + + return EINA_TRUE; } EOLIAN static void @@ -182,7 +188,8 @@ _elm_fileselector_button_evas_object_smart_add(Eo *obj, Elm_Fileselector_Button_ elm_widget_mirrored_automatic_set(obj, EINA_FALSE); - evas_object_smart_callback_add(obj, "clicked", _button_clicked, priv); + eo_do(obj, eo_event_callback_add + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _button_clicked, priv)); eo_do(obj, elm_obj_widget_theme_apply()); elm_widget_can_focus_set(obj, EINA_TRUE); diff --git a/src/lib/elm_fileselector.eo b/src/lib/elm_fileselector.eo index d1dd2e0..6135a1c 100644 --- a/src/lib/elm_fileselector.eo +++ b/src/lib/elm_fileselector.eo @@ -1,5 +1,6 @@ class Elm.Fileselector (Elm.Layout, Elm_Interface_Fileselector, - Elm_Interface_Atspi_Widget_Action) + Elm_Interface_Atspi_Widget_Action, + Evas.Clickable_Interface, Evas.Selectable_Interface) { eo_prefix: elm_obj_fileselector; methods { @@ -59,8 +60,10 @@ class Elm.Fileselector (Elm.Layout, Elm_Interface_Fileselector, Elm_Interface_Atspi_Widget_Action.elm_actions.get; } events { - focused; - unfocused; + done; + activated; + selected,invalid; + directory,open; } } diff --git a/src/lib/elm_fileselector_button.eo b/src/lib/elm_fileselector_button.eo index a253008..d29564c 100644 --- a/src/lib/elm_fileselector_button.eo +++ b/src/lib/elm_fileselector_button.eo @@ -102,8 +102,7 @@ class Elm.Fileselector_Button (Elm.Button, Elm_Interface_Fileselector) events { language,changed; access,changed; - focused; - unfocused; + file,chosen; } } --