static gboolean validate_destination (NstPlugin *plugin, GtkWidget *contact_widget, gchar **error) { EmpathyContact *contact = NULL; gboolean ret = TRUE; contact = get_selected_contact (contact_widget); if (!contact) return FALSE; if (!empathy_contact_can_send_files (contact)) { *error = g_strdup (_("The selected contact cannot receive files.")); ret = FALSE; } if (ret && !empathy_contact_is_online (contact)) { *error = g_strdup (_("The selected contact is offline.")); ret = FALSE; } g_object_unref (contact); return ret; }
GtkWidget * empathy_contact_file_transfer_menu_item_new (EmpathyContact *contact) { GtkWidget *item; GtkWidget *image; g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL); item = gtk_image_menu_item_new_with_mnemonic (_("Send File")); image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_DOCUMENT_SEND, GTK_ICON_SIZE_MENU); gtk_widget_set_sensitive (item, empathy_contact_can_send_files (contact) && !empathy_contact_is_user (contact)); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); gtk_widget_show (image); g_signal_connect_swapped (item, "activate", G_CALLBACK (empathy_send_file_with_file_chooser), contact); return item; }