diff --git a/libgimp/gimp.def b/libgimp/gimp.def index 14bdc36caa..be6b2ec6ae 100644 --- a/libgimp/gimp.def +++ b/libgimp/gimp.def @@ -682,6 +682,7 @@ EXPORTS gimp_procedure_add_return_value_from_property gimp_procedure_config_begin_run gimp_procedure_config_end_run + gimp_procedure_config_get_procedure gimp_procedure_config_get_type gimp_procedure_config_get_values gimp_procedure_config_set_values diff --git a/libgimp/gimpprocedureconfig.c b/libgimp/gimpprocedureconfig.c index 688868276d..a64bb5f610 100644 --- a/libgimp/gimpprocedureconfig.c +++ b/libgimp/gimpprocedureconfig.c @@ -177,6 +177,25 @@ gimp_procedure_config_get_property (GObject *object, /* public functions */ +/** + * gimp_procedure_config_get_procedure: + * @config: a #GimpProcedureConfig + * + * This function returns the #GimpProcedure which created @config, see + * gimp_procedure_create_config(). + * + * Returns: The #GimpProcedure which created @config. + * + * Since: 3.0 + **/ +GimpProcedure * +gimp_procedure_config_get_procedure (GimpProcedureConfig *config) +{ + g_return_val_if_fail (GIMP_IS_PROCEDURE_CONFIG (config), NULL); + + return config->priv->procedure; +} + /** * gimp_procedure_config_set_values: * @config: a #GimpProcedureConfig diff --git a/libgimp/gimpprocedureconfig.h b/libgimp/gimpprocedureconfig.h index 3e6fd58e08..4960526fa0 100644 --- a/libgimp/gimpprocedureconfig.h +++ b/libgimp/gimpprocedureconfig.h @@ -65,18 +65,21 @@ struct _GimpProcedureConfigClass }; -GType gimp_procedure_config_get_type (void) G_GNUC_CONST; +GType gimp_procedure_config_get_type (void) G_GNUC_CONST; -void gimp_procedure_config_set_values (GimpProcedureConfig *config, - const GimpValueArray *values); -void gimp_procedure_config_get_values (GimpProcedureConfig *config, - GimpValueArray *values); +GimpProcedure * + gimp_procedure_config_get_procedure (GimpProcedureConfig *config); -void gimp_procedure_config_begin_run (GimpProcedureConfig *config, - GimpRunMode run_mode, - const GimpValueArray *args); -void gimp_procedure_config_end_run (GimpProcedureConfig *config, - GimpRunMode run_mode); +void gimp_procedure_config_set_values (GimpProcedureConfig *config, + const GimpValueArray *values); +void gimp_procedure_config_get_values (GimpProcedureConfig *config, + GimpValueArray *values); + +void gimp_procedure_config_begin_run (GimpProcedureConfig *config, + GimpRunMode run_mode, + const GimpValueArray *args); +void gimp_procedure_config_end_run (GimpProcedureConfig *config, + GimpRunMode run_mode); G_END_DECLS diff --git a/libgimp/gimpproceduredialog.c b/libgimp/gimpproceduredialog.c index ee06fe2264..a6820a5446 100644 --- a/libgimp/gimpproceduredialog.c +++ b/libgimp/gimpproceduredialog.c @@ -168,6 +168,8 @@ gimp_procedure_dialog_new (GimpProcedure *procedure, g_return_val_if_fail (GIMP_IS_PROCEDURE (procedure), NULL); g_return_val_if_fail (GIMP_IS_PROCEDURE_CONFIG (config), NULL); + g_return_val_if_fail (gimp_procedure_config_get_procedure (config) == + procedure, NULL); g_return_val_if_fail (title != NULL, NULL); role = g_strdup_printf ("gimp-%s", gimp_procedure_get_name (procedure));