+static void
+on_selection_changed (GtkTreeSelection *selection,
+ gpointer data)
+{
+ BirthdayData *priv;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+
+ g_return_if_fail (data);
+ priv = (BirthdayData *) data;
+
+ if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
+ OssoABookContact *abook_contact = NULL;
+
+ /* unselect selected rows */
+ gtk_tree_selection_unselect_all (selection);
+
+ gtk_tree_model_get (model, &iter, COLUMN_ABOOK_CONTACT, &abook_contact, -1);
+
+ if (abook_contact) {
+ GtkWidget *starter, *dialog;
+ OssoABookContactDetailStore *store;
+ OssoABookContactAction actions[7] = {OSSO_ABOOK_CONTACT_ACTION_TEL,
+ OSSO_ABOOK_CONTACT_ACTION_SMS,
+ OSSO_ABOOK_CONTACT_ACTION_CHATTO,
+ OSSO_ABOOK_CONTACT_ACTION_VOIPTO,
+ OSSO_ABOOK_CONTACT_ACTION_VOIPTO_AUDIO,
+ OSSO_ABOOK_CONTACT_ACTION_VOIPTO_VIDEO,
+ OSSO_ABOOK_CONTACT_ACTION_MAILTO};
+
+ store = osso_abook_contact_detail_store_new (abook_contact,
+ OSSO_ABOOK_CONTACT_DETAIL_EMAIL |
+ OSSO_ABOOK_CONTACT_DETAIL_PHONE |
+ OSSO_ABOOK_CONTACT_DETAIL_IM_VOICE |
+ OSSO_ABOOK_CONTACT_DETAIL_IM_VIDEO |
+ OSSO_ABOOK_CONTACT_DETAIL_IM_CHAT |
+ OSSO_ABOOK_CONTACT_DETAIL_SMS);
+
+ starter = osso_abook_touch_contact_starter_new_with_store (store,
+ (OssoABookContactAction *) &actions,
+ sizeof (actions));
+
+ dialog = osso_abook_touch_contact_starter_dialog_new (GTK_WINDOW (priv->window),
+ OSSO_ABOOK_TOUCH_CONTACT_STARTER (starter));
+ gtk_widget_show_all (dialog);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ }
+ }
+}
+