/* LIBGIMP - The GIMP Library * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball * * gimppdb_pdb.c * * This library is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see * . */ /* NOTE: This file is auto-generated by pdbgen.pl */ #include "config.h" #include "gimp.h" #include "gimppdb_pdb.h" /** * _gimp_pdb_temp_name: * * Generates a unique temporary PDB name. * * This procedure generates a temporary PDB entry name that is * guaranteed to be unique. * * Returns: (transfer full): A unique temporary name for a temporary PDB entry. * The returned value must be freed with g_free(). **/ gchar * _gimp_pdb_temp_name (void) { GimpValueArray *args; GimpValueArray *return_vals; gchar *temp_name = NULL; args = gimp_value_array_new_from_types (NULL, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-temp-name", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) temp_name = GIMP_VALUES_DUP_STRING (return_vals, 1); gimp_value_array_unref (return_vals); return temp_name; } /** * _gimp_pdb_dump: * @filename: The dump filename. * * Dumps the current contents of the procedural database * * This procedure dumps the contents of the procedural database to the * specified file. The file will contain all of the information * provided for each registered procedure. * * Returns: TRUE on success. **/ gboolean _gimp_pdb_dump (const gchar *filename) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, filename, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-dump", args); gimp_value_array_unref (args); success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; gimp_value_array_unref (return_vals); return success; } /** * _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) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, name, G_TYPE_STRING, blurb, G_TYPE_STRING, help, G_TYPE_STRING, authors, G_TYPE_STRING, copyright, G_TYPE_STRING, date, G_TYPE_STRING, proc_type, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-query", args); gimp_value_array_unref (args); *num_matches = 0; *procedure_names = NULL; success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; if (success) { *num_matches = GIMP_VALUES_GET_INT (return_vals, 1); *procedure_names = GIMP_VALUES_DUP_STRING_ARRAY (return_vals, 2); } gimp_value_array_unref (return_vals); return success; } /** * _gimp_pdb_proc_exists: * @procedure_name: The procedure name. * * Checks if the specified procedure exists in the procedural database * * This procedure checks if the specified procedure is registered in * the procedural database. * * Returns: Whether a procedure of that name is registered. * * Since: 2.6 **/ gboolean _gimp_pdb_proc_exists (const gchar *procedure_name) { GimpValueArray *args; GimpValueArray *return_vals; gboolean exists = FALSE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-exists", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) exists = GIMP_VALUES_GET_BOOLEAN (return_vals, 1); gimp_value_array_unref (return_vals); return exists; } /** * _gimp_pdb_proc_info: * @procedure_name: The procedure name. * @proc_type: (out): The procedure type. * @num_args: (out): The number of input arguments. * @num_values: (out): The number of return values. * * Queries the procedural database for information on the specified * procedure. * * This procedure returns information on the specified procedure. The * procedure type, number of input, and number of return values are * returned. For specific information on each input argument and return * value, use the gimp_pdb_db_proc_argument() and * gimp_pdb_db_proc_return_value() procedures. * * Returns: TRUE on success. **/ gboolean _gimp_pdb_proc_info (const gchar *procedure_name, GimpPDBProcType *proc_type, gint *num_args, gint *num_values) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-info", args); gimp_value_array_unref (args); *proc_type = 0; *num_args = 0; *num_values = 0; success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; if (success) { *proc_type = GIMP_VALUES_GET_ENUM (return_vals, 1); *num_args = GIMP_VALUES_GET_INT (return_vals, 2); *num_values = GIMP_VALUES_GET_INT (return_vals, 3); } gimp_value_array_unref (return_vals); return success; } /** * _gimp_pdb_proc_image_types: * @procedure_name: The procedure name. * * Queries the procedural database for the image types supported by the * specified procedure. * * This procedure returns the image types supported by the specified * procedure. * * Returns: (transfer full): The image types. * The returned value must be freed with g_free(). * * Since: 3.0 **/ gchar * _gimp_pdb_proc_image_types (const gchar *procedure_name) { GimpValueArray *args; GimpValueArray *return_vals; gchar *image_types = NULL; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-image-types", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) image_types = GIMP_VALUES_DUP_STRING (return_vals, 1); gimp_value_array_unref (return_vals); return image_types; } /** * _gimp_pdb_proc_menu_label: * @procedure_name: The procedure name. * * Queries the procedural database for the procedure's menu label. * * This procedure returns the menu label of the specified procedure. * * Returns: (transfer full): The menu_label. * The returned value must be freed with g_free(). * * Since: 3.0 **/ gchar * _gimp_pdb_proc_menu_label (const gchar *procedure_name) { GimpValueArray *args; GimpValueArray *return_vals; gchar *menu_label = NULL; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-menu-label", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) menu_label = GIMP_VALUES_DUP_STRING (return_vals, 1); gimp_value_array_unref (return_vals); return menu_label; } /** * _gimp_pdb_proc_menu_paths: * @procedure_name: The procedure name. * @num_menu_paths: (out): The number of menu paths. * * Queries the procedural database for the procedure's menu paths. * * This procedure returns the menu paths of the specified procedure. * * Returns: (array length=num_menu_paths) (element-type gchar*) (transfer full): * The menu paths of the plug-in. * The returned value must be freed with g_strfreev(). * * Since: 3.0 **/ gchar ** _gimp_pdb_proc_menu_paths (const gchar *procedure_name, gint *num_menu_paths) { GimpValueArray *args; GimpValueArray *return_vals; gchar **menu_paths = NULL; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-menu-paths", args); gimp_value_array_unref (args); *num_menu_paths = 0; if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) { *num_menu_paths = GIMP_VALUES_GET_INT (return_vals, 1); menu_paths = GIMP_VALUES_DUP_STRING_ARRAY (return_vals, 2); } gimp_value_array_unref (return_vals); return menu_paths; } /** * _gimp_pdb_proc_documentation: * @procedure_name: The procedure name. * @blurb: (out) (transfer full): A short blurb. * @help: (out) (transfer full): Detailed procedure help. * @help_id: (out) (transfer full): The procedure help_id. * * Queries the procedural database for documentation on the specified * procedure. * * This procedure returns documentation on the specified procedure. A * short blurb, detailed help and help_id. * * Returns: TRUE on success. * * Since: 3.0 **/ gboolean _gimp_pdb_proc_documentation (const gchar *procedure_name, gchar **blurb, gchar **help, gchar **help_id) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-documentation", args); gimp_value_array_unref (args); *blurb = NULL; *help = NULL; *help_id = NULL; success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; if (success) { *blurb = GIMP_VALUES_DUP_STRING (return_vals, 1); *help = GIMP_VALUES_DUP_STRING (return_vals, 2); *help_id = GIMP_VALUES_DUP_STRING (return_vals, 3); } gimp_value_array_unref (return_vals); return success; } /** * _gimp_pdb_proc_attribution: * @procedure_name: The procedure name. * @authors: (out) (transfer full): Authors of the procedure. * @copyright: (out) (transfer full): The copyright. * @date: (out) (transfer full): Copyright date. * * Queries the procedural database for attribution information on the * specified procedure. * * This procedure returns attribution information on the specified * procedure. The authors, copyright information and date are returned. * * Returns: TRUE on success. * * Since: 3.0 **/ gboolean _gimp_pdb_proc_attribution (const gchar *procedure_name, gchar **authors, gchar **copyright, gchar **date) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-attribution", args); gimp_value_array_unref (args); *authors = NULL; *copyright = NULL; *date = NULL; success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; if (success) { *authors = GIMP_VALUES_DUP_STRING (return_vals, 1); *copyright = GIMP_VALUES_DUP_STRING (return_vals, 2); *date = GIMP_VALUES_DUP_STRING (return_vals, 3); } gimp_value_array_unref (return_vals); return success; } /** * _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) { GimpValueArray *args; GimpValueArray *return_vals; GParamSpec *param_spec = NULL; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_INT, arg_num, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-argument", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) param_spec = GIMP_VALUES_DUP_PARAM (return_vals, 1); gimp_value_array_unref (return_vals); return param_spec; } /** * _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) { GimpValueArray *args; GimpValueArray *return_vals; GParamSpec *param_spec = NULL; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, procedure_name, G_TYPE_INT, val_num, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-proc-return-value", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) param_spec = GIMP_VALUES_DUP_PARAM (return_vals, 1); gimp_value_array_unref (return_vals); return param_spec; } /** * _gimp_pdb_get_data: * @identifier: The identifier associated with data. * @bytes: (out): The number of bytes in the data. * @data: (out) (array length=bytes) (element-type guint8) (transfer full): A byte array containing data. * * Returns data associated with the specified identifier. * * This procedure returns any data which may have been associated with * the specified identifier. The data is a variable length array of * bytes. If no data has been associated with the identifier, an error * is returned. * * Returns: TRUE on success. **/ gboolean _gimp_pdb_get_data (const gchar *identifier, gint *bytes, guint8 **data) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, identifier, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-get-data", args); gimp_value_array_unref (args); *bytes = 0; *data = NULL; success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; if (success) { *bytes = GIMP_VALUES_GET_INT (return_vals, 1); *data = GIMP_VALUES_DUP_UINT8_ARRAY (return_vals, 2); } gimp_value_array_unref (return_vals); return success; } /** * _gimp_pdb_get_data_size: * @identifier: The identifier associated with data. * * Returns size of data associated with the specified identifier. * * This procedure returns the size of any data which may have been * associated with the specified identifier. If no data has been * associated with the identifier, an error is returned. * * Returns: The number of bytes in the data. **/ gint _gimp_pdb_get_data_size (const gchar *identifier) { GimpValueArray *args; GimpValueArray *return_vals; gint bytes = 0; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, identifier, G_TYPE_NONE); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-get-data-size", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) bytes = GIMP_VALUES_GET_INT (return_vals, 1); gimp_value_array_unref (return_vals); return bytes; } /** * _gimp_pdb_set_data: * @identifier: The identifier associated with data. * @bytes: The number of bytes in the data. * @data: (array length=bytes) (element-type guint8): A byte array containing data. * * Associates the specified identifier with the supplied data. * * This procedure associates the supplied data with the provided * identifier. The data may be subsequently retrieved by a call to * 'procedural-db-get-data'. * * Returns: TRUE on success. **/ gboolean _gimp_pdb_set_data (const gchar *identifier, gint bytes, const guint8 *data) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, G_TYPE_STRING, identifier, G_TYPE_INT, bytes, GIMP_TYPE_UINT8_ARRAY, NULL, G_TYPE_NONE); gimp_value_set_uint8_array (gimp_value_array_index (args, 2), data, bytes); return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-pdb-set-data", args); gimp_value_array_unref (args); success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; gimp_value_array_unref (return_vals); return success; }