static gchar * xfce_image_list_dialog_list_save_as (XfceImageListDialog *a, gchar const *fname_default) { /* TODO default ? */ XfceFileChooser *fc; XfceFileFilter *filt1; XfceFileFilter *filt2; gint rc; gchar *fname; fname = NULL; TRACE ("list_save_as"); fc = XFCE_FILE_CHOOSER (xfce_file_chooser_new ("Background List - Save as", GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (a))), XFCE_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_OK, NULL )); xfce_file_chooser_set_select_multiple (fc, FALSE); xfce_file_chooser_set_current_name (fc, ".imglist"); /*xfce_file_chooser_set_default_extension .imglist */ filt1 = xfce_file_filter_new (); xfce_file_filter_set_name (filt1, _("Image File List")); xfce_file_filter_add_mime_type (filt1, "application/x-xfce-image-file-list"); xfce_file_filter_add_pattern (filt1, "*.imglist"); xfce_file_chooser_add_filter (fc, filt1); filt2 = xfce_file_filter_new (); xfce_file_filter_set_name (filt2, _("All Files")); xfce_file_chooser_add_filter (fc, filt2); rc = gtk_dialog_run (GTK_DIALOG (fc)); if (rc == GTK_RESPONSE_OK) { fname = xfce_file_chooser_get_filename (fc); gtk_widget_destroy (GTK_WIDGET (fc)); return fname; } return NULL; }
static void mailwatch_iconbtn_clicked_cb(GtkWidget *w, gpointer user_data) { Control *c = user_data; XfceMailwatchPlugin *mwp = c->data; gint icon_type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), "mailwatch-icontype")); GtkWidget *chooser, *toplevel; g_return_if_fail(icon_type == 1 || icon_type == 2); toplevel = gtk_widget_get_toplevel(w); chooser = xfce_file_chooser_dialog_new(_("Select Icon"), GTK_WINDOW(toplevel), XFCE_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); if(gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) { gchar *filename = xfce_file_chooser_get_filename(XFCE_FILE_CHOOSER(chooser)); if(filename) { switch(icon_type) { case 1: { GtkWidget *vbox, *img, *lbl; g_free(mwp->normal_icon); mwp->normal_icon = filename; mailwatch_set_size(c, settings.size); gtk_container_remove(GTK_CONTAINER(w), gtk_bin_get_child(GTK_BIN(w))); vbox = gtk_vbox_new(FALSE, BORDER/2); gtk_widget_show(vbox); gtk_container_add(GTK_CONTAINER(w), vbox); img = gtk_image_new_from_pixbuf(mwp->pix_normal); gtk_widget_show(img); gtk_box_pack_start(GTK_BOX(vbox), img, TRUE, TRUE, 0); lbl = gtk_label_new_with_mnemonic(_("_Normal")); gtk_widget_show(lbl); gtk_box_pack_start(GTK_BOX(vbox), lbl, FALSE, FALSE, 0); } break; case 2: { GtkWidget *vbox, *img, *lbl; g_free(mwp->new_mail_icon); mwp->new_mail_icon = filename; mailwatch_set_size(c, settings.size); gtk_container_remove(GTK_CONTAINER(w), gtk_bin_get_child(GTK_BIN(w))); vbox = gtk_vbox_new(FALSE, BORDER/2); gtk_widget_show(vbox); gtk_container_add(GTK_CONTAINER(w), vbox); img = gtk_image_new_from_pixbuf(mwp->pix_newmail); gtk_widget_show(img); gtk_box_pack_start(GTK_BOX(vbox), img, TRUE, TRUE, 0); lbl = gtk_label_new_with_mnemonic(_("Ne_w mail")); gtk_widget_show(lbl); gtk_box_pack_start(GTK_BOX(vbox), lbl, FALSE, FALSE, 0); } break; } } } gtk_widget_destroy(chooser); }