static void pf_dealloc(PyGimpPDBFunction *self) { g_free(self->name); Py_DECREF(self->proc_name); Py_DECREF(self->proc_blurb); Py_DECREF(self->proc_help); Py_DECREF(self->proc_author); Py_DECREF(self->proc_copyright); Py_DECREF(self->proc_date); Py_DECREF(self->proc_type); Py_DECREF(self->py_params); Py_DECREF(self->py_return_vals); gimp_destroy_paramdefs(self->params, self->nparams); gimp_destroy_paramdefs(self->return_vals, self->nreturn_vals); PyObject_DEL(self); }
static void script_fu_browse_response (GtkWidget *widget, gint response_id, ConsoleInterface *console) { GimpProcBrowserDialog *dialog = GIMP_PROC_BROWSER_DIALOG (widget); gchar *proc_name; gchar *proc_blurb; gchar *proc_help; gchar *proc_author; gchar *proc_copyright; gchar *proc_date; GimpPDBProcType proc_type; gint n_params; gint n_return_vals; GimpParamDef *params; GimpParamDef *return_vals; gint i; GString *text; if (response_id != GTK_RESPONSE_APPLY) { gtk_widget_destroy (widget); return; } proc_name = gimp_proc_browser_dialog_get_selected (dialog); if (proc_name == NULL) return; gimp_procedural_db_proc_info (proc_name, &proc_blurb, &proc_help, &proc_author, &proc_copyright, &proc_date, &proc_type, &n_params, &n_return_vals, ¶ms, &return_vals); text = g_string_new ("("); text = g_string_append (text, proc_name); for (i = 0; i < n_params; i++) { text = g_string_append_c (text, ' '); text = g_string_append (text, params[i].name); } text = g_string_append_c (text, ')'); gtk_window_set_focus (GTK_WINDOW (console->dialog), console->cc); gtk_entry_set_text (GTK_ENTRY (console->cc), text->str); gtk_editable_set_position (GTK_EDITABLE (console->cc), g_utf8_pointer_to_offset (text->str, text->str + strlen (proc_name) + 2)); g_string_free (text, TRUE); gtk_window_present (GTK_WINDOW (console->dialog)); g_free (proc_name); g_free (proc_blurb); g_free (proc_help); g_free (proc_author); g_free (proc_copyright); g_free (proc_date); gimp_destroy_paramdefs (params, n_params); gimp_destroy_paramdefs (return_vals, n_return_vals); }