gimp/libgimp/gimpresource_pdb.c

592 lines
17 KiB
C

/* LIBGIMP - The GIMP Library
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
*
* gimpresource_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
* <https://www.gnu.org/licenses/>.
*/
/* NOTE: This file is auto-generated by pdbgen.pl */
#include "config.h"
#include "stamp-pdbgen.h"
#include "gimp.h"
/**
* SECTION: gimpresource
* @title: gimpresource
* @short_description: Functions to manipulate resources.
*
* Functions to manipulate resources.
**/
/**
* _gimp_resource_get_by_name:
* @type_name: The name of the resource type e.g. GimpFont.
* @resource_name: The name of the resource.
*
* Returns a resource with the given name.
*
* Returns an existing resource having the given name. Returns %NULL
* when no resource exists of that name.
* There may be many fonts having the same name. See
* gimp_font_get_by_name().
*
* Returns: (nullable) (transfer none): The resource.
*
* Since: 3.0
**/
GimpResource *
_gimp_resource_get_by_name (const gchar *type_name,
const gchar *resource_name)
{
GimpValueArray *args;
GimpValueArray *return_vals;
GimpResource *resource = NULL;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_STRING, type_name,
G_TYPE_STRING, resource_name,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-get-by-name",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
resource = GIMP_VALUES_GET_RESOURCE (return_vals, 1);
gimp_value_array_unref (return_vals);
return resource;
}
/**
* _gimp_resource_get_by_identifiers:
* @type_name: The name of the resource type.
* @resource_name: The name of the resource.
* @collection: The collection identifier.
* @is_internal: Whether this is the identifier for internal data.
*
* Returns the resource contained in a given file with a given name.
*
* Returns a resource specifically stored in a given file path, under a
* given name (a single path may be a collection containing several
* resources).
*
* Returns: (transfer none): The resource.
*
* Since: 3.0
**/
GimpResource *
_gimp_resource_get_by_identifiers (const gchar *type_name,
const gchar *resource_name,
const gchar *collection,
gboolean is_internal)
{
GimpValueArray *args;
GimpValueArray *return_vals;
GimpResource *resource = NULL;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_STRING, type_name,
G_TYPE_STRING, resource_name,
G_TYPE_STRING, collection,
G_TYPE_BOOLEAN, is_internal,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-get-by-identifiers",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
resource = GIMP_VALUES_GET_RESOURCE (return_vals, 1);
gimp_value_array_unref (return_vals);
return resource;
}
/**
* gimp_resource_id_is_valid:
* @resource_id: The resource ID to check.
*
* Returns TRUE if the resource ID is valid.
*
* This procedure checks if the given resource ID is valid and refers
* to an existing resource.
*
* *Note*: in most use cases, you should not use this function. If you
* got a [class@Gimp.Resource] from the API, you should trust it is
* valid. This function is mostly for internal usage.
*
* Returns: Whether the resource ID is valid.
*
* Since: 3.0
**/
gboolean
gimp_resource_id_is_valid (gint resource_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean valid = FALSE;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-id-is-valid",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
valid = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return valid;
}
/**
* gimp_resource_id_is_brush:
* @resource_id: The resource ID.
*
* Returns whether the resource ID is a brush.
*
* This procedure returns TRUE if the specified resource ID is a brush.
*
* Returns: TRUE if the resource ID is a brush, FALSE otherwise.
*
* Since: 3.0
**/
gboolean
gimp_resource_id_is_brush (gint resource_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean brush = FALSE;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-id-is-brush",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
brush = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return brush;
}
/**
* gimp_resource_id_is_pattern:
* @resource_id: The resource ID.
*
* Returns whether the resource ID is a pattern.
*
* This procedure returns TRUE if the specified resource ID is a
* pattern.
*
* Returns: TRUE if the resource ID is a pattern, FALSE otherwise.
*
* Since: 3.0
**/
gboolean
gimp_resource_id_is_pattern (gint resource_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean pattern = FALSE;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-id-is-pattern",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
pattern = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return pattern;
}
/**
* gimp_resource_id_is_gradient:
* @resource_id: The resource ID.
*
* Returns whether the resource ID is a gradient.
*
* This procedure returns TRUE if the specified resource ID is a
* gradient.
*
* Returns: TRUE if the resource ID is a gradient, FALSE otherwise.
*
* Since: 3.0
**/
gboolean
gimp_resource_id_is_gradient (gint resource_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean gradient = FALSE;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-id-is-gradient",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
gradient = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return gradient;
}
/**
* gimp_resource_id_is_palette:
* @resource_id: The resource ID.
*
* Returns whether the resource ID is a palette.
*
* This procedure returns TRUE if the specified resource ID is a
* palette.
*
* Returns: TRUE if the resource ID is a palette, FALSE otherwise.
*
* Since: 3.0
**/
gboolean
gimp_resource_id_is_palette (gint resource_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean palette = FALSE;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-id-is-palette",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
palette = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return palette;
}
/**
* gimp_resource_id_is_font:
* @resource_id: The resource ID.
*
* Returns whether the resource ID is a font.
*
* This procedure returns TRUE if the specified resource ID is a font.
*
* Returns: TRUE if the resource ID is a font, FALSE otherwise.
*
* Since: 3.0
**/
gboolean
gimp_resource_id_is_font (gint resource_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean font = FALSE;
args = gimp_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-id-is-font",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
font = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return font;
}
/**
* gimp_resource_get_name:
* @resource: The resource.
*
* Returns the resource's name.
*
* This procedure returns the resource's name.
*
* Returns: (transfer full): The resource's name.
* The returned value must be freed with g_free().
*
* Since: 3.0
**/
gchar *
gimp_resource_get_name (GimpResource *resource)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gchar *name = NULL;
args = gimp_value_array_new_from_types (NULL,
GIMP_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-get-name",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
name = GIMP_VALUES_DUP_STRING (return_vals, 1);
gimp_value_array_unref (return_vals);
return name;
}
/**
* _gimp_resource_get_identifiers:
* @resource: The resource.
* @name: (out) (transfer full): The resource's name.
* @collection_id: (out) (transfer full): The resource's collection identifier.
*
* Returns a triplet identifying the resource.
*
* This procedure returns 2 strings and a boolean. The first string is
* the resource name, similar to what you would obtain calling
* gimp_resource_get_name(). The second is an opaque identifier for the
* collection this resource belongs to.
*
* *Note*: as far as GIMP is concerned, a collection of resource
* usually corresponds to a single file on disk (which may or may not
* contain several resources). Therefore the identifier may be derived
* from the local file path. Nevertheless you should not use this
* string as such as this is not guaranteed to be always the case. You
* should consider it as an opaque identifier only to be used again
* through _gimp_resource_get_by_identifier().
*
* Returns: Whether this is the identifier for internal data.
*
* Since: 3.0
**/
gboolean
_gimp_resource_get_identifiers (GimpResource *resource,
gchar **name,
gchar **collection_id)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean is_internal = FALSE;
args = gimp_value_array_new_from_types (NULL,
GIMP_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-get-identifiers",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
{
is_internal = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
*name = GIMP_VALUES_DUP_STRING (return_vals, 2);
*collection_id = GIMP_VALUES_DUP_STRING (return_vals, 3);
}
gimp_value_array_unref (return_vals);
return is_internal;
}
/**
* gimp_resource_is_editable:
* @resource: The resource.
*
* Whether the resource can be edited.
*
* Returns TRUE if you have permission to change the resource.
*
* Returns: TRUE if the resource can be edited.
*
* Since: 3.0
**/
gboolean
gimp_resource_is_editable (GimpResource *resource)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean editable = FALSE;
args = gimp_value_array_new_from_types (NULL,
GIMP_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-is-editable",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
editable = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
gimp_value_array_unref (return_vals);
return editable;
}
/**
* gimp_resource_duplicate:
* @resource: The resource.
*
* Duplicates a resource.
*
* Returns a copy having a different, unique ID.
*
* Returns: (transfer none): A copy of the resource.
*
* Since: 3.0
**/
GimpResource *
gimp_resource_duplicate (GimpResource *resource)
{
GimpValueArray *args;
GimpValueArray *return_vals;
GimpResource *resource_copy = NULL;
args = gimp_value_array_new_from_types (NULL,
GIMP_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-duplicate",
args);
gimp_value_array_unref (args);
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
resource_copy = GIMP_VALUES_GET_RESOURCE (return_vals, 1);
gimp_value_array_unref (return_vals);
return resource_copy;
}
/**
* gimp_resource_rename:
* @resource: The resource.
* @new_name: The proposed new name of the resource.
*
* Renames a resource. When the name is in use, renames to a unique
* name.
*
* Renames a resource. When the proposed name is already used, GIMP
* generates a unique name.
*
* Returns: TRUE on success.
*
* Since: 3.0
**/
gboolean
gimp_resource_rename (GimpResource *resource,
const gchar *new_name)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean success = TRUE;
args = gimp_value_array_new_from_types (NULL,
GIMP_TYPE_RESOURCE, resource,
G_TYPE_STRING, new_name,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-rename",
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_resource_delete:
* @resource: The resource.
*
* Deletes a resource.
*
* Deletes a resource. Returns an error if the resource is not
* deletable. Deletes the resource's data. You should not use the
* resource afterwards.
*
* Returns: TRUE on success.
*
* Since: 3.0
**/
gboolean
gimp_resource_delete (GimpResource *resource)
{
GimpValueArray *args;
GimpValueArray *return_vals;
gboolean success = TRUE;
args = gimp_value_array_new_from_types (NULL,
GIMP_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
"gimp-resource-delete",
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;
}