From 79d92a5d05a19daec1bb046b7552ba0554ced6f9 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Mon, 12 Aug 2019 20:42:27 +0200 Subject: [PATCH] libgimp: remove a lot of cruft because script-fu is ported now Also remove all legacy code from GimpProcView and GimpProcBrowserDialog. --- libgimp/gimp.def | 4 - libgimp/gimplegacy.c | 150 ------------------ libgimp/gimplegacy.h | 22 +-- libgimp/gimppdb.c | 45 ------ libgimp/gimppdb.h | 6 - libgimp/gimppdbprocedure.c | 4 +- libgimp/gimpprocbrowserdialog.c | 86 ++++------- libgimp/gimpprocview.c | 259 ++++++++------------------------ 8 files changed, 89 insertions(+), 487 deletions(-) diff --git a/libgimp/gimp.def b/libgimp/gimp.def index e535a4c4d3..758614547b 100644 --- a/libgimp/gimp.def +++ b/libgimp/gimp.def @@ -638,11 +638,7 @@ EXPORTS gimp_pdb_get_last_status gimp_pdb_get_type gimp_pdb_lookup_procedure - gimp_pdb_proc_argument - gimp_pdb_proc_info - gimp_pdb_proc_return_value gimp_pdb_procedure_exists - gimp_pdb_query gimp_pdb_query_procedures gimp_pdb_run_procedure gimp_pdb_run_procedure_array diff --git a/libgimp/gimplegacy.c b/libgimp/gimplegacy.c index 1c11b740df..dc68d8a4a6 100644 --- a/libgimp/gimplegacy.c +++ b/libgimp/gimplegacy.c @@ -1514,156 +1514,6 @@ gimp_pdb_temp_name (void) return _gimp_pdb_temp_name (); } -/** - * gimp_pdb_query: - * @name: The regex for procedure name. - * @blurb: The regex for procedure blurb. - * @help: The regex for procedure help. - * @authors: The regex for procedure authors. - * @copyright: The regex for procedure copyright. - * @date: The regex for procedure date. - * @proc_type: The regex for procedure type: { 'Internal GIMP procedure', 'GIMP Plug-in', 'GIMP Extension', 'Temporary Procedure' }. - * @num_matches: (out): The number of matching procedures. - * @procedure_names: (out) (array length=num_matches) (element-type gchar*) (transfer full): The list of procedure names. - * - * Queries the procedural database for its contents using regular - * expression matching. - * - * This procedure queries the contents of the procedural database. It - * is supplied with seven arguments matching procedures on { name, - * blurb, help, authors, copyright, date, procedure type}. This is - * accomplished using regular expression matching. For instance, to - * find all procedures with \"jpeg\" listed in the blurb, all seven - * arguments can be supplied as \".*\", except for the second, which - * can be supplied as \".*jpeg.*\". There are two return arguments for - * this procedure. The first is the number of procedures matching the - * query. The second is a concatenated list of procedure names - * corresponding to those matching the query. If no matching entries - * are found, then the returned string is NULL and the number of - * entries is 0. - * - * Returns: TRUE on success. - **/ -gboolean -gimp_pdb_query (const gchar *name, - const gchar *blurb, - const gchar *help, - const gchar *authors, - const gchar *copyright, - const gchar *date, - const gchar *proc_type, - gint *num_matches, - gchar ***procedure_names) -{ - ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC); - - return _gimp_pdb_query (name, - blurb, help, - authors, copyright, date, - proc_type, - num_matches, procedure_names); -} - -/** - * gimp_pdb_proc_info: - * @procedure_name: The procedure name. - * @blurb: A short blurb. - * @help: Detailed procedure help. - * @authors: Authors of the procedure. - * @copyright: The copyright. - * @date: Copyright date. - * @proc_type: The procedure type. - * @num_args: The number of input arguments. - * @num_values: The number of return values. - * @args: The input arguments. - * @return_vals: The return values. - * - * Queries the procedural database for information on the specified - * procedure. - * - * This procedure returns information on the specified procedure. A - * short blurb, detailed help, authors, copyright information, - * procedure type, number of input, and number of return values are - * returned. Additionally this function returns specific information - * about each input argument and return value. - * - * Returns: TRUE on success. - */ -gboolean -gimp_pdb_proc_info (const gchar *procedure_name, - gchar **blurb, - gchar **help, - gchar **authors, - gchar **copyright, - gchar **date, - GimpPDBProcType *proc_type, - gint *num_args, - gint *num_values, - GimpParamDef **args, - GimpParamDef **return_vals) -{ - gint i; - gboolean success = TRUE; - - success = _gimp_pdb_proc_info (procedure_name, - blurb, - help, - authors, - copyright, - date, - proc_type, - num_args, - num_values); - - if (success) - { - *args = g_new0 (GimpParamDef, *num_args); - *return_vals = g_new0 (GimpParamDef, *num_values); - - for (i = 0; i < *num_args; i++) - { - GParamSpec *pspec = gimp_pdb_proc_argument (procedure_name, i); - GimpParamDef *arg = &(*args)[i]; - - if (! pspec) - { - g_free (*args); - g_free (*return_vals); - - return FALSE; - } - - arg->type = _gimp_pdb_gtype_to_arg_type (pspec->value_type); - arg->name = g_strdup (g_param_spec_get_name (pspec)); - arg->description = g_strdup (g_param_spec_get_blurb (pspec)); - - g_param_spec_unref (pspec); - } - - for (i = 0; i < *num_values; i++) - { - GParamSpec *pspec = gimp_pdb_proc_return_value (procedure_name, i); - GimpParamDef *val = &(*return_vals)[i]; - - if (! pspec) - { - g_free (*args); - g_free (*return_vals); - - return FALSE; - } - - val->type = _gimp_pdb_gtype_to_arg_type (pspec->value_type); - val->name = g_strdup (g_param_spec_get_name (pspec)); - val->description = g_strdup (g_param_spec_get_blurb (pspec)); - - g_param_spec_unref (pspec); - } - } - - return success; -} - /* private functions */ diff --git a/libgimp/gimplegacy.h b/libgimp/gimplegacy.h index eec352a0e4..92b0e5685f 100644 --- a/libgimp/gimplegacy.h +++ b/libgimp/gimplegacy.h @@ -377,27 +377,7 @@ gboolean gimp_register_thumbnail_loader (const gchar *load_proc, /* pdb stuff that should now be done using GimpPDB */ -gchar * gimp_pdb_temp_name (void); -gboolean gimp_pdb_query (const gchar *name, - const gchar *blurb, - const gchar *help, - const gchar *authors, - const gchar *copyright, - const gchar *date, - const gchar *proc_type, - gint *num_matches, - gchar ***procedure_names); -gboolean gimp_pdb_proc_info (const gchar *procedure_name, - gchar **blurb, - gchar **help, - gchar **authors, - gchar **copyright, - gchar **date, - GimpPDBProcType *proc_type, - gint *num_args, - gint *num_values, - GimpParamDef **args, - GimpParamDef **return_vals); +gchar * gimp_pdb_temp_name (void); #endif /* GIMP_DISABLE_COMPAT_CRUFT */ diff --git a/libgimp/gimppdb.c b/libgimp/gimppdb.c index f155e6535f..593a6614ac 100644 --- a/libgimp/gimppdb.c +++ b/libgimp/gimppdb.c @@ -447,51 +447,6 @@ _gimp_pdb_error_quark (void) /* Temporary API, to go away before 3.0 */ -/** - * gimp_pdb_proc_argument: - * @procedure_name: The procedure name. - * @arg_num: The argument number. - * - * Queries the procedural database for information on the specified - * procedure's argument. - * - * This procedure returns the #GParamSpec of procedure_name's argument. - * - * Returns: (transfer full): The GParamSpec of the argument. - * The returned value must be freed with g_param_spec_unref(). - * - * Since: 3.0 - **/ -GParamSpec * -gimp_pdb_proc_argument (const gchar *procedure_name, - gint arg_num) -{ - return _gimp_pdb_proc_argument (procedure_name, arg_num); -} - -/** - * gimp_pdb_proc_return_value: - * @procedure_name: The procedure name. - * @val_num: The return value number. - * - * Queries the procedural database for information on the specified - * procedure's return value. - * - * This procedure returns the #GParamSpec of procedure_name's return - * value. - * - * Returns: (transfer full): The GParamSpec of the return value. - * The returned value must be freed with g_param_spec_unref(). - * - * Since: 3.0 - **/ -GParamSpec * -gimp_pdb_proc_return_value (const gchar *procedure_name, - gint val_num) -{ - return _gimp_pdb_proc_return_value (procedure_name, val_num); -} - /** * gimp_pdb_get_last_error: * @pdb: a #GimpPDB. diff --git a/libgimp/gimppdb.h b/libgimp/gimppdb.h index b834e0df6e..fa45af611a 100644 --- a/libgimp/gimppdb.h +++ b/libgimp/gimppdb.h @@ -103,12 +103,6 @@ gchar ** gimp_pdb_query_procedures (GimpPDB *pdb, const gchar * gimp_pdb_get_last_error (GimpPDB *pdb); GimpPDBStatusType gimp_pdb_get_last_status (GimpPDB *pdb); -/* Temporary API, to go away before 3.0 */ - -GParamSpec * gimp_pdb_proc_argument (const gchar *procedure_name, - gint arg_num); -GParamSpec * gimp_pdb_proc_return_value (const gchar *procedure_name, - gint val_num); /* Cruft API */ diff --git a/libgimp/gimppdbprocedure.c b/libgimp/gimppdbprocedure.c index 382296a362..1dc9057c26 100644 --- a/libgimp/gimppdbprocedure.c +++ b/libgimp/gimppdbprocedure.c @@ -221,14 +221,14 @@ _gimp_pdb_procedure_new (GimpPDB *pdb, for (i = 0; i < n_params; i++) { - GParamSpec *pspec = gimp_pdb_proc_argument (name, i); + GParamSpec *pspec = _gimp_pdb_proc_argument (name, i); gimp_procedure_add_argument (procedure, pspec); } for (i = 0; i < n_return_vals; i++) { - GParamSpec *pspec = gimp_pdb_proc_return_value (name, i); + GParamSpec *pspec = _gimp_pdb_proc_return_value (name, i); gimp_procedure_add_return_value (procedure, pspec); } diff --git a/libgimp/gimpprocbrowserdialog.c b/libgimp/gimpprocbrowserdialog.c index 810bafe611..5a19737cd6 100644 --- a/libgimp/gimpprocbrowserdialog.c +++ b/libgimp/gimpprocbrowserdialog.c @@ -353,8 +353,9 @@ browser_search (GimpBrowser *browser, gint search_type, GimpProcBrowserDialog *dialog) { - GimpProcBrowserDialogPrivate *priv = GET_PRIVATE (dialog); - gchar **proc_list; + GimpProcBrowserDialogPrivate *priv = GET_PRIVATE (dialog); + GimpPDB *pdb = gimp_get_pdb (); + gchar **proc_list = NULL; gint num_procs; gchar *str; GRegex *regex; @@ -381,13 +382,9 @@ browser_search (GimpBrowser *browser, case SEARCH_TYPE_ALL: gimp_browser_show_message (browser, _("Searching")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", ".*", ".*", ".*", ".*", - ".*", ".*", ".*", &num_procs); - else - gimp_pdb_query (".*", ".*", ".*", ".*", ".*", ".*", ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", ".*", ".*", ".*", ".*", + ".*", ".*", ".*", &num_procs); break; case SEARCH_TYPE_NAME: @@ -407,14 +404,9 @@ browser_search (GimpBrowser *browser, q++; } - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - query->str, ".*", ".*", ".*", ".*", - ".*", ".*", ".*", &num_procs); - else - gimp_pdb_query (query->str, - ".*", ".*", ".*", ".*", ".*", ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + query->str, ".*", ".*", ".*", ".*", + ".*", ".*", ".*", &num_procs); g_string_free (query, TRUE); } @@ -423,73 +415,49 @@ browser_search (GimpBrowser *browser, case SEARCH_TYPE_BLURB: gimp_browser_show_message (browser, _("Searching by description")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", query_text, ".*", ".*", ".*", - ".*", ".*", ".*", &num_procs); - else - gimp_pdb_query (".*", query_text, ".*", ".*", ".*", ".*", ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", query_text, ".*", ".*", ".*", + ".*", ".*", ".*", &num_procs); break; case SEARCH_TYPE_HELP: gimp_browser_show_message (browser, _("Searching by help")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", ".*", query_text, ".*", ".*", - ".*", ".*", ".*", &num_procs); - else - gimp_pdb_query (".*", ".*", query_text, ".*", ".*", ".*", ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", ".*", query_text, ".*", ".*", + ".*", ".*", ".*", &num_procs); break; case SEARCH_TYPE_AUTHORS: gimp_browser_show_message (browser, _("Searching by authors")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", ".*", ".*", ".*", query_text, - ".*", ".*", ".*", &num_procs); - else - gimp_pdb_query (".*", ".*", ".*", query_text, ".*", ".*", ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", ".*", ".*", ".*", query_text, + ".*", ".*", ".*", &num_procs); break; case SEARCH_TYPE_COPYRIGHT: gimp_browser_show_message (browser, _("Searching by copyright")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", ".*", ".*", ".*", ".*", - query_text, ".*", ".*", &num_procs); - else - gimp_pdb_query (".*", ".*", ".*", ".*", query_text, ".*", ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", ".*", ".*", ".*", ".*", + query_text, ".*", ".*", &num_procs); break; case SEARCH_TYPE_DATE: gimp_browser_show_message (browser, _("Searching by date")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", ".*", ".*", ".*", ".*", - ".*", query_text, ".*", &num_procs); - else - gimp_pdb_query (".*", ".*", ".*", ".*", ".*", query_text, ".*", - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", ".*", ".*", ".*", ".*", + ".*", query_text, ".*", &num_procs); break; case SEARCH_TYPE_PROC_TYPE: gimp_browser_show_message (browser, _("Searching by type")); - if (gimp_get_plug_in ()) - proc_list = gimp_pdb_query_procedures (gimp_get_pdb (), - ".*", ".*", ".*", ".*", ".*", - ".*", ".*", query_text, &num_procs); - else - gimp_pdb_query (".*", ".*", ".*", ".*", ".*", ".*", query_text, - &num_procs, &proc_list); + proc_list = gimp_pdb_query_procedures (pdb, + ".*", ".*", ".*", ".*", ".*", + ".*", ".*", query_text, &num_procs); break; } diff --git a/libgimp/gimpprocview.c b/libgimp/gimpprocview.c index 32e1caf43c..a7a15db658 100644 --- a/libgimp/gimpprocview.c +++ b/libgimp/gimpprocview.c @@ -54,17 +54,11 @@ /* local function prototypes */ -static GtkWidget * gimp_proc_view_create_params (const GimpParamDef *params, - gint n_params, - GtkSizeGroup *name_group, - GtkSizeGroup *type_group, - GtkSizeGroup *desc_group); -static GtkWidget * gimp_proc_view_create_args (const gchar *procedure_name, - gint n_args, - gboolean return_values, - GtkSizeGroup *name_group, - GtkSizeGroup *type_group, - GtkSizeGroup *desc_group); +static GtkWidget * gimp_proc_view_create_args (GimpProcedure *procedure, + gboolean return_values, + GtkSizeGroup *name_group, + GtkSizeGroup *type_group, + GtkSizeGroup *desc_group); /* public functions */ @@ -84,50 +78,47 @@ GtkWidget * gimp_proc_view_new (const gchar *procedure_name, const gchar *menu_path) { + GimpProcedure *procedure; GtkWidget *main_vbox; GtkWidget *frame; GtkWidget *vbox; GtkWidget *grid; GtkWidget *label; - GtkWidget *notebook; GtkSizeGroup *name_group; GtkSizeGroup *type_group; GtkSizeGroup *desc_group; - gchar *blurb; - gchar *help; - gchar *authors; - gchar *copyright; - gchar *date; + const gchar *blurb; + const gchar *help; + const gchar *help_id; + const gchar *authors; + const gchar *copyright; + const gchar *date; GimpPDBProcType type; - gint n_params; - gint n_return_vals; - GimpParamDef *params; - GimpParamDef *return_vals; const gchar *type_str; gint row; g_return_val_if_fail (procedure_name != NULL, NULL); - gimp_pdb_proc_info (procedure_name, - &blurb, - &help, - &authors, - ©right, - &date, - &type, - &n_params, - &n_return_vals, - ¶ms, - &return_vals); + procedure = gimp_pdb_lookup_procedure (gimp_get_pdb (), + procedure_name); - if (blurb && strlen (blurb) < 2) g_clear_pointer (&blurb, g_free); - if (help && strlen (help) < 2) g_clear_pointer (&help, g_free); - if (authors && strlen (authors) < 2) g_clear_pointer (&authors, g_free); - if (date && strlen (date) < 2) g_clear_pointer (&date, g_free); - if (copyright && strlen (copyright) < 2) g_clear_pointer (©right, g_free); + type = gimp_procedure_get_proc_type (procedure); + blurb = gimp_procedure_get_blurb (procedure); + help = gimp_procedure_get_help (procedure); + help_id = gimp_procedure_get_help_id (procedure); + authors = gimp_procedure_get_authors (procedure); + copyright = gimp_procedure_get_copyright (procedure); + date = gimp_procedure_get_date (procedure); + + if (blurb && strlen (blurb) < 2) blurb = NULL; + if (help && strlen (help) < 2) help = NULL; + if (help_id && strlen (help_id) < 2) help_id = NULL; + if (authors && strlen (authors) < 2) authors = NULL; + if (copyright && strlen (copyright) < 2) copyright = NULL; + if (date && strlen (date) < 2) date = NULL; if (blurb && help && ! strcmp (blurb, help)) - g_clear_pointer (&help, g_free); + help = NULL; main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); @@ -175,82 +166,34 @@ gimp_proc_view_new (const gchar *procedure_name, gtk_widget_show (label); } - notebook = gtk_notebook_new (); - gtk_box_pack_start (GTK_BOX (main_vbox), notebook, FALSE, FALSE, 0); - gtk_widget_show (notebook); - - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, - gtk_label_new (_("GValue-based API"))); - gtk_widget_show (vbox); - name_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); type_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); desc_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); /* in parameters */ - if (n_params) + grid = gimp_proc_view_create_args (procedure, FALSE, + name_group, type_group, desc_group); + + if (grid) { frame = gimp_frame_new (_("Parameters")); - gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); - grid = gimp_proc_view_create_args (procedure_name, n_params, FALSE, - name_group, type_group, desc_group); gtk_container_add (GTK_CONTAINER (frame), grid); gtk_widget_show (grid); } /* out parameters */ - if (n_return_vals) + grid = gimp_proc_view_create_args (procedure, TRUE, + name_group, type_group, desc_group); + + if (grid) { frame = gimp_frame_new (_("Return Values")); - gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); - grid = gimp_proc_view_create_args (procedure_name, n_return_vals, TRUE, - name_group, type_group, desc_group); - gtk_container_add (GTK_CONTAINER (frame), grid); - gtk_widget_show (grid); - } - - g_object_unref (name_group); - g_object_unref (type_group); - g_object_unref (desc_group); - - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, - gtk_label_new (_("Legacy API"))); - gtk_widget_show (vbox); - - name_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - type_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - desc_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - - /* in parameters */ - if (n_params) - { - frame = gimp_frame_new (_("Parameters")); - gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); - gtk_widget_show (frame); - - grid = gimp_proc_view_create_params (params, n_params, - name_group, type_group, desc_group); - gtk_container_add (GTK_CONTAINER (frame), grid); - gtk_widget_show (grid); - } - - /* out parameters */ - if (n_return_vals) - { - frame = gimp_frame_new (_("Return Values")); - gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); - gtk_widget_show (frame); - - grid = gimp_proc_view_create_params (return_vals, n_return_vals, - name_group, type_group, desc_group); gtk_container_add (GTK_CONTAINER (frame), grid); gtk_widget_show (grid); } @@ -284,7 +227,7 @@ gimp_proc_view_new (const gchar *procedure_name, /* show the authors & the copyright */ if (! authors && ! date && ! copyright) - goto out; + return main_vbox; grid = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (grid), 6); @@ -333,30 +276,6 @@ gimp_proc_view_new (const gchar *procedure_name, label, 3); } - out: - - g_free (blurb); - g_free (help); - g_free (authors); - g_free (copyright); - g_free (date); - - while (n_params--) - { - g_free (params[n_params].name); - g_free (params[n_params].description); - } - - g_free (params); - - while (n_return_vals--) - { - g_free (return_vals[n_return_vals].name); - g_free (return_vals[n_return_vals].description); - } - - g_free (return_vals); - return main_vbox; } @@ -364,92 +283,34 @@ gimp_proc_view_new (const gchar *procedure_name, /* private functions */ static GtkWidget * -gimp_proc_view_create_params (const GimpParamDef *params, - gint n_params, - GtkSizeGroup *name_group, - GtkSizeGroup *type_group, - GtkSizeGroup *desc_group) +gimp_proc_view_create_args (GimpProcedure *procedure, + gboolean return_values, + GtkSizeGroup *name_group, + GtkSizeGroup *type_group, + GtkSizeGroup *desc_group) { - GtkWidget *grid; - gint i; + GtkWidget *grid; + GParamSpec **pspecs; + gint n_pspecs; + gint i; + + if (return_values) + pspecs = gimp_procedure_get_return_values (procedure, &n_pspecs); + else + pspecs = gimp_procedure_get_arguments (procedure, &n_pspecs); + + if (! pspecs) + return NULL; grid = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (grid), 6); gtk_grid_set_row_spacing (GTK_GRID (grid), 4); - for (i = 0; i < n_params; i++) + for (i = 0; i < n_pspecs; i++) { - GtkWidget *label; - const gchar *type; - gchar *upper; - - /* name */ - label = gtk_label_new (params[i].name); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_label_set_yalign (GTK_LABEL (label), 0.0); - gtk_size_group_add_widget (name_group, label); - gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1); - gtk_widget_show (label); - - /* type */ - if (! gimp_enum_get_value (GIMP_TYPE_PDB_ARG_TYPE, params[i].type, - NULL, &type, NULL, NULL)) - upper = g_strdup ("UNKNOWN"); - else - upper = g_ascii_strup (type, -1); - - label = gtk_label_new (upper); - g_free (upper); - - gimp_label_set_attributes (GTK_LABEL (label), - PANGO_ATTR_FAMILY, "monospace", - PANGO_ATTR_STYLE, PANGO_STYLE_ITALIC, - -1); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_label_set_yalign (GTK_LABEL (label), 0.0); - gtk_size_group_add_widget (type_group, label); - gtk_grid_attach (GTK_GRID (grid), label, 1, i, 1, 1); - gtk_widget_show (label); - - /* description */ - label = gtk_label_new (params[i].description); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_label_set_yalign (GTK_LABEL (label), 0.0); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - gtk_size_group_add_widget (desc_group, label); - gtk_grid_attach (GTK_GRID (grid), label, 2, i, 1, 1); - gtk_widget_show (label); - } - - return grid; -} - -static GtkWidget * -gimp_proc_view_create_args (const gchar *procedure_name, - gint n_args, - gboolean return_values, - GtkSizeGroup *name_group, - GtkSizeGroup *type_group, - GtkSizeGroup *desc_group) -{ - GtkWidget *grid; - gint i; - - grid = gtk_grid_new (); - gtk_grid_set_column_spacing (GTK_GRID (grid), 6); - gtk_grid_set_row_spacing (GTK_GRID (grid), 4); - - for (i = 0; i < n_args; i++) - { - GParamSpec *pspec; + GParamSpec *pspec = pspecs[i]; GtkWidget *label; - if (return_values) - pspec = gimp_pdb_proc_return_value (procedure_name, i); - else - pspec = gimp_pdb_proc_argument (procedure_name, i); - /* name */ label = gtk_label_new (g_param_spec_get_name (pspec)); gtk_label_set_xalign (GTK_LABEL (label), 0.0); @@ -479,8 +340,6 @@ gimp_proc_view_create_args (const gchar *procedure_name, gtk_size_group_add_widget (desc_group, label); gtk_grid_attach (GTK_GRID (grid), label, 2, i, 1, 1); gtk_widget_show (label); - - g_param_spec_unref (pspec); } return grid;