[gimp] libgimp: remove a lot of cruft because script-fu is ported now
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: remove a lot of cruft because script-fu is ported now
- Date: Mon, 12 Aug 2019 18:49:28 +0000 (UTC)
commit 79d92a5d05a19daec1bb046b7552ba0554ced6f9
Author: Michael Natterer <mitch gimp org>
Date: Mon Aug 12 20:42:27 2019 +0200
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 | 255 +++++++++-------------------------------
8 files changed, 87 insertions(+), 485 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);
-
- 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);
+ procedure = gimp_pdb_lookup_procedure (gimp_get_pdb (),
+ procedure_name);
+
+ 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)
- {
- 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_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)
- {
- 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_args (procedure_name, n_return_vals, TRUE,
- name_group, type_group, desc_group);
- gtk_container_add (GTK_CONTAINER (frame), grid);
- gtk_widget_show (grid);
- }
+ grid = gimp_proc_view_create_args (procedure, FALSE,
+ name_group, type_group, desc_group);
- 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)
+ 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_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)
+ 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_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;
-
- 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++)
- {
- 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);
- }
+ GtkWidget *grid;
+ GParamSpec **pspecs;
+ gint n_pspecs;
+ gint i;
- return grid;
-}
+ if (return_values)
+ pspecs = gimp_procedure_get_return_values (procedure, &n_pspecs);
+ else
+ pspecs = gimp_procedure_get_arguments (procedure, &n_pspecs);
-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;
+ 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_args; i++)
+ for (i = 0; i < n_pspecs; 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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]