From: Avi Levin Date: Sun, 10 May 2015 14:50:04 +0000 (+0300) Subject: elm_entry: porting evas smart callbacks to eo X-Git-Tag: v1.15.0-alpha1~47 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8b19745cf5a7c98c50f63bddaa28aa2bcf4c1090;p=platform%2Fupstream%2Felementary.git elm_entry: porting evas smart callbacks to eo --- diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 52d8070..0755404 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -880,7 +880,7 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd) evas_event_thaw(evas_object_evas_get(obj)); evas_event_thaw_eval(evas_object_evas_get(obj)); - evas_object_smart_callback_call(obj, SIG_THEME_CHANGED, NULL); + eo_do(obj, eo_event_callback_call(ELM_LAYOUT_EVENT_THEME_CHANGED, NULL)); evas_object_unref(obj); @@ -892,7 +892,7 @@ _cursor_geometry_recalc(Evas_Object *obj) { ELM_ENTRY_DATA_GET(obj, sd); - evas_object_smart_callback_call(obj, SIG_CURSOR_CHANGED, NULL); + eo_do(obj, eo_event_callback_call(ELM_ENTRY_EVENT_CURSOR_CHANGED, NULL)); if (!sd->deferred_recalc_job) { @@ -1151,7 +1151,7 @@ _elm_entry_elm_widget_on_focus(Eo *obj, Elm_Entry_Data *sd) if (top && top_is_win && sd->input_panel_enable && !sd->input_panel_show_on_demand && !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text")) elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON); - evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL); + eo_do(obj, eo_event_callback_call(ELM_LAYOUT_EVENT_FOCUSED, NULL)); if (_elm_config->atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); _return_key_enabled_check(obj); @@ -1164,7 +1164,7 @@ _elm_entry_elm_widget_on_focus(Eo *obj, Elm_Entry_Data *sd) if (top && top_is_win && sd->input_panel_enable && !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text")) elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_OFF); - evas_object_smart_callback_call(obj, SIG_UNFOCUSED, NULL); + eo_do(obj, eo_event_callback_call(ELM_LAYOUT_EVENT_UNFOCUSED, NULL)); if (_elm_config->atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_FALSE); @@ -1271,9 +1271,9 @@ _hover_del_job(void *data) sd->hov_deljob = NULL; } -static void +static Eina_Bool _hover_dismissed_cb(void *data, - Evas_Object *obj EINA_UNUSED, + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { ELM_ENTRY_DATA_GET(data, sd); @@ -1292,6 +1292,8 @@ _hover_dismissed_cb(void *data, elm_widget_scroll_freeze_pop(data); ecore_job_del(sd->hov_deljob); sd->hov_deljob = ecore_job_add(_hover_del_job, data); + + return EINA_TRUE; } static void @@ -1397,7 +1399,8 @@ _paste_cb(void *data, ELM_ENTRY_DATA_GET(data, sd); - evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_PASTE, NULL)); sd->selection_asked = EINA_TRUE; @@ -1448,7 +1451,8 @@ _cut_cb(void *data, { ELM_ENTRY_DATA_GET(data, sd); - evas_object_smart_callback_call(data, SIG_SELECTION_CUT, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_CUT, NULL)); /* Store it */ sd->sel_mode = EINA_FALSE; if (!_elm_config->desktop_entry) @@ -1470,7 +1474,8 @@ _copy_cb(void *data, { ELM_ENTRY_DATA_GET(data, sd); - evas_object_smart_callback_call(data, SIG_SELECTION_COPY, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_COPY, NULL)); sd->sel_mode = EINA_FALSE; if (!_elm_config->desktop_entry) { @@ -1558,8 +1563,8 @@ _menu_call(Evas_Object *obj) if (top) elm_hoversel_hover_parent_set(sd->hoversel, top); - evas_object_smart_callback_add - (sd->hoversel, "dismissed", _hover_dismissed_cb, obj); + eo_do(sd->hoversel, eo_event_callback_add + (ELM_HOVER_EVENT_DISMISSED, _hover_dismissed_cb, obj)); if (sd->have_selection) { if (!sd->password) @@ -1769,7 +1774,8 @@ _long_press_cb(void *data) sd->long_pressed = EINA_TRUE; sd->longpress_timer = NULL; - evas_object_smart_callback_call(data, SIG_LONGPRESSED, NULL); + eo_do(data, eo_event_callback_call + (EVAS_CLICKABLE_INTERFACE_EVENT_LONGPRESSED, NULL)); return ECORE_CALLBACK_CANCEL; } @@ -1934,7 +1940,7 @@ _mouse_move_cb(void *data, static void _entry_changed_handle(void *data, - const char *event) + const Eo_Event_Description* event) { Evas_Coord minh; const char *text; @@ -1972,7 +1978,7 @@ _entry_changed_handle(void *data, /* callback - this could call callbacks that delete the * entry... thus... any access to sd after this could be * invalid */ - evas_object_smart_callback_call(data, event, NULL); + eo_do(data, eo_event_callback_call(event, NULL)); } static void @@ -1981,7 +1987,7 @@ _entry_changed_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - _entry_changed_handle(data, SIG_CHANGED); + _entry_changed_handle(data, ELM_ENTRY_EVENT_CHANGED); } static void @@ -1997,11 +2003,11 @@ _entry_changed_user_signal_cb(void *data, if (edje_info) { memcpy(&info, edje_info, sizeof(info)); - evas_object_smart_callback_call(data, SIG_CHANGED_USER, &info); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_CHANGED_USER, &info)); } else { - evas_object_smart_callback_call(data, SIG_CHANGED_USER, NULL); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_CHANGED_USER, NULL)); } if (_elm_config->atspi_mode) { @@ -2029,7 +2035,7 @@ _entry_preedit_changed_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - _entry_changed_handle(data, SIG_PREEDIT_CHANGED); + _entry_changed_handle(data, ELM_ENTRY_EVENT_PREEDIT_CHANGED); } static void @@ -2038,7 +2044,7 @@ _entry_undo_request_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_UNDO_REQUEST, NULL); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_UNDO_REQUEST, NULL)); } static void @@ -2047,7 +2053,7 @@ _entry_redo_request_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_REDO_REQUEST, NULL); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_REDO_REQUEST, NULL)); } static void @@ -2065,7 +2071,8 @@ _entry_selection_start_signal_cb(void *data, { if (entry != data) elm_entry_select_none(entry); } - evas_object_smart_callback_call(data, SIG_SELECTION_START, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_START, NULL)); top = elm_widget_top_get(data); if (txt && top && (elm_win_window_id_get(top))) @@ -2104,7 +2111,8 @@ _entry_selection_changed_signal_cb(void *data, ELM_ENTRY_DATA_GET(data, sd); sd->have_selection = EINA_TRUE; - evas_object_smart_callback_call(data, SIG_SELECTION_CHANGED, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_CHANGED, NULL)); _selection_store(ELM_SEL_TYPE_PRIMARY, data); _update_selection_handler(data); if (_elm_config->atspi_mode) @@ -2122,7 +2130,8 @@ _entry_selection_cleared_signal_cb(void *data, if (!sd->have_selection) return; sd->have_selection = EINA_FALSE; - evas_object_smart_callback_call(data, SIG_SELECTION_CLEARED, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_CLEARED, NULL)); if (sd->cut_sel) { elm_cnp_selection_set @@ -2153,7 +2162,8 @@ _entry_paste_request_signal_cb(void *data, ELM_SEL_TYPE_PRIMARY : ELM_SEL_TYPE_CLIPBOARD; if (!sd->editable) return; - evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL); + eo_do(data, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_PASTE, NULL)); top = elm_widget_top_get(data); if ((top) && (elm_win_window_id_get(top))) @@ -2212,7 +2222,8 @@ _entry_cursor_changed_manual_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_CURSOR_CHANGED_MANUAL, NULL); + eo_do(data, eo_event_callback_call + (ELM_ENTRY_EVENT_CURSOR_CHANGED_MANUAL, NULL)); if (_elm_config->atspi_mode) eo_do(data, eo_event_callback_call(ELM_INTERFACE_ATSPI_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, NULL)); } @@ -2270,7 +2281,7 @@ _entry_anchor_down_signal_cb(void *data, _signal_anchor_geoms_do_things_with_lol(sd, &ei); if (!sd->disabled) - evas_object_smart_callback_call(data, SIG_ANCHOR_DOWN, &ei); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ANCHOR_DOWN, &ei)); } static void @@ -2293,7 +2304,7 @@ _entry_anchor_up_signal_cb(void *data, _signal_anchor_geoms_do_things_with_lol(sd, &ei); if (!sd->disabled) - evas_object_smart_callback_call(data, SIG_ANCHOR_UP, &ei); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ANCHOR_UP, &ei)); } static void @@ -2309,12 +2320,13 @@ _anchor_hover_del_cb(void *data, (sd->anchor_hover.hover, EVAS_CALLBACK_DEL, _anchor_hover_del_cb, obj); } -static void +static Eina_Bool _anchor_hover_clicked_cb(void *data, - Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) { elm_entry_anchor_hover_end(data); + + return EINA_TRUE; } static void @@ -2375,9 +2387,9 @@ _entry_hover_anchor_clicked_do(Evas_Object *obj, ei.hover_right = tmp; } - evas_object_smart_callback_call(obj, SIG_ANCHOR_HOVER_OPENED, &ei); - evas_object_smart_callback_add - (sd->anchor_hover.hover, "clicked", _anchor_hover_clicked_cb, obj); + eo_do(obj, eo_event_callback_call(ELM_ENTRY_EVENT_ANCHOR_HOVER_OPENED, &ei)); + eo_do(sd->anchor_hover.hover, eo_event_callback_add + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _anchor_hover_clicked_cb, obj)); /* FIXME: Should just check if there's any callback registered to * the smart events instead. This is used to determine if anyone @@ -2415,7 +2427,7 @@ _entry_anchor_clicked_signal_cb(void *data, if (!sd->disabled) { - evas_object_smart_callback_call(data, SIG_ANCHOR_CLICKED, &ei); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ANCHOR_CLICKED, &ei)); _entry_hover_anchor_clicked_do(data, &ei); } } @@ -2445,7 +2457,7 @@ _entry_anchor_in_signal_cb(void *data, _signal_anchor_geoms_do_things_with_lol(sd, &ei); if (!sd->disabled) - evas_object_smart_callback_call(data, SIG_ANCHOR_IN, &ei); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ANCHOR_IN, &ei)); } static void @@ -2465,7 +2477,7 @@ _entry_anchor_out_signal_cb(void *data, _signal_anchor_geoms_do_things_with_lol(sd, &ei); if (!sd->disabled) - evas_object_smart_callback_call(data, SIG_ANCHOR_OUT, &ei); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ANCHOR_OUT, &ei)); } static void @@ -2474,7 +2486,7 @@ _entry_key_enter_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_ACTIVATED, NULL); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ACTIVATED, NULL)); } static void @@ -2483,7 +2495,7 @@ _entry_key_escape_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_ABORTED, NULL); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_ABORTED, NULL)); } static void @@ -2492,7 +2504,7 @@ _entry_mouse_down_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_PRESS, NULL); + eo_do(data, eo_event_callback_call(ELM_ENTRY_EVENT_PRESS, NULL)); } static void @@ -2501,7 +2513,8 @@ _entry_mouse_clicked_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_CLICKED, NULL); + eo_do(data, eo_event_callback_call + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, NULL)); } static void @@ -2510,7 +2523,8 @@ _entry_mouse_double_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_CLICKED_DOUBLE, NULL); + eo_do(data, eo_event_callback_call + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED_DOUBLE, NULL)); } static void @@ -2519,7 +2533,8 @@ _entry_mouse_triple_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - evas_object_smart_callback_call(data, SIG_CLICKED_TRIPLE, NULL); + eo_do(data, eo_event_callback_call + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED_TRIPLE, NULL)); } static Evas_Object * @@ -2672,7 +2687,8 @@ _text_append_idler(void *data) free(sd->append_text_left); sd->append_text_left = NULL; sd->append_text_idler = NULL; - evas_object_smart_callback_call(obj, SIG_TEXT_SET_DONE, NULL); + eo_do(obj, eo_event_callback_call + (ELM_ENTRY_EVENT_TEXT_SET_DONE, NULL)); return ECORE_CALLBACK_CANCEL; } } @@ -2734,7 +2750,8 @@ _chars_add_till_limit(Evas_Object *obj, { if (!i) { - evas_object_smart_callback_call(obj, SIG_MAX_LENGTH, NULL); + eo_do(obj, eo_event_callback_call + (ELM_ENTRY_EVENT_MAXLENGTH_REACHED, NULL)); ELM_SAFE_FREE(*text, free); return; } @@ -2752,7 +2769,7 @@ _chars_add_till_limit(Evas_Object *obj, i++; } - evas_object_smart_callback_call(obj, SIG_MAX_LENGTH, NULL); + eo_do(obj, eo_event_callback_call(ELM_ENTRY_EVENT_MAXLENGTH_REACHED, NULL)); } EOLIAN static void @@ -2899,7 +2916,7 @@ _entry_text_append(Evas_Object* obj, const char* entry) /* For the case of text set, append will have similar behaviour * as entry text is cleared first */ edje_object_part_text_append(sd->entry_edje, "elm.text", entry); - evas_object_smart_callback_call(obj, SIG_TEXT_SET_DONE, NULL); + eo_do(obj, eo_event_callback_call(ELM_ENTRY_EVENT_TEXT_SET_DONE, NULL)); } } } @@ -3976,7 +3993,8 @@ _elm_entry_select_none(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) edje_object_signal_emit(sd->entry_edje, "elm,state,select,off", "elm"); } if (sd->have_selection) - evas_object_smart_callback_call(obj, SIG_SELECTION_CLEARED, NULL); + eo_do(obj, eo_event_callback_call + (EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_CLEARED, NULL)); sd->have_selection = EINA_FALSE; edje_object_part_text_select_none(sd->entry_edje, "elm.text"); @@ -4362,7 +4380,8 @@ elm_entry_filter_limit_size(void *data, newlen = evas_string_char_len_get(utfstr); if ((len >= lim->max_char_count) && (newlen > 0)) { - evas_object_smart_callback_call(entry, SIG_MAX_LENGTH, NULL); + eo_do(entry, eo_event_callback_call + (ELM_ENTRY_EVENT_MAXLENGTH_REACHED, NULL)); ELM_SAFE_FREE(*text, free); free(current); free(utfstr); @@ -4378,7 +4397,8 @@ elm_entry_filter_limit_size(void *data, newlen = strlen(utfstr); if ((len >= lim->max_byte_count) && (newlen > 0)) { - evas_object_smart_callback_call(entry, SIG_MAX_LENGTH, NULL); + eo_do(entry, eo_event_callback_call + (ELM_ENTRY_EVENT_MAXLENGTH_REACHED, NULL)); ELM_SAFE_FREE(*text, free); free(current); free(utfstr); @@ -4512,7 +4532,7 @@ inserting: } *insert = 0; if (rejected) - evas_object_smart_callback_call(entry, SIG_REJECTED, NULL); + eo_do(entry, eo_event_callback_call(ELM_ENTRY_EVENT_REJECTED, NULL)); } EOLIAN static void @@ -4645,7 +4665,8 @@ _scroll_cb(Evas_Object *obj, void *data EINA_UNUSED) { ELM_ENTRY_DATA_GET(obj, sd); /* here we need to emit the signal that the elm_scroller would have done */ - evas_object_smart_callback_call(obj, "scroll", NULL); + eo_do(obj, eo_event_callback_call + (EVAS_SCROLLABLE_INTERFACE_EVENT_SCROLL, NULL)); if (sd->have_selection) _update_selection_handler(obj); @@ -5060,7 +5081,8 @@ _elm_entry_elm_widget_activate(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Elm_Act if (!elm_widget_disabled_get(obj) && !evas_object_freeze_events_get(obj)) { - evas_object_smart_callback_call(obj, SIG_CLICKED, NULL); + eo_do(obj, eo_event_callback_call + (EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, NULL)); if (sd->editable && sd->input_panel_enable) edje_object_part_text_input_panel_show(sd->entry_edje, "elm.text"); } diff --git a/src/lib/elm_entry.eo b/src/lib/elm_entry.eo index 9207845..f4876a9 100644 --- a/src/lib/elm_entry.eo +++ b/src/lib/elm_entry.eo @@ -8,7 +8,8 @@ enum Elm.Text_Format } class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, Evas.Clickable_Interface, - Elm_Interface_Atspi_Text, Elm_Interface_Atspi_Editable_Text, Efl.File) + Elm_Interface_Atspi_Text, Elm_Interface_Atspi_Editable_Text, Efl.File, + Evas.Selectable_Interface, Evas.Scrollable_Interface) { eo_prefix: elm_obj_entry; methods { @@ -1237,6 +1238,22 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, Evas.Clickable_Interface, changed,user; validate; context,open; + anchor,clicked; + rejected; + maxlength,reached; + preedit,changed; + press; + redo,request; + undo,request; + text,set,done; + aborted; + anchor,down; + anchor,hover,opened; + anchor,in; + anchor,out; + anchor,up; + cursor,changed; + cursor,changed,manual; } }