| 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 { |