static void contact_list_view_remove_activate_cb (GtkMenuItem *menuitem, EmpathyContactListView *view) { EmpathyContactListViewPriv *priv = GET_PRIV (view); EmpathyContact *contact; contact = empathy_contact_list_view_get_selected (view); if (contact) { gchar *text; GtkWindow *parent; parent = empathy_get_toplevel_window (GTK_WIDGET (view)); text = g_strdup_printf (_("Do you really want to remove the contact '%s'?"), empathy_contact_get_name (contact)); if (contact_list_view_remove_dialog_show (parent, _("Removing contact"), text)) { EmpathyContactList *list; list = empathy_contact_list_store_get_list_iface (priv->store); empathy_contact_list_remove (list, contact, _("Sorry, I don't want you in my contact list anymore.")); } g_free (text); g_object_unref (contact); } }
static void contact_list_view_group_remove_activate_cb (GtkMenuItem *menuitem, EmpathyContactListView *view) { EmpathyContactListViewPriv *priv = GET_PRIV (view); gchar *group; group = empathy_contact_list_view_get_selected_group (view); if (group) { gchar *text; GtkWindow *parent; text = g_strdup_printf (_("Do you really want to remove the group '%s'?"), group); parent = empathy_get_toplevel_window (GTK_WIDGET (view)); if (contact_list_view_remove_dialog_show (parent, _("Removing group"), text)) { EmpathyContactList *list; list = empathy_contact_list_store_get_list_iface (priv->store); empathy_contact_list_remove_group (list, group); } g_free (text); } g_free (group); }
static void display_irc_network_dialog (EmpathyAccountWidgetIrc *settings, EmpathyIrcNetwork *network) { GtkWindow *window; GtkWidget *dialog; window = empathy_get_toplevel_window (settings->vbox_settings); dialog = empathy_irc_network_dialog_show (network, GTK_WIDGET (window)); g_signal_connect (dialog, "destroy", G_CALLBACK (irc_network_dialog_destroy_cb), settings); }
static void clicked_cb (GtkButton *button, gpointer user_data) { EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (button); GtkWindow *window; if (priv->dialog != NULL) goto out; window = empathy_get_toplevel_window (GTK_WIDGET (button)); priv->dialog = empathy_irc_network_chooser_dialog_new (priv->settings, priv->network, window); gtk_widget_show_all (priv->dialog); tp_g_signal_connect_object (priv->dialog, "response", G_CALLBACK (dialog_response_cb), button, 0); out: empathy_window_present (GTK_WINDOW (priv->dialog)); }
static void avatar_chooser_clicked_cb (GtkWidget *button, EmpathyAvatarChooser *chooser) { GtkFileChooser *chooser_dialog; GtkWidget *image; gchar *saved_dir = NULL; const gchar *default_dir = DEFAULT_DIR; const gchar *pics_dir; GtkFileFilter *filter; EmpathyAvatarChooserPriv *priv = GET_PRIV (chooser); if (priv->chooser_dialog) { gtk_window_present (GTK_WINDOW (priv->chooser_dialog)); return; } priv->chooser_dialog = GTK_FILE_CHOOSER ( gtk_file_chooser_dialog_new (_("Select Your Avatar Image"), empathy_get_toplevel_window (GTK_WIDGET (chooser)), GTK_FILE_CHOOSER_ACTION_OPEN, _("No Image"), GTK_RESPONSE_NO, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL)); chooser_dialog = priv->chooser_dialog; gtk_window_set_destroy_with_parent (GTK_WINDOW (chooser_dialog), TRUE); /* Get special dirs */ empathy_conf_get_string (empathy_conf_get (), EMPATHY_PREFS_UI_AVATAR_DIRECTORY, &saved_dir); if (saved_dir && !g_file_test (saved_dir, G_FILE_TEST_IS_DIR)) { g_free (saved_dir); saved_dir = NULL; } if (!g_file_test (default_dir, G_FILE_TEST_IS_DIR)) { default_dir = NULL; } pics_dir = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES); if (pics_dir && !g_file_test (pics_dir, G_FILE_TEST_IS_DIR)) { pics_dir = NULL; } /* Set current dir to the last one or to DEFAULT_DIR or to home */ if (saved_dir) { gtk_file_chooser_set_current_folder (chooser_dialog, saved_dir); } else if (pics_dir) { gtk_file_chooser_set_current_folder (chooser_dialog, pics_dir); } else if (default_dir) { gtk_file_chooser_set_current_folder (chooser_dialog, default_dir); } else { gtk_file_chooser_set_current_folder (chooser_dialog, g_get_home_dir ()); } /* Add shortcuts to special dirs */ if (saved_dir) { gtk_file_chooser_add_shortcut_folder (chooser_dialog, saved_dir, NULL); } else if (pics_dir) { gtk_file_chooser_add_shortcut_folder (chooser_dialog, pics_dir, NULL); } if (default_dir) { gtk_file_chooser_add_shortcut_folder (chooser_dialog, default_dir, NULL); } /* Setup preview image */ image = gtk_image_new (); gtk_file_chooser_set_preview_widget (chooser_dialog, image); gtk_widget_set_size_request (image, AVATAR_SIZE_SAVE, AVATAR_SIZE_SAVE); gtk_widget_show (image); gtk_file_chooser_set_use_preview_label (chooser_dialog, FALSE); g_signal_connect (chooser_dialog, "update-preview", G_CALLBACK (avatar_chooser_update_preview_cb), chooser); /* Setup filers */ filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Images")); gtk_file_filter_add_pixbuf_formats (filter); gtk_file_chooser_add_filter (chooser_dialog, filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (chooser_dialog, filter); /* Setup response */ gtk_dialog_set_default_response (GTK_DIALOG (chooser_dialog), GTK_RESPONSE_OK); g_signal_connect (chooser_dialog, "response", G_CALLBACK (avatar_chooser_response_cb), chooser); gtk_widget_show (GTK_WIDGET (chooser_dialog)); g_free (saved_dir); }