/* LIBPIKA - The PIKA Library * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball * * pikabrush_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: pikabrush * @title: pikabrush * @short_description: Installable object used by painting and stroking tools. * * Installable object used by painting and stroking tools. **/ /** * pika_brush_new: * @name: The requested name of the new brush. * * Create a new generated brush having default parameters. * * Creates a new, parametric brush. * * Returns: (transfer none): The brush. * * Since: 2.2 **/ PikaBrush * pika_brush_new (const gchar *name) { PikaValueArray *args; PikaValueArray *return_vals; PikaBrush *brush = 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-brush-new", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) brush = PIKA_VALUES_GET_BRUSH (return_vals, 1); pika_value_array_unref (return_vals); return brush; } /** * pika_brush_get_by_name: * @name: The name of the brush. * * Returns the brush with the given name. * * Search and return an existing brush with the name in argument, or * nothing if no brush has this name. * * Returns: (transfer none): The brush. * * Since: 3.0 **/ PikaBrush * pika_brush_get_by_name (const gchar *name) { PikaValueArray *args; PikaValueArray *return_vals; PikaBrush *brush = 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-brush-get-by-name", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) brush = PIKA_VALUES_GET_BRUSH (return_vals, 1); pika_value_array_unref (return_vals); return brush; } /** * pika_brush_is_generated: * @brush: The brush. * * Whether the brush is generated (parametric versus raster). * * Returns TRUE when brush is parametric. * * Returns: TRUE if the brush is generated. * * Since: 2.4 **/ gboolean pika_brush_is_generated (PikaBrush *brush) { PikaValueArray *args; PikaValueArray *return_vals; gboolean generated = FALSE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-is-generated", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) generated = PIKA_VALUES_GET_BOOLEAN (return_vals, 1); pika_value_array_unref (return_vals); return generated; } /** * pika_brush_get_info: * @brush: The brush. * @width: (out): The brush width. * @height: (out): The brush height. * @mask_bpp: (out): The brush mask bpp. * @color_bpp: (out): The brush color bpp. * * Gets information about the brush. * * Gets information about the brush: brush extents (width and height), * color depth and mask depth (bpp). The color bpp is zero when the * brush is parametric versus raster. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean pika_brush_get_info (PikaBrush *brush, gint *width, gint *height, gint *mask_bpp, gint *color_bpp) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-info", args); pika_value_array_unref (args); *width = 0; *height = 0; *mask_bpp = 0; *color_bpp = 0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) { *width = PIKA_VALUES_GET_INT (return_vals, 1); *height = PIKA_VALUES_GET_INT (return_vals, 2); *mask_bpp = PIKA_VALUES_GET_INT (return_vals, 3); *color_bpp = PIKA_VALUES_GET_INT (return_vals, 4); } pika_value_array_unref (return_vals); return success; } /** * _pika_brush_get_pixels: * @brush: The brush. * @width: (out): The brush width. * @height: (out): The brush height. * @mask_bpp: (out): The brush mask bpp. * @mask_bytes: (out) (transfer full): The brush mask data. * @color_bpp: (out): The brush color bpp. * @color_bytes: (out) (transfer full): The brush color data. * * Gets information about the brush. * * Gets information about the brush: the brush extents (width and * height) and its pixels data. The color bpp is zero and pixels empty * when the brush is parametric versus raster. * * Returns: TRUE on success. * * Since: 2.2 **/ gboolean _pika_brush_get_pixels (PikaBrush *brush, gint *width, gint *height, gint *mask_bpp, GBytes **mask_bytes, gint *color_bpp, GBytes **color_bytes) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-pixels", args); pika_value_array_unref (args); *width = 0; *height = 0; *mask_bpp = 0; *mask_bytes = NULL; *color_bpp = 0; *color_bytes = NULL; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) { *width = PIKA_VALUES_GET_INT (return_vals, 1); *height = PIKA_VALUES_GET_INT (return_vals, 2); *mask_bpp = PIKA_VALUES_GET_INT (return_vals, 3); *mask_bytes = PIKA_VALUES_DUP_BYTES (return_vals, 4); *color_bpp = PIKA_VALUES_GET_INT (return_vals, 5); *color_bytes = PIKA_VALUES_DUP_BYTES (return_vals, 6); } pika_value_array_unref (return_vals); return success; } /** * pika_brush_get_spacing: * @brush: The brush. * * Gets the brush spacing, the stamping frequency. * * Returns the spacing setting for the brush. Spacing is an integer * between 0 and 1000 which represents a percentage of the maximum of * the width and height of the mask. Both parametric and raster brushes * have a spacing. * * Returns: The brush spacing. * * Since: 2.2 **/ gint pika_brush_get_spacing (PikaBrush *brush) { PikaValueArray *args; PikaValueArray *return_vals; gint spacing = 0; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-spacing", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) spacing = PIKA_VALUES_GET_INT (return_vals, 1); pika_value_array_unref (return_vals); return spacing; } /** * pika_brush_set_spacing: * @brush: The brush. * @spacing: The brush spacing. * * Sets the brush spacing. * * Set the spacing for the brush. The spacing must be an integer * between 0 and 1000. Both parametric and raster brushes have a * spacing. Returns an error when the brush is not editable. Create a * new or copied brush or to get an editable brush. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_spacing (PikaBrush *brush, gint spacing) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_INT, spacing, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-spacing", 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_brush_get_shape: * @brush: The brush. * @shape: (out): The brush shape. * * Gets the shape of a generated brush. * * Gets the shape of a generated brush. Returns an error when called * for a non-parametric brush. The choices for shape are Circle * (PIKA_BRUSH_GENERATED_CIRCLE), Square (PIKA_BRUSH_GENERATED_SQUARE), * and Diamond (PIKA_BRUSH_GENERATED_DIAMOND). Other shapes might be * added in the future. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_get_shape (PikaBrush *brush, PikaBrushGeneratedShape *shape) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-shape", args); pika_value_array_unref (args); *shape = 0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *shape = PIKA_VALUES_GET_ENUM (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_set_shape: * @brush: The brush. * @shape_in: The brush shape. * @shape_out: (out): The brush shape actually assigned. * * Sets the shape of a generated brush. * * Sets the shape of a generated brush. Returns an error when brush is * non-parametric or not editable. The choices for shape are Circle * (PIKA_BRUSH_GENERATED_CIRCLE), Square (PIKA_BRUSH_GENERATED_SQUARE), * and Diamond (PIKA_BRUSH_GENERATED_DIAMOND). * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_shape (PikaBrush *brush, PikaBrushGeneratedShape shape_in, PikaBrushGeneratedShape *shape_out) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, PIKA_TYPE_BRUSH_GENERATED_SHAPE, shape_in, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-shape", args); pika_value_array_unref (args); *shape_out = 0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *shape_out = PIKA_VALUES_GET_ENUM (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_get_radius: * @brush: The brush. * @radius: (out): The radius of the brush in pixels. * * Gets the radius of a generated brush. * * Gets the radius of a generated brush. Returns an error when called * for a non-parametric brush. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_get_radius (PikaBrush *brush, gdouble *radius) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-radius", args); pika_value_array_unref (args); *radius = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *radius = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_set_radius: * @brush: The brush. * @radius_in: The desired brush radius in pixel. * @radius_out: (out): The brush radius actually assigned. * * Sets the radius of a generated brush. * * Sets the radius for a generated brush. Clamps radius to [0.0, * 32767.0]. Returns the clamped value. Returns an error when brush is * non-parametric or not editable. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_radius (PikaBrush *brush, gdouble radius_in, gdouble *radius_out) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_DOUBLE, radius_in, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-radius", args); pika_value_array_unref (args); *radius_out = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *radius_out = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_get_spikes: * @brush: The brush. * @spikes: (out): The number of spikes on the brush. * * Gets the number of spikes for a generated brush. * * Gets the number of spikes for a generated brush. Returns an error * when called for a non-parametric brush. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_get_spikes (PikaBrush *brush, gint *spikes) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-spikes", args); pika_value_array_unref (args); *spikes = 0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *spikes = PIKA_VALUES_GET_INT (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_set_spikes: * @brush: The brush. * @spikes_in: The desired number of spikes. * @spikes_out: (out): The number of spikes actually assigned. * * Sets the number of spikes for a generated brush. * * Sets the number of spikes for a generated brush. Clamps spikes to * [2,20]. Returns the clamped value. Returns an error when brush is * non-parametric or not editable. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_spikes (PikaBrush *brush, gint spikes_in, gint *spikes_out) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_INT, spikes_in, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-spikes", args); pika_value_array_unref (args); *spikes_out = 0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *spikes_out = PIKA_VALUES_GET_INT (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_get_hardness: * @brush: The brush. * @hardness: (out): The hardness of the brush. * * Gets the hardness of a generated brush. * * Gets the hardness of a generated brush. The hardness of a brush is * the amount its intensity fades at the outside edge, as a float * between 0.0 and 1.0. Returns an error when called for a * non-parametric brush. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_get_hardness (PikaBrush *brush, gdouble *hardness) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-hardness", args); pika_value_array_unref (args); *hardness = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *hardness = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_set_hardness: * @brush: The brush. * @hardness_in: The desired brush hardness. * @hardness_out: (out): The brush hardness actually assigned. * * Sets the hardness of a generated brush. * * Sets the hardness for a generated brush. Clamps hardness to [0.0, * 1.0]. Returns the clamped value. Returns an error when brush is * non-parametric or not editable. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_hardness (PikaBrush *brush, gdouble hardness_in, gdouble *hardness_out) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_DOUBLE, hardness_in, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-hardness", args); pika_value_array_unref (args); *hardness_out = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *hardness_out = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_get_aspect_ratio: * @brush: The brush. * @aspect_ratio: (out): The aspect ratio of the brush. * * Gets the aspect ratio of a generated brush. * * Gets the aspect ratio of a generated brush. Returns an error when * called for a non-parametric brush. The aspect ratio is a float * between 0.0 and 1000.0. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_get_aspect_ratio (PikaBrush *brush, gdouble *aspect_ratio) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-aspect-ratio", args); pika_value_array_unref (args); *aspect_ratio = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *aspect_ratio = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_set_aspect_ratio: * @brush: The brush. * @aspect_ratio_in: The desired brush aspect ratio. * @aspect_ratio_out: (out): The brush aspect ratio actually assigned. * * Sets the aspect ratio of a generated brush. * * Sets the aspect ratio for a generated brush. Clamps aspect ratio to * [0.0, 1000.0]. Returns the clamped value. Returns an error when * brush is non-parametric or not editable. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_aspect_ratio (PikaBrush *brush, gdouble aspect_ratio_in, gdouble *aspect_ratio_out) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_DOUBLE, aspect_ratio_in, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-aspect-ratio", args); pika_value_array_unref (args); *aspect_ratio_out = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *aspect_ratio_out = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_get_angle: * @brush: The brush. * @angle: (out): The rotation angle of the brush in degree. * * Gets the rotation angle of a generated brush. * * Gets the angle of rotation for a generated brush. Returns an error * when called for a non-parametric brush. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_get_angle (PikaBrush *brush, gdouble *angle) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-get-angle", args); pika_value_array_unref (args); *angle = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *angle = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; } /** * pika_brush_set_angle: * @brush: The brush. * @angle_in: The desired brush rotation angle in degrees. * @angle_out: (out): The brush rotation angle actually assigned. * * Sets the rotation angle of a generated brush. * * Sets the rotation angle for a generated brush. Sets the angle modulo * 180, in the range [-180.0, 180.0]. Returns the clamped value. * Returns an error when brush is non-parametric or not editable. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_brush_set_angle (PikaBrush *brush, gdouble angle_in, gdouble *angle_out) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_BRUSH, brush, G_TYPE_DOUBLE, angle_in, G_TYPE_NONE); return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (), "pika-brush-set-angle", args); pika_value_array_unref (args); *angle_out = 0.0; success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; if (success) *angle_out = PIKA_VALUES_GET_DOUBLE (return_vals, 1); pika_value_array_unref (return_vals); return success; }