pidgin/gtkwhiteboard.c

changeset 39932
1788230a5ef3
parent 39921
a9c92a82f4c8
parent 39930
411f3df51bcd
child 40197
75ffd76260fc
equal deleted inserted replaced
39927:691b13b22239 39932:1788230a5ef3
497 static void 497 static void
498 pidgin_whiteboard_button_save_press(GtkWidget *widget, gpointer _gtkwb) 498 pidgin_whiteboard_button_save_press(GtkWidget *widget, gpointer _gtkwb)
499 { 499 {
500 PidginWhiteboard *gtkwb = _gtkwb; 500 PidginWhiteboard *gtkwb = _gtkwb;
501 GdkPixbuf *pixbuf; 501 GdkPixbuf *pixbuf;
502 GtkWidget *dialog; 502 GtkFileChooserNative *chooser;
503 int result; 503 int result;
504 504
505 dialog = gtk_file_chooser_dialog_new( 505 chooser = gtk_file_chooser_native_new(_("Save File"), GTK_WINDOW(gtkwb),
506 _("Save File"), GTK_WINDOW(gtkwb), GTK_FILE_CHOOSER_ACTION_SAVE, 506 GTK_FILE_CHOOSER_ACTION_SAVE,
507 _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), 507 _("_Save"), _("_Cancel"));
508 GTK_RESPONSE_ACCEPT, NULL); 508
509 509 gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(chooser),
510 gtk_file_chooser_set_do_overwrite_confirmation( 510 TRUE);
511 GTK_FILE_CHOOSER(dialog), TRUE); 511 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser),
512 512 "whiteboard.png");
513 gtk_file_chooser_set_current_name( 513
514 GTK_FILE_CHOOSER(dialog), "whiteboard.png"); 514 result = gtk_native_dialog_run(GTK_NATIVE_DIALOG(chooser));
515
516 result = gtk_dialog_run(GTK_DIALOG(dialog));
517
518 if (result == GTK_RESPONSE_ACCEPT) { 515 if (result == GTK_RESPONSE_ACCEPT) {
519 gboolean success; 516 gboolean success;
520 gchar *filename = 517 gchar *filename =
521 gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); 518 gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
522
523 gtk_widget_destroy(dialog);
524 519
525 pixbuf = gdk_pixbuf_get_from_surface( 520 pixbuf = gdk_pixbuf_get_from_surface(
526 gtkwb->surface, 0, 0, gtkwb->width, gtkwb->height); 521 gtkwb->surface, 0, 0, gtkwb->width, gtkwb->height);
527 522
528 success = gdk_pixbuf_save(pixbuf, filename, "png", NULL, 523 success = gdk_pixbuf_save(pixbuf, filename, "png", NULL,
536 _("Unable to save the file"), NULL, NULL); 531 _("Unable to save the file"), NULL, NULL);
537 purple_debug_error("gtkwhiteboard", "whiteboard " 532 purple_debug_error("gtkwhiteboard", "whiteboard "
538 "couldn't be saved to \"%s\"", filename); 533 "couldn't be saved to \"%s\"", filename);
539 } 534 }
540 g_free(filename); 535 g_free(filename);
541 } else if (result == GTK_RESPONSE_CANCEL) 536 }
542 gtk_widget_destroy(dialog); 537
538 g_object_unref(chooser);
543 } 539 }
544 540
545 static void 541 static void
546 color_selected(GtkColorButton *button, PidginWhiteboard *gtkwb) 542 color_selected(GtkColorButton *button, PidginWhiteboard *gtkwb)
547 { 543 {

mercurial