gimp/libgimpconfig/gimpscanner.h

81 lines
3.8 KiB
C
Raw Normal View History

2005-01-25 19:11:26 +00:00
/* LIBGIMP - The GIMP Library
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimpscanner.h
* Copyright (C) 2002 Sven Neumann <sven@gimp.org>
* Michael Natterer <mitch@gimp.org>
*
* This library is free software: you can redistribute it and/or
2005-01-25 19:11:26 +00:00
* 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.
*
2005-01-25 19:11:26 +00:00
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
2005-01-25 19:11:26 +00:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
2005-01-25 19:11:26 +00:00
* 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/>.
*/
#if !defined (__GIMP_CONFIG_H_INSIDE__) && !defined (GIMP_CONFIG_COMPILATION)
#error "Only <libgimpconfig/gimpconfig.h> can be included directly."
#endif
#ifndef __GIMP_SCANNER_H__
#define __GIMP_SCANNER_H__
/**
* GIMP_TYPE_SCANNER:
*
* The type ID of the GIMP scanner type which is a boxed type, used to
* read config files.
*
* Since: 3.0
*/
#define GIMP_TYPE_SCANNER (gimp_scnner_get_type ())
GType gimp_scanner_get_type (void) G_GNUC_CONST;
GimpScanner * gimp_scanner_new_file (GFile *file,
GError **error);
GimpScanner * gimp_scanner_new_stream (GInputStream *input,
GError **error);
GimpScanner * gimp_scanner_new_string (const gchar *text,
gint text_len,
GError **error);
GimpScanner * gimp_scanner_ref (GimpScanner *scanner);
void gimp_scanner_unref (GimpScanner *scanner);
gboolean gimp_scanner_parse_token (GimpScanner *scanner,
GTokenType token);
gboolean gimp_scanner_parse_identifier (GimpScanner *scanner,
const gchar *identifier);
gboolean gimp_scanner_parse_string (GimpScanner *scanner,
gchar **dest);
gboolean gimp_scanner_parse_string_no_validate (GimpScanner *scanner,
gchar **dest);
gboolean gimp_scanner_parse_data (GimpScanner *scanner,
gint length,
guint8 **dest);
gboolean gimp_scanner_parse_int (GimpScanner *scanner,
gint *dest);
gboolean gimp_scanner_parse_int64 (GimpScanner *scanner,
gint64 *dest);
app, libgimp*, pdb, plug-ins: rename various public API name s/float/double/. Several types functions were using the wording "float" historically to mean double-precision, e.g. the float array type (which was in fact a double array). Or the scanner function gimp_scanner_parse_float() was in fact returning a double value. What if we wanted someday to actually add float (usually this naming means in C the single-precision IEEE 754 floating point representation) support? How would we name this? Now technically it's not entirely wrong (a double is still a floating point). So I've been wondering if that is because maybe we never planned to have float and double precision may be good enough for all usage in a plug-in API (which doesn't have to be as generic so the higher precision is enough)? But how can we be sure? Also we already had some functions using the wording double (e.g. gimp_procedure_add_double_argument()), so let's just go the safe route and use the accurate wording. The additional change in PDB is internal, but there too, I was also finding very confusing that we were naming double-precision float as 'float' type. So I took the opportunity to update this. It doesn't change any signature. In fact the whole commit doesn't change any type or code logic, only naming, except for one bug fix in the middle which I encountered while renaming: in gimp_scanner_parse_deprecated_color(), I discovered a hidden bug in scanning (color-hsv*) values, which was mistakenly using a double type for an array of float.
2024-11-02 14:03:37 +01:00
gboolean gimp_scanner_parse_double (GimpScanner *scanner,
gdouble *dest);
gboolean gimp_scanner_parse_boolean (GimpScanner *scanner,
gboolean *dest);
gboolean gimp_scanner_parse_color (GimpScanner *scanner,
GeglColor **color);
gboolean gimp_scanner_parse_matrix2 (GimpScanner *scanner,
GimpMatrix2 *dest);
#endif /* __GIMP_SCANNER_H__ */