From 1d4c80d5308bfb4fcd99f679d05c4838b1bd4679 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Fri, 7 Sep 2012 16:42:36 -0300 Subject: [PATCH] contacts: make widget emit the selected number instead of dialing. This commit is in preparation to create a new libofono-efl-utils to be used by dialer and other applications. --- dialer/contacts.c | 10 +++++++--- dialer/gui.c | 11 +++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/dialer/contacts.c b/dialer/contacts.c index 4e50a3e..3cb10f3 100644 --- a/dialer/contacts.c +++ b/dialer/contacts.c @@ -6,7 +6,6 @@ #include #include "log.h" -#include "gui.h" #include "ofono.h" #include "contacts.h" #include "util.h" @@ -517,11 +516,13 @@ static void _on_del(void *data, Evas *e __UNUSED__, eet_shutdown(); } -static void _on_number_clicked(void *data, Evas_Object *obj __UNUSED__, +static void _on_number_clicked(void *data, Evas_Object *obj, void *event_inf __UNUSED__) { const char *number = data; - gui_dial(number); + Evas_Object *contacts = evas_object_data_get(obj, "contacts"); + printf("contacts=%p, number=%p\n", contacts, number); + evas_object_smart_callback_call(contacts, "selected", (void *)number); } static void _on_item_click(void *data, Evas_Object *obj __UNUSED__, @@ -555,6 +556,7 @@ static void _on_item_click(void *data, Evas_Object *obj __UNUSED__, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(btn); + evas_object_data_set(btn, "contacts", contacts->layout); evas_object_smart_callback_add(btn, "clicked", _on_number_clicked, c_info->mobile); elm_layout_box_append(details, "box.phones", btn); @@ -570,6 +572,7 @@ static void _on_item_click(void *data, Evas_Object *obj __UNUSED__, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(btn); + evas_object_data_set(btn, "contacts", contacts->layout); evas_object_smart_callback_add(btn, "clicked", _on_number_clicked, c_info->home); elm_layout_box_append(details, "box.phones", btn); @@ -585,6 +588,7 @@ static void _on_item_click(void *data, Evas_Object *obj __UNUSED__, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(btn); + evas_object_data_set(btn, "contacts", contacts->layout); evas_object_smart_callback_add(btn, "clicked", _on_number_clicked, c_info->work); elm_layout_box_append(details, "box.phones", btn); diff --git a/dialer/gui.c b/dialer/gui.c index 0ea697b..64a9806 100644 --- a/dialer/gui.c +++ b/dialer/gui.c @@ -224,6 +224,15 @@ static void _ofono_ussd_notify(void *data __UNUSED__, Eina_Bool needs_reply, ussd_start(message); } +static void _on_contacts_selected(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + const char *number = event_info; + DBG("Contact selected: %s", number); + gui_dial(number); +} + Eina_Bool gui_init(void) { Evas_Object *lay, *obj; @@ -266,6 +275,8 @@ Eina_Bool gui_init(void) elm_object_part_content_set(lay, "elm.swallow.keypad", obj); contacts = obj = contacts_add(win); + evas_object_smart_callback_add(contacts, "selected", + _on_contacts_selected, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); elm_object_part_content_set(lay, "elm.swallow.contacts", obj); -- 2.7.4