mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 09:53:25 +00:00
libgimp: add gimp_procedure_find_argument(), aux_argument(), return_value()
This commit is contained in:
parent
6adf77e13a
commit
c7c0397fbe
3 changed files with 134 additions and 47 deletions
|
@ -701,6 +701,9 @@ EXPORTS
|
||||||
gimp_procedure_config_set_values
|
gimp_procedure_config_set_values
|
||||||
gimp_procedure_create_config
|
gimp_procedure_create_config
|
||||||
gimp_procedure_extension_ready
|
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_arguments
|
||||||
gimp_procedure_get_authors
|
gimp_procedure_get_authors
|
||||||
gimp_procedure_get_aux_arguments
|
gimp_procedure_get_aux_arguments
|
||||||
|
|
|
@ -1147,14 +1147,11 @@ void
|
||||||
gimp_procedure_add_argument (GimpProcedure *procedure,
|
gimp_procedure_add_argument (GimpProcedure *procedure,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
gint i;
|
|
||||||
|
|
||||||
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
|
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
|
||||||
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
||||||
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
|
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
|
||||||
|
|
||||||
for (i = 0; i < procedure->priv->n_args; i++)
|
if (gimp_procedure_find_argument (procedure, pspec->name))
|
||||||
if (! strcmp (pspec->name, procedure->priv->args[i]->name))
|
|
||||||
{
|
{
|
||||||
g_warning ("Argument with name '%s' already exists on procedure '%s'",
|
g_warning ("Argument with name '%s' already exists on procedure '%s'",
|
||||||
pspec->name,
|
pspec->name,
|
||||||
|
@ -1162,10 +1159,10 @@ gimp_procedure_add_argument (GimpProcedure *procedure,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < procedure->priv->n_aux_args; i++)
|
if (gimp_procedure_find_aux_argument (procedure, pspec->name))
|
||||||
if (! strcmp (pspec->name, procedure->priv->aux_args[i]->name))
|
|
||||||
{
|
{
|
||||||
g_warning ("Argument with name '%s' already exists on procedure '%s'",
|
g_warning ("Auxiliary argument with name '%s' already exists "
|
||||||
|
"on procedure '%s'",
|
||||||
pspec->name,
|
pspec->name,
|
||||||
gimp_procedure_get_name (procedure));
|
gimp_procedure_get_name (procedure));
|
||||||
return;
|
return;
|
||||||
|
@ -1232,14 +1229,11 @@ void
|
||||||
gimp_procedure_add_aux_argument (GimpProcedure *procedure,
|
gimp_procedure_add_aux_argument (GimpProcedure *procedure,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
gint i;
|
|
||||||
|
|
||||||
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
|
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
|
||||||
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
||||||
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
|
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
|
||||||
|
|
||||||
for (i = 0; i < procedure->priv->n_args; i++)
|
if (gimp_procedure_find_argument (procedure, pspec->name))
|
||||||
if (! strcmp (pspec->name, procedure->priv->args[i]->name))
|
|
||||||
{
|
{
|
||||||
g_warning ("Argument with name '%s' already exists on procedure '%s'",
|
g_warning ("Argument with name '%s' already exists on procedure '%s'",
|
||||||
pspec->name,
|
pspec->name,
|
||||||
|
@ -1247,10 +1241,10 @@ gimp_procedure_add_aux_argument (GimpProcedure *procedure,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < procedure->priv->n_aux_args; i++)
|
if (gimp_procedure_find_aux_argument (procedure, pspec->name))
|
||||||
if (! strcmp (pspec->name, procedure->priv->aux_args[i]->name))
|
|
||||||
{
|
{
|
||||||
g_warning ("Argument with name '%s' already exists on procedure '%s'",
|
g_warning ("Auxiliary argument with name '%s' already exists "
|
||||||
|
"on procedure '%s'",
|
||||||
pspec->name,
|
pspec->name,
|
||||||
gimp_procedure_get_name (procedure));
|
gimp_procedure_get_name (procedure));
|
||||||
return;
|
return;
|
||||||
|
@ -1272,7 +1266,7 @@ gimp_procedure_add_aux_argument (GimpProcedure *procedure,
|
||||||
* @config: a #GObject.
|
* @config: a #GObject.
|
||||||
* @prop_name: property name in @config.
|
* @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.
|
* specifications of the property @prop_name registered on @config.
|
||||||
*
|
*
|
||||||
* See gimp_procedure_add_aux_argument() for details.
|
* See gimp_procedure_add_aux_argument() for details.
|
||||||
|
@ -1315,14 +1309,11 @@ void
|
||||||
gimp_procedure_add_return_value (GimpProcedure *procedure,
|
gimp_procedure_add_return_value (GimpProcedure *procedure,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
gint i;
|
|
||||||
|
|
||||||
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
|
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
|
||||||
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
||||||
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
|
g_return_if_fail (gimp_is_canonical_identifier (pspec->name));
|
||||||
|
|
||||||
for (i = 0; i < procedure->priv->n_values; i++)
|
if (gimp_procedure_find_return_value (procedure, pspec->name))
|
||||||
if (! strcmp (pspec->name, procedure->priv->values[i]->name))
|
|
||||||
{
|
{
|
||||||
g_warning ("Return value with name '%s' already exists on procedure '%s'",
|
g_warning ("Return value with name '%s' already exists on procedure '%s'",
|
||||||
pspec->name,
|
pspec->name,
|
||||||
|
@ -1371,6 +1362,92 @@ gimp_procedure_add_return_value_from_property (GimpProcedure *procedure,
|
||||||
gimp_procedure_add_return_value (procedure, pspec);
|
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:
|
* gimp_procedure_get_arguments:
|
||||||
* @procedure: A #GimpProcedure.
|
* @procedure: A #GimpProcedure.
|
||||||
|
|
|
@ -180,6 +180,13 @@ void gimp_procedure_add_return_value_from_property
|
||||||
GObject *config,
|
GObject *config,
|
||||||
const gchar *prop_name);
|
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,
|
GParamSpec ** gimp_procedure_get_arguments (GimpProcedure *procedure,
|
||||||
gint *n_arguments);
|
gint *n_arguments);
|
||||||
GParamSpec ** gimp_procedure_get_aux_arguments (GimpProcedure *procedure,
|
GParamSpec ** gimp_procedure_get_aux_arguments (GimpProcedure *procedure,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue