2004-10-25 Michael Natterer <mitch@gimp.org> Don't store human readable and translatable enum/flag strings in GEnumValue's and GTypeValue's fields but attach them to their GType using separate structs and utility functions: * tools/gimp-mkenums: added params and perl voodoo to support generating a second array of values, which is used by the Makefiles below to create and register arrays of value descriptions. * libgimpbase/gimpbasetypes.[ch]: added API to attach/retreive arrays of translatable strings to/from enum and flags types. Added structs GimpEnumDesc and GimpFlagsDesc for that purpose. * libgimpbase/gimputils.[ch]: changed existing enum utility functions, added new ones and added a symmetric API for flags. * app/base/Makefile.am * app/core/Makefile.am * app/display/Makefile.am * app/paint/Makefile.am * app/text/Makefile.am * app/tools/Makefile.am * app/widgets/Makefile.am * libgimp/Makefile.am * libgimpbase/Makefile.am: changed *-enums.c generation rules accordingly. * app/base/base-enums.c * app/core/core-enums.c * app/display/display-enums.c * app/paint/paint-enums.c * app/text/text-enums.c * app/tools/tools-enums.c * app/widgets/widgets-enums.c * libgimpbase/gimpbaseenums.c: regenerated. * app/widgets/gimpenumstore.c * app/widgets/gimpenumwidgets.c * app/widgets/gimptemplateeditor.c * libgimpwidgets/gimppreviewarea.c: follow the enum utility function API changes.
74 lines
2.4 KiB
C
74 lines
2.4 KiB
C
/* LIBGIMP - The GIMP Library
|
|
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
|
*
|
|
* 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 2 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
|
|
* Library 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, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef __GIMP_BASE_TYPES_H__
|
|
#define __GIMP_BASE_TYPES_H__
|
|
|
|
|
|
#include <libgimpcolor/gimpcolortypes.h>
|
|
#include <libgimpmath/gimpmathtypes.h>
|
|
|
|
#include <libgimpbase/gimpbaseenums.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
/* For information look into the C source or the html documentation */
|
|
|
|
|
|
typedef struct _GimpParasite GimpParasite;
|
|
typedef struct _GimpDatafileData GimpDatafileData;
|
|
typedef struct _GimpEnumDesc GimpEnumDesc;
|
|
typedef struct _GimpFlagsDesc GimpFlagsDesc;
|
|
|
|
|
|
typedef void (* GimpDatafileLoaderFunc) (const GimpDatafileData *file_data,
|
|
gpointer user_data);
|
|
|
|
|
|
struct _GimpEnumDesc
|
|
{
|
|
gint value;
|
|
gchar *value_desc;
|
|
gchar *value_help;
|
|
};
|
|
|
|
struct _GimpFlagsDesc
|
|
{
|
|
guint value;
|
|
gchar *value_desc;
|
|
gchar *value_help;
|
|
};
|
|
|
|
|
|
void gimp_type_set_translation_domain (GType type,
|
|
const gchar *domain);
|
|
const gchar * gimp_type_get_translation_domain (GType type);
|
|
|
|
void gimp_enum_set_value_descriptions (GType enum_type,
|
|
const GimpEnumDesc *descriptions);
|
|
const GimpEnumDesc * gimp_enum_get_value_descriptions (GType enum_type);
|
|
|
|
void gimp_flags_set_value_descriptions (GType flags_type,
|
|
const GimpFlagsDesc *descriptions);
|
|
const GimpFlagsDesc * gimp_flags_get_value_descriptions (GType flags_type);
|
|
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GIMP_BASE_TYPES_H__ */
|