static void screenshot_dialog_response_cb (GtkDialog *d, gint response_id, ScreenshotDialog *dialog) { char *uri; if (response_id == GTK_RESPONSE_HELP) { display_help (GTK_WINDOW (d)); } else if (response_id == GTK_RESPONSE_OK) { uri = screenshot_dialog_get_uri (dialog); if (temporary_file == NULL) { save_immediately = TRUE; screenshot_dialog_set_busy (dialog, TRUE); } else { /* we've saved the temporary file, lets try to copy it to the * correct location. */ try_to_save (dialog, uri); } g_free (uri); } else if (response_id == SCREENSHOT_RESPONSE_COPY) { GtkClipboard *clipboard; GdkPixbuf *screenshot; clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (GTK_WIDGET (d)), GDK_SELECTION_CLIPBOARD); screenshot = screenshot_dialog_get_screenshot (dialog); gtk_clipboard_set_image (clipboard, screenshot); } else /* dialog was canceled */ { gtk_widget_destroy (GTK_WIDGET (d)); gtk_main_quit (); } }
static void screenshot_dialog_response_cb (GtkDialog *d, gint response_id, ScreenshotDialog *dialog) { switch (response_id) { case GTK_RESPONSE_HELP: screenshot_display_help (GTK_WINDOW (d)); break; case GTK_RESPONSE_OK: try_to_save (dialog); break; case SCREENSHOT_RESPONSE_COPY: screenshot_save_to_clipboard (); break; default: gtk_widget_destroy (GTK_WIDGET (d)); gtk_main_quit (); break; } }