From 7c63370e3a81c9d6138924e88d868005414c08aa Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Sun, 3 Apr 2011 15:51:04 +0200 Subject: [PATCH] GObject: move GLib type definitions to a separate header This way it is possible to pull them into the GLib GIR file. Some cleanups by Colin Walters https://bugzilla.gnome.org/show_bug.cgi?id=646635 --- gobject/Makefile.am | 7 +- gobject/gboxed.h | 152 ++----------------------------- gobject/glib-types.h | 192 +++++++++++++++++++++++++++++++++++++++ gobject/gsourceclosure.h | 17 +--- 4 files changed, 205 insertions(+), 163 deletions(-) create mode 100644 gobject/glib-types.h diff --git a/gobject/Makefile.am b/gobject/Makefile.am index c013a2f68..0a9dc0f4b 100644 --- a/gobject/Makefile.am +++ b/gobject/Makefile.am @@ -91,6 +91,7 @@ libgobject_2_0_la_DEPENDENCIES = $(gobject_win32_res) $(gobject_def) # # GObject library header files for public installation gobject_public_h_sources = \ + glib-types.h \ gbinding.h \ gboxed.h \ gclosure.h \ @@ -292,7 +293,7 @@ dist-hook: $(BUILT_EXTRA_DIST) ../build/win32/vs9/gobject.vcproj ../build/win32/ done >libgobject.vs10.sourcefiles $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gobject.vcxprojin >$@ rm libgobject.vs10.sourcefiles - + ../build/win32/vs10/gobject.vcxproj.filters: $(top_srcdir)/build/win32/vs10/gobject.vcxproj.filtersin for F in $(libgobject_2_0_la_SOURCES); do \ case $$F in \ @@ -300,9 +301,9 @@ dist-hook: $(BUILT_EXTRA_DIST) ../build/win32/vs9/gobject.vcproj ../build/win32/ ;; \ esac; \ done >libgobject.vs10.sourcefiles.filters - $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gobject.vcxproj.filtersin >$@ + $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gobject.vcxproj.filtersin >$@ rm libgobject.vs10.sourcefiles.filters - + install-data-local: install-ms-lib install-def-file uninstall-local: uninstall-ms-lib uninstall-def-file uninstall-gdb diff --git a/gobject/gboxed.h b/gobject/gboxed.h index 2f8c2dc40..35375f182 100644 --- a/gobject/gboxed.h +++ b/gobject/gboxed.h @@ -25,6 +25,10 @@ #include +#ifndef __GI_SCANNER__ +#include +#endif + G_BEGIN_DECLS /* --- type macros --- */ @@ -87,8 +91,7 @@ GType g_boxed_type_register_static (const gchar *name, GBoxedCopyFunc boxed_copy, GBoxedFreeFunc boxed_free); - -/* --- GLib boxed types --- */ +/* --- GObject boxed types --- */ /** * G_TYPE_CLOSURE: * @@ -112,148 +115,9 @@ GType g_boxed_type_register_static (const gchar *name, */ #define G_TYPE_VALUE_ARRAY (g_value_array_get_type ()) -/** - * G_TYPE_DATE: - * - * The #GType for #GDate. - */ -#define G_TYPE_DATE (g_date_get_type ()) - -/** - * G_TYPE_STRV: - * - * The #GType for a boxed type holding a %NULL-terminated array of strings. - * - * The code fragments in the following example show the use of a property of - * type #G_TYPE_STRV with g_object_class_install_property(), g_object_set() - * and g_object_get(). - * - * |[ - * g_object_class_install_property (object_class, - * PROP_AUTHORS, - * g_param_spec_boxed ("authors", - * _("Authors"), - * _("List of authors"), - * G_TYPE_STRV, - * G_PARAM_READWRITE)); - * - * gchar *authors[] = { "Owen", "Tim", NULL }; - * g_object_set (obj, "authors", authors, NULL); - * - * gchar *writers[]; - * g_object_get (obj, "authors", &writers, NULL); - * /* do something with writers */ - * g_strfreev (writers); - * ]| - * - * Since: 2.4 - */ -#define G_TYPE_STRV (g_strv_get_type ()) - -/** - * G_TYPE_GSTRING: - * - * The #GType for #GString. - */ -#define G_TYPE_GSTRING (g_gstring_get_type ()) - -/** - * G_TYPE_HASH_TABLE: - * - * The #GType for a boxed type holding a #GHashTable reference. - * - * Since: 2.10 - */ -#define G_TYPE_HASH_TABLE (g_hash_table_get_type ()) - -/** - * G_TYPE_REGEX: - * - * The #GType for a boxed type holding a #GRegex reference. - * - * Since: 2.14 - */ -#define G_TYPE_REGEX (g_regex_get_type ()) - -/** - * G_TYPE_ARRAY: - * - * The #GType for a boxed type holding a #GArray reference. - * - * Since: 2.22 - */ -#define G_TYPE_ARRAY (g_array_get_type ()) - -/** - * G_TYPE_BYTE_ARRAY: - * - * The #GType for a boxed type holding a #GByteArray reference. - * - * Since: 2.22 - */ -#define G_TYPE_BYTE_ARRAY (g_byte_array_get_type ()) - -/** - * G_TYPE_PTR_ARRAY: - * - * The #GType for a boxed type holding a #GPtrArray reference. - * - * Since: 2.22 - */ -#define G_TYPE_PTR_ARRAY (g_ptr_array_get_type ()) - -/** - * G_TYPE_VARIANT_TYPE: - * - * The #GType for a boxed type holding a #GVariantType. - * - * Since: 2.24 - */ -#define G_TYPE_VARIANT_TYPE (g_variant_type_get_gtype ()) - -/** - * G_TYPE_ERROR: - * - * The #GType for a boxed type holding a #GError. - * - * Since: 2.26 - */ -#define G_TYPE_ERROR (g_error_get_type ()) - -/** - * G_TYPE_DATE_TIME: - * - * The #GType for a boxed type holding a #GDateTime. - * - * Since: 2.26 - */ -#define G_TYPE_DATE_TIME (g_date_time_get_type ()) - -GType g_closure_get_type (void) G_GNUC_CONST; -GType g_value_get_type (void) G_GNUC_CONST; -GType g_value_array_get_type (void) G_GNUC_CONST; -GType g_date_get_type (void) G_GNUC_CONST; -GType g_strv_get_type (void) G_GNUC_CONST; -GType g_gstring_get_type (void) G_GNUC_CONST; -GType g_hash_table_get_type (void) G_GNUC_CONST; -GType g_array_get_type (void) G_GNUC_CONST; -GType g_byte_array_get_type (void) G_GNUC_CONST; -GType g_ptr_array_get_type (void) G_GNUC_CONST; -GType g_variant_type_get_gtype (void) G_GNUC_CONST; -GType g_regex_get_type (void) G_GNUC_CONST; -GType g_error_get_type (void) G_GNUC_CONST; -GType g_date_time_get_type (void) G_GNUC_CONST; - -#ifndef G_DISABLE_DEPRECATED -GType g_variant_get_gtype (void) G_GNUC_CONST; -#endif - -/** - * GStrv: - * - * A C representable type name for #G_TYPE_STRV. - */ -typedef gchar** GStrv; +GType g_closure_get_type (void) G_GNUC_CONST; +GType g_value_get_type (void) G_GNUC_CONST; +GType g_value_array_get_type (void) G_GNUC_CONST; G_END_DECLS diff --git a/gobject/glib-types.h b/gobject/glib-types.h new file mode 100644 index 000000000..2c25e859a --- /dev/null +++ b/gobject/glib-types.h @@ -0,0 +1,192 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Red Hat, Inc. + * + * 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 + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) && !defined(GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GLIB_TYPES_H__ +#define __GLIB_TYPES_H__ + +G_BEGIN_DECLS + +/* A hack necesssary to preprocess this file with g-ir-scanner */ +#ifdef __GI_SCANNER__ +typedef gsize GType; +#endif + +/* --- GLib boxed types --- */ +/** + * G_TYPE_DATE: + * + * The #GType for #GDate. + */ +#define G_TYPE_DATE (g_date_get_type ()) + +/** + * G_TYPE_STRV: + * + * The #GType for a boxed type holding a %NULL-terminated array of strings. + * + * The code fragments in the following example show the use of a property of + * type #G_TYPE_STRV with g_object_class_install_property(), g_object_set() + * and g_object_get(). + * + * |[ + * g_object_class_install_property (object_class, + * PROP_AUTHORS, + * g_param_spec_boxed ("authors", + * _("Authors"), + * _("List of authors"), + * G_TYPE_STRV, + * G_PARAM_READWRITE)); + * + * gchar *authors[] = { "Owen", "Tim", NULL }; + * g_object_set (obj, "authors", authors, NULL); + * + * gchar *writers[]; + * g_object_get (obj, "authors", &writers, NULL); + * /* do something with writers */ + * g_strfreev (writers); + * ]| + * + * Since: 2.4 + */ +#define G_TYPE_STRV (g_strv_get_type ()) + +/** + * G_TYPE_GSTRING: + * + * The #GType for #GString. + */ +#define G_TYPE_GSTRING (g_gstring_get_type ()) + +/** + * G_TYPE_HASH_TABLE: + * + * The #GType for a boxed type holding a #GHashTable reference. + * + * Since: 2.10 + */ +#define G_TYPE_HASH_TABLE (g_hash_table_get_type ()) + +/** + * G_TYPE_REGEX: + * + * The #GType for a boxed type holding a #GRegex reference. + * + * Since: 2.14 + */ +#define G_TYPE_REGEX (g_regex_get_type ()) + +/** + * G_TYPE_ARRAY: + * + * The #GType for a boxed type holding a #GArray reference. + * + * Since: 2.22 + */ +#define G_TYPE_ARRAY (g_array_get_type ()) + +/** + * G_TYPE_BYTE_ARRAY: + * + * The #GType for a boxed type holding a #GByteArray reference. + * + * Since: 2.22 + */ +#define G_TYPE_BYTE_ARRAY (g_byte_array_get_type ()) + +/** + * G_TYPE_PTR_ARRAY: + * + * The #GType for a boxed type holding a #GPtrArray reference. + * + * Since: 2.22 + */ +#define G_TYPE_PTR_ARRAY (g_ptr_array_get_type ()) + +/** + * G_TYPE_VARIANT_TYPE: + * + * The #GType for a boxed type holding a #GVariantType. + * + * Since: 2.24 + */ +#define G_TYPE_VARIANT_TYPE (g_variant_type_get_gtype ()) + +/** + * G_TYPE_ERROR: + * + * The #GType for a boxed type holding a #GError. + * + * Since: 2.26 + */ +#define G_TYPE_ERROR (g_error_get_type ()) + +/** + * G_TYPE_DATE_TIME: + * + * The #GType for a boxed type holding a #GDateTime. + * + * Since: 2.26 + */ +#define G_TYPE_DATE_TIME (g_date_time_get_type ()) + +/** + * G_TYPE_IO_CHANNEL: + * + * The #GType for #GIOChannel. + */ +#define G_TYPE_IO_CHANNEL (g_io_channel_get_type ()) + +/** + * G_TYPE_IO_CONDITION: + * + * The #GType for #GIOCondition. + */ +#define G_TYPE_IO_CONDITION (g_io_condition_get_type ()) + +GType g_date_get_type (void) G_GNUC_CONST; +GType g_strv_get_type (void) G_GNUC_CONST; +GType g_gstring_get_type (void) G_GNUC_CONST; +GType g_hash_table_get_type (void) G_GNUC_CONST; +GType g_array_get_type (void) G_GNUC_CONST; +GType g_byte_array_get_type (void) G_GNUC_CONST; +GType g_ptr_array_get_type (void) G_GNUC_CONST; +GType g_variant_type_get_gtype (void) G_GNUC_CONST; +GType g_regex_get_type (void) G_GNUC_CONST; +GType g_error_get_type (void) G_GNUC_CONST; +GType g_date_time_get_type (void) G_GNUC_CONST; +GType g_io_channel_get_type (void) G_GNUC_CONST; +GType g_io_condition_get_type (void) G_GNUC_CONST; + +#if !defined(G_DISABLE_DEPRECATED) || defined(__GI_SCANNER__) +GType g_variant_get_gtype (void) G_GNUC_CONST; +#endif + +/** + * GStrv: + * + * A C representable type name for #G_TYPE_STRV. + */ +typedef gchar** GStrv; + +G_END_DECLS + +#endif /* __GLIB_TYPES_H__ */ diff --git a/gobject/gsourceclosure.h b/gobject/gsourceclosure.h index edae2c882..3cfdacd5e 100644 --- a/gobject/gsourceclosure.h +++ b/gobject/gsourceclosure.h @@ -24,6 +24,7 @@ #define __G_SOURCECLOSURE_H__ #include +#include G_BEGIN_DECLS @@ -32,22 +33,6 @@ void g_source_set_closure (GSource *source, void g_source_set_dummy_callback (GSource *source); -GType g_io_channel_get_type (void); -GType g_io_condition_get_type (void); - -/** - * G_TYPE_IO_CHANNEL: - * - * The #GType for #GIOChannel. - */ -#define G_TYPE_IO_CHANNEL (g_io_channel_get_type ()) -/** - * G_TYPE_IO_CONDITION: - * - * The #GType for #GIOCondition. - */ -#define G_TYPE_IO_CONDITION (g_io_condition_get_type ()) - G_END_DECLS #endif /* __G_SOURCECLOSURE_H__ */