static void run (const gchar *name, gint nparams, const GimpParam *param, gint *nreturn_vals, GimpParam **return_vals) { static GimpParam values[1]; GimpRunMode run_mode; run_mode = param[0].data.d_int32; *nreturn_vals = 1; *return_vals = values; values[0].type = GIMP_PDB_STATUS; values[0].data.d_status = GIMP_PDB_SUCCESS; INIT_I18N (); switch (run_mode) { case GIMP_RUN_INTERACTIVE: { GtkWidget *dialog; gimp_ui_init (PLUG_IN_BINARY, FALSE); dialog = gimp_proc_browser_dialog_new (_("Procedure Browser"), PLUG_IN_BINARY, gimp_standard_help_func, PLUG_IN_PROC, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } break; case GIMP_RUN_WITH_LAST_VALS: case GIMP_RUN_NONINTERACTIVE: g_warning (PLUG_IN_PROC " allows only interactive invocation"); values[0].data.d_status = GIMP_PDB_CALLING_ERROR; break; default: break; } }
static void script_fu_browse_callback (GtkWidget *widget, ConsoleInterface *console) { if (! console->proc_browser) { console->proc_browser = gimp_proc_browser_dialog_new (_("Script-Fu Procedure Browser"), "script-fu-procedure-browser", gimp_standard_help_func, PROC_NAME, _("_Apply"), GTK_RESPONSE_APPLY, _("_Close"), GTK_RESPONSE_CLOSE, NULL); gtk_dialog_set_default_response (GTK_DIALOG (console->proc_browser), GTK_RESPONSE_APPLY); gimp_dialog_set_alternative_button_order (GTK_DIALOG (console->proc_browser), GTK_RESPONSE_CLOSE, GTK_RESPONSE_APPLY, -1); g_object_add_weak_pointer (G_OBJECT (console->proc_browser), (gpointer) &console->proc_browser); g_signal_connect (console->proc_browser, "response", G_CALLBACK (script_fu_browse_response), console); g_signal_connect (console->proc_browser, "row-activated", G_CALLBACK (script_fu_browse_row_activated), console); } gtk_window_present (GTK_WINDOW (console->proc_browser)); }