/* LIBPIKA - The PIKA Library * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball * * pikapalette_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 "stamp-pdbgen.h" #include "pika.h" /** * SECTION: pikapalette * @title: pikapalette * @short_description: Installable object, a small set of colors a user can choose from. * * Installable object, a small set of colors a user can choose from. **/ /** * pika_palette_new: * @name: The requested name of the new palette. * * Creates a new palette * * Creates a new palette. The new palette has no color entries. You * must add color entries for a user to choose. The actual name might * be different than the requested name, when the requested name is * already in use. * * Returns: (transfer none): The palette. * * Since: 2.2 **/ PikaPalette * pika_palette_new (const gchar *name) { PikaValueArray *args; PikaValueArray *return_vals; PikaPalette *palette = NULL; args = pika_value_array_new_from_types (NULL, G_TYPE_STRING, name, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-new", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) palette = PIKA_VALUES_GET_PALETTE (return_vals, 1); pika_value_array_unref (return_vals); return palette; } /** * pika_palette_get_by_name: * @name: The name of the palette. * * Returns the palette with the given name. * * Returns the palette with the given name. * * Returns: (transfer none): The palette. * * Since: 3.0 **/ PikaPalette * pika_palette_get_by_name (const gchar *name) { PikaValueArray *args; PikaValueArray *return_vals; PikaPalette *palette = NULL; args = pika_value_array_new_from_types (NULL, G_TYPE_STRING, name, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-get-by-name", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) palette = PIKA_VALUES_GET_PALETTE (return_vals, 1); pika_value_array_unref (return_vals); return palette; } /** * pika_palette_get_color_count: * @palette: The palette. * * Get the count of colors in the palette. * * Returns the number of colors in the palette. * * Returns: The number of colors in the palette. * * Since: 2.2 **/ gint pika_palette_get_color_count (PikaPalette *palette) { PikaValueArray *args; PikaValueArray *return_vals; gint num_colors = 0; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-get-color-count", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) num_colors = PIKA_VALUES_GET_INT (return_vals, 1); pika_value_array_unref (return_vals); return num_colors; } /** * pika_palette_get_colors: * @palette: The palette. * @num_colors: (out): Length of the colors array. * * Gets colors in the palette. * * Returns an array of colors in the palette. * * Returns: (array length=num_colors) (element-type PikaRGB) (transfer full): * The colors in the palette. * The returned value must be freed with g_free(). * * Since: 2.6 **/ PikaRGB * pika_palette_get_colors (PikaPalette *palette, gint *num_colors) { PikaValueArray *args; PikaValueArray *return_vals; PikaRGB *colors = NULL; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-get-colors", args); pika_value_array_unref (args); *num_colors = 0; if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) { *num_colors = PIKA_VALUES_GET_INT (return_vals, 1); colors = PIKA_VALUES_DUP_RGB_ARRAY (return_vals, 2); } pika_value_array_unref (return_vals); return colors; } /** * pika_palette_get_columns: * @palette: The palette. * * Gets the number of columns used to display the palette * * Gets the preferred number of columns to display the palette. * * Returns: The number of columns used to display this palette. * * Since: 2.4 **/ gint pika_palette_get_columns (PikaPalette *palette) { PikaValueArray *args; PikaValueArray *return_vals; gint num_columns = 0; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-get-columns", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) num_columns = PIKA_VALUES_GET_INT (return_vals, 1); pika_value_array_unref (return_vals); return num_columns; } /** * pika_palette_set_columns: * @palette: The palette. * @columns: The new number of columns. * * Sets the number of columns used to display the palette * * Set the number of colors shown per row when the palette is * displayed. Returns an error when the palette is not editable. The * maximum allowed value is 64. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_palette_set_columns (PikaPalette *palette, gint columns) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_INT, columns, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-set-columns", 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_palette_add_entry: * @palette: The palette. * @entry_name: A name for the entry. * @color: The color for the added entry. * @entry_num: (out): The index of the added entry. * * Appends an entry to the palette. * * Appends an entry to the palette. Neither color nor name must be * unique within the palette. When name is the empty string, this sets * the entry name to \"Untitled\". Returns the index of the entry. * Returns an error when palette is not editable. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_palette_add_entry (PikaPalette *palette, const gchar *entry_name, const PikaRGB *color, gint *entry_num) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_STRING, entry_name, PIKA_TYPE_RGB, color, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-add-entry", args); pika_value_array_unref (args); *entry_num = 0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *entry_num = PIKA_VALUES_GET_INT (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_palette_delete_entry: * @palette: The palette. * @entry_num: The index of the entry to delete. * * Deletes an entry from the palette. * * This function will fail and return %FALSE if the index is out or * range or if the palette is not editable. * Additionally if the palette belongs to an indexed image, it will * only be possible to delete palette colors not in use in the image. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_palette_delete_entry (PikaPalette *palette, gint entry_num) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_INT, entry_num, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-delete-entry", 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_palette_entry_get_color: * @palette: The palette. * @entry_num: The index of the entry to get the color of. * @color: (out caller-allocates): The color at the index. * * Gets the color of an entry in the palette. * * Returns the color of the entry at the given zero-based index into * the palette. Returns an error when the index is out of range. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_palette_entry_get_color (PikaPalette *palette, gint entry_num, PikaRGB *color) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_INT, entry_num, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-entry-get-color", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) PIKA_VALUES_GET_RGB (return_vals, 1, &*color); pika_value_array_unref (return_vals); return success; } /** * pika_palette_entry_set_color: * @palette: The palette. * @entry_num: The entry to get. * @color: The new color. * * Sets the color of an entry in the palette. * * Sets the color of the entry at the zero-based index into the * palette. Returns an error when the index is out of range. Returns an * error when the palette is not editable. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_palette_entry_set_color (PikaPalette *palette, gint entry_num, const PikaRGB *color) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_INT, entry_num, PIKA_TYPE_RGB, color, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-entry-set-color", 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_palette_entry_get_name: * @palette: The palette. * @entry_num: The entry to get. * @entry_name: (out) (transfer full): The name of the entry. * * Gets the name of an entry in the palette. * * Gets the name of the entry at the zero-based index into the palette. * Returns an error when the index is out of range. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_palette_entry_get_name (PikaPalette *palette, gint entry_num, gchar **entry_name) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_INT, entry_num, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-entry-get-name", args); pika_value_array_unref (args); *entry_name = NULL; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *entry_name = PIKA_VALUES_DUP_STRING (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_palette_entry_set_name: * @palette: The palette. * @entry_num: The entry to get. * @entry_name: The new name. * * Sets the name of an entry in the palette. * * Sets the name of the entry at the zero-based index into the palette. * Returns an error if the index is out or range. Returns an error if * the palette is not editable. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_palette_entry_set_name (PikaPalette *palette, gint entry_num, const gchar *entry_name) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_PALETTE, palette, G_TYPE_INT, entry_num, G_TYPE_STRING, entry_name, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-palette-entry-set-name", 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; }