[gimp] libgimp: add gimp_procedure_find_argument(), aux_argument(), return_value()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: add gimp_procedure_find_argument(), aux_argument(), return_value()
- Date: Wed, 23 Oct 2019 17:14:31 +0000 (UTC)
commit c7c0397fbec2a94e459293a2edeadff2b2703ad0
Author: Michael Natterer <mitch gimp org>
Date: Sat Oct 12 12:49:32 2019 +0200
libgimp: add gimp_procedure_find_argument(), aux_argument(), return_value()
libgimp/gimp.def | 3 +
libgimp/gimpprocedure.c | 171 +++++++++++++++++++++++++++++++++++-------------
libgimp/gimpprocedure.h | 7 ++
3 files changed, 134 insertions(+), 47 deletions(-)
---
diff --git a/libgimp/gimp.def b/libgimp/gimp.def
index e2b504d98d..0d11b4d25d 100644
--- a/libgimp/gimp.def
+++ b/libgimp/gimp.def
@@ -701,6 +701,9 @@ EXPORTS
gimp_procedure_config_set_values
gimp_procedure_create_config
gimp_procedure_extension_ready
+ gimp_procedure_find_argument
+ gimp_procedure_find_aux_argument
+ gimp_procedure_find_return_value
gimp_procedure_get_arguments
gimp_procedure_get_authors
gimp_procedure_get_aux_arguments
diff --git a/libgimp/gimpprocedure.c b/libgimp/gimpprocedure.c
index e84d6272a8..be810a5785 100644
--- a/libgimp/gimpprocedure.c
+++ b/libgimp/gimpprocedure.c
@@ -1147,29 +1147,26 @@ void
gimp_procedure_add_argument (GimpProcedure *procedure,
GParamSpec *pspec)
{
- gint i;
-
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
- for (i = 0; i < procedure->priv->n_args; i++)
- if (! strcmp (pspec->name, procedure->priv->args[i]->name))
- {
- g_warning ("Argument with name '%s' already exists on procedure '%s'",
- pspec->name,
- gimp_procedure_get_name (procedure));
- return;
- }
+ if (gimp_procedure_find_argument (procedure, pspec->name))
+ {
+ g_warning ("Argument with name '%s' already exists on procedure '%s'",
+ pspec->name,
+ gimp_procedure_get_name (procedure));
+ return;
+ }
- for (i = 0; i < procedure->priv->n_aux_args; i++)
- if (! strcmp (pspec->name, procedure->priv->aux_args[i]->name))
- {
- g_warning ("Argument with name '%s' already exists on procedure '%s'",
- pspec->name,
- gimp_procedure_get_name (procedure));
- return;
- }
+ if (gimp_procedure_find_aux_argument (procedure, pspec->name))
+ {
+ g_warning ("Auxiliary argument with name '%s' already exists "
+ "on procedure '%s'",
+ pspec->name,
+ gimp_procedure_get_name (procedure));
+ return;
+ }
procedure->priv->args = g_renew (GParamSpec *, procedure->priv->args,
procedure->priv->n_args + 1);
@@ -1232,29 +1229,26 @@ void
gimp_procedure_add_aux_argument (GimpProcedure *procedure,
GParamSpec *pspec)
{
- gint i;
-
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
- for (i = 0; i < procedure->priv->n_args; i++)
- if (! strcmp (pspec->name, procedure->priv->args[i]->name))
- {
- g_warning ("Argument with name '%s' already exists on procedure '%s'",
- pspec->name,
- gimp_procedure_get_name (procedure));
- return;
- }
+ if (gimp_procedure_find_argument (procedure, pspec->name))
+ {
+ g_warning ("Argument with name '%s' already exists on procedure '%s'",
+ pspec->name,
+ gimp_procedure_get_name (procedure));
+ return;
+ }
- for (i = 0; i < procedure->priv->n_aux_args; i++)
- if (! strcmp (pspec->name, procedure->priv->aux_args[i]->name))
- {
- g_warning ("Argument with name '%s' already exists on procedure '%s'",
- pspec->name,
- gimp_procedure_get_name (procedure));
- return;
- }
+ if (gimp_procedure_find_aux_argument (procedure, pspec->name))
+ {
+ g_warning ("Auxiliary argument with name '%s' already exists "
+ "on procedure '%s'",
+ pspec->name,
+ gimp_procedure_get_name (procedure));
+ return;
+ }
procedure->priv->aux_args = g_renew (GParamSpec *, procedure->priv->aux_args,
procedure->priv->n_aux_args + 1);
@@ -1272,7 +1266,7 @@ gimp_procedure_add_aux_argument (GimpProcedure *procedure,
* @config: a #GObject.
* @prop_name: property name in @config.
*
- * Add a new auxiliaty argument to @procedure according to the
+ * Add a new auxiliary argument to @procedure according to the
* specifications of the property @prop_name registered on @config.
*
* See gimp_procedure_add_aux_argument() for details.
@@ -1315,20 +1309,17 @@ void
gimp_procedure_add_return_value (GimpProcedure *procedure,
GParamSpec *pspec)
{
- gint i;
-
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
- for (i = 0; i < procedure->priv->n_values; i++)
- if (! strcmp (pspec->name, procedure->priv->values[i]->name))
- {
- g_warning ("Return value with name '%s' already exists on procedure '%s'",
- pspec->name,
- gimp_procedure_get_name (procedure));
- return;
- }
+ if (gimp_procedure_find_return_value (procedure, pspec->name))
+ {
+ g_warning ("Return value with name '%s' already exists on procedure '%s'",
+ pspec->name,
+ gimp_procedure_get_name (procedure));
+ return;
+ }
procedure->priv->values = g_renew (GParamSpec *, procedure->priv->values,
procedure->priv->n_values + 1);
@@ -1371,6 +1362,92 @@ gimp_procedure_add_return_value_from_property (GimpProcedure *procedure,
gimp_procedure_add_return_value (procedure, pspec);
}
+/**
+ * gimp_procedure_find_argument:
+ * @procedure: A #GimpProcedure
+ * @name: An argument name
+ *
+ * Searches the @procedure's arguments for a #GParamSpec called @name.
+ *
+ * Returns: (transfer none): The @procedure's argument with @name if it
+ * exists, or %NULL otherwise.
+ *
+ * Since: 3.0
+ **/
+GParamSpec *
+gimp_procedure_find_argument (GimpProcedure *procedure,
+ const gchar *name)
+{
+ gint i;
+
+ g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
+ g_return_val_if_fail (name != NULL, NULL);
+
+ for (i = 0; i < procedure->priv->n_args; i++)
+ if (! strcmp (name, procedure->priv->args[i]->name))
+ return procedure->priv->args[i];
+
+ return NULL;
+}
+
+/**
+ * gimp_procedure_find_aux_argument:
+ * @procedure: A #GimpProcedure
+ * @name: An auxiliary argument name
+ *
+ * Searches the @procedure's auxiliary arguments for a #GParamSpec
+ * called @name.
+ *
+ * Returns: (transfer none): The @procedure's auxiliary argument with
+ * @name if it exists, or %NULL otherwise.
+ *
+ * Since: 3.0
+ **/
+GParamSpec *
+gimp_procedure_find_aux_argument (GimpProcedure *procedure,
+ const gchar *name)
+{
+ gint i;
+
+ g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
+ g_return_val_if_fail (name != NULL, NULL);
+
+ for (i = 0; i < procedure->priv->n_aux_args; i++)
+ if (! strcmp (name, procedure->priv->aux_args[i]->name))
+ return procedure->priv->aux_args[i];
+
+ return NULL;
+}
+
+/**
+ * gimp_procedure_find_return_value:
+ * @procedure: A #GimpProcedure
+ * @name: A return value name
+ *
+ * Searches the @procedure's return values for a #GParamSpec called
+ * @name.
+ *
+ * Returns: (transfer none): The @procedure's return values with @name
+ * if it exists, or %NULL otherwise.
+ *
+ * Since: 3.0
+ **/
+GParamSpec *
+gimp_procedure_find_return_value (GimpProcedure *procedure,
+ const gchar *name)
+{
+ gint i;
+
+ g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL);
+ g_return_val_if_fail (name != NULL, NULL);
+
+ for (i = 0; i < procedure->priv->n_values; i++)
+ if (! strcmp (name, procedure->priv->values[i]->name))
+ return procedure->priv->values[i];
+
+ return NULL;
+}
+
/**
* gimp_procedure_get_arguments:
* @procedure: A #GimpProcedure.
diff --git a/libgimp/gimpprocedure.h b/libgimp/gimpprocedure.h
index 70ca03da65..10baf420b2 100644
--- a/libgimp/gimpprocedure.h
+++ b/libgimp/gimpprocedure.h
@@ -180,6 +180,13 @@ void gimp_procedure_add_return_value_from_property
GObject *config,
const gchar *prop_name);
+GParamSpec * gimp_procedure_find_argument (GimpProcedure *procedure,
+ const gchar *name);
+GParamSpec * gimp_procedure_find_aux_argument (GimpProcedure *procedure,
+ const gchar *name);
+GParamSpec * gimp_procedure_find_return_value (GimpProcedure *procedure,
+ const gchar *name);
+
GParamSpec ** gimp_procedure_get_arguments (GimpProcedure *procedure,
gint *n_arguments);
GParamSpec ** gimp_procedure_get_aux_arguments (GimpProcedure *procedure,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]