static void run (const gchar *name, gint nparams, const GimpParam *param, gint *nreturn_vals, GimpParam **return_vals) { static GimpParam values[2]; GimpRunMode run_mode; GimpPDBStatusType status; gint32 image_ID; GError *error = NULL; run_mode = param[0].data.d_int32; INIT_I18N (); *nreturn_vals = 1; *return_vals = values; values[0].type = GIMP_PDB_STATUS; values[0].data.d_status = GIMP_PDB_EXECUTION_ERROR; image_ID = param[1].data.d_int32; if (strcmp (name, PRINT_PROC_NAME) == 0) { status = print_image (image_ID, run_mode == GIMP_RUN_INTERACTIVE, &error); if (error && run_mode == GIMP_RUN_INTERACTIVE) { print_show_error (error->message); } } else { status = GIMP_PDB_CALLING_ERROR; } if (status != GIMP_PDB_SUCCESS && error) { *nreturn_vals = 2; values[1].type = GIMP_PDB_STRING; values[1].data.d_string = error->message; } values[0].data.d_status = status; }
static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, PrintData *data) { GError *error = NULL; if (print_draw_page (context, data, &error)) { gimp_progress_update (1.0); } else { print_show_error (error->message); g_error_free (error); } }