PIKApp/libpika/pikaresource_pdb.c

584 lines
17 KiB
C
Raw Normal View History

2023-09-26 00:35:21 +02:00
/* LIBPIKA - The PIKA Library
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
*
* pikaresource_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 "pika.h"
/**
* SECTION: pikaresource
* @title: pikaresource
* @short_description: Functions to manipulate resources.
*
* Functions to manipulate resources.
**/
/**
* _pika_resource_get_by_name:
* @type_name: The name of the resource type.
* @resource_name: The name of the resource.
*
* Returns a resource with the given name.
*
* Returns a resource with the given name.
*
* Returns: (transfer none): The resource.
*
* Since: 3.0
**/
PikaResource *
_pika_resource_get_by_name (const gchar *type_name,
const gchar *resource_name)
{
PikaValueArray *args;
PikaValueArray *return_vals;
PikaResource *resource = NULL;
args = pika_value_array_new_from_types (NULL,
G_TYPE_STRING, type_name,
G_TYPE_STRING, resource_name,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-get-by-name",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
resource = PIKA_VALUES_GET_RESOURCE (return_vals, 1);
pika_value_array_unref (return_vals);
return resource;
}
/**
* _pika_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
**/
PikaResource *
_pika_resource_get_by_identifiers (const gchar *type_name,
const gchar *resource_name,
const gchar *collection,
gboolean is_internal)
{
PikaValueArray *args;
PikaValueArray *return_vals;
PikaResource *resource = NULL;
args = pika_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 = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-get-by-identifiers",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
resource = PIKA_VALUES_GET_RESOURCE (return_vals, 1);
pika_value_array_unref (return_vals);
return resource;
}
/**
* pika_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.
*
* Returns: Whether the resource ID is valid.
*
* Since: 3.0
**/
gboolean
pika_resource_id_is_valid (gint resource_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean valid = FALSE;
args = pika_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-id-is-valid",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
valid = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return valid;
}
/**
* pika_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
pika_resource_id_is_brush (gint resource_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean brush = FALSE;
args = pika_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-id-is-brush",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
brush = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return brush;
}
/**
* pika_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
pika_resource_id_is_pattern (gint resource_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean pattern = FALSE;
args = pika_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-id-is-pattern",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
pattern = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return pattern;
}
/**
* pika_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
pika_resource_id_is_gradient (gint resource_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean gradient = FALSE;
args = pika_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-id-is-gradient",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
gradient = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return gradient;
}
/**
* pika_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
pika_resource_id_is_palette (gint resource_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean palette = FALSE;
args = pika_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-id-is-palette",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
palette = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return palette;
}
/**
* pika_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
pika_resource_id_is_font (gint resource_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean font = FALSE;
args = pika_value_array_new_from_types (NULL,
G_TYPE_INT, resource_id,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-id-is-font",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
font = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return font;
}
/**
* pika_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 *
pika_resource_get_name (PikaResource *resource)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gchar *name = NULL;
args = pika_value_array_new_from_types (NULL,
PIKA_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-get-name",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
name = PIKA_VALUES_DUP_STRING (return_vals, 1);
pika_value_array_unref (return_vals);
return name;
}
/**
* _pika_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
* pika_resource_get_name(). The second is an opaque identifier for the
* collection this resource belongs to.
* Note: as far as PIKA 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
* _pika_resource_get_by_identifier().
*
* Returns: Whether this is the identifier for internal data.
*
* Since: 3.0
**/
gboolean
_pika_resource_get_identifiers (PikaResource *resource,
gchar **name,
gchar **collection_id)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean is_internal = FALSE;
args = pika_value_array_new_from_types (NULL,
PIKA_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-get-identifiers",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
{
is_internal = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
*name = PIKA_VALUES_DUP_STRING (return_vals, 2);
*collection_id = PIKA_VALUES_DUP_STRING (return_vals, 3);
}
pika_value_array_unref (return_vals);
return is_internal;
}
/**
* pika_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
pika_resource_is_editable (PikaResource *resource)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean editable = FALSE;
args = pika_value_array_new_from_types (NULL,
PIKA_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-is-editable",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
editable = PIKA_VALUES_GET_BOOLEAN (return_vals, 1);
pika_value_array_unref (return_vals);
return editable;
}
/**
* pika_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
**/
PikaResource *
pika_resource_duplicate (PikaResource *resource)
{
PikaValueArray *args;
PikaValueArray *return_vals;
PikaResource *resource_copy = NULL;
args = pika_value_array_new_from_types (NULL,
PIKA_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-duplicate",
args);
pika_value_array_unref (args);
if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS)
resource_copy = PIKA_VALUES_GET_RESOURCE (return_vals, 1);
pika_value_array_unref (return_vals);
return resource_copy;
}
/**
* pika_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, PIKA
* generates a unique name.
*
* Returns: TRUE on success.
*
* Since: 3.0
**/
gboolean
pika_resource_rename (PikaResource *resource,
const gchar *new_name)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean success = TRUE;
args = pika_value_array_new_from_types (NULL,
PIKA_TYPE_RESOURCE, resource,
G_TYPE_STRING, new_name,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-rename",
args);
pika_value_array_unref (args);
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
pika_value_array_unref (return_vals);
return success;
}
/**
* pika_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
pika_resource_delete (PikaResource *resource)
{
PikaValueArray *args;
PikaValueArray *return_vals;
gboolean success = TRUE;
args = pika_value_array_new_from_types (NULL,
PIKA_TYPE_RESOURCE, resource,
G_TYPE_NONE);
return_vals = pika_pdb_run_procedure_array (pika_get_pdb (),
"pika-resource-delete",
args);
pika_value_array_unref (args);
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
pika_value_array_unref (return_vals);
return success;
}