diff --git a/src/callbacks.c b/src/callbacks.c index 414c81a..ba71665 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -255,7 +255,7 @@ void on_phone_messages_call(gpointer data) { Phone * phone = data; - /* FIXME implement */ + phone_messages_call_selected(phone); } @@ -264,7 +264,7 @@ void on_phone_messages_delete(gpointer data) { Phone * phone = data; - /* FIXME implement */ + phone_messages_delete_selected(phone); } diff --git a/src/phone.c b/src/phone.c index c6ba830..66b9854 100644 --- a/src/phone.c +++ b/src/phone.c @@ -731,6 +731,34 @@ void phone_messages_set(Phone * phone, unsigned int index, char const * number, } +/* phone_messages_call_selected */ +void phone_messages_call_selected(Phone * phone) +{ + GtkTreeSelection * treesel; + GtkTreeIter iter; + gchar * number = NULL; + + if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW( + phone->me_view))) == NULL) + return; + if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE) + return; + gtk_tree_model_get(GTK_TREE_MODEL(phone->co_store), &iter, + PHONE_MESSAGE_COLUMN_NUMBER, &number, -1); + if(number == NULL) + return; + gsm_call(phone->gsm, GSM_CALL_TYPE_VOICE, number); + g_free(number); +} + + +/* phone_messages_delete_selected */ +void phone_messages_delete_selected(Phone * phone) +{ + /* FIXME implement */ +} + + /* phone_messages_read_selected */ void phone_messages_read_selected(Phone * phone) { diff --git a/src/phone.h b/src/phone.h index f1dfada..7475923 100644 --- a/src/phone.h +++ b/src/phone.h @@ -66,6 +66,8 @@ void phone_dialer_call(Phone * phone, char const * number); void phone_dialer_hangup(Phone * phone); /* messages */ +void phone_messages_call_selected(Phone * phone); +void phone_messages_delete_selected(Phone * phone); void phone_messages_read_selected(Phone * phone); void phone_messages_set(Phone * phone, unsigned int index, char const * number, time_t date, char const * content);