static void gimp_temporary_procedure_execute_async (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, GimpValueArray *args, GimpObject *display) { GimpTemporaryProcedure *temp_procedure = GIMP_TEMPORARY_PROCEDURE (procedure); GimpValueArray *return_vals; return_vals = gimp_plug_in_manager_call_run_temp (gimp->plug_in_manager, context, progress, temp_procedure, args); if (return_vals) { GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (procedure); gimp_plug_in_procedure_handle_return_values (proc, gimp, progress, return_vals); gimp_value_array_unref (return_vals); } }
static void gimp_plug_in_handle_proc_return (GimpPlugIn *plug_in, GPProcReturn *proc_return) { GimpPlugInProcFrame *proc_frame = &plug_in->main_proc_frame; g_return_if_fail (proc_return != NULL); proc_frame->return_vals = plug_in_params_to_args (proc_frame->procedure->values, proc_frame->procedure->num_values, proc_return->params, proc_return->nparams, TRUE, TRUE); if (proc_frame->main_loop) { g_main_loop_quit (proc_frame->main_loop); } else { /* the plug-in is run asynchronously, so display its error * messages here because nobody else will do it */ gimp_plug_in_procedure_handle_return_values (GIMP_PLUG_IN_PROCEDURE (proc_frame->procedure), plug_in->manager->gimp, proc_frame->progress, proc_frame->return_vals); } gimp_plug_in_close (plug_in, FALSE); }
static void gimp_plug_in_procedure_execute_async (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, GValueArray *args, GimpObject *display) { GimpPlugInProcedure *plug_in_procedure = GIMP_PLUG_IN_PROCEDURE (procedure); GValueArray *return_vals; return_vals = gimp_plug_in_manager_call_run (gimp->plug_in_manager, context, progress, plug_in_procedure, args, FALSE, display); if (return_vals) { gimp_plug_in_procedure_handle_return_values (plug_in_procedure, gimp, progress, return_vals); g_value_array_free (return_vals); } }