| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | /* GObject - GLib Type, Object, Parameter and Signal Library
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |  * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. | 
					
						
							| 
									
										
										
										
											2010-06-17 18:03:51 +02:00
										 |  |  |  * Copyright (C) 2010 Christian Persch | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-06-22 14:29:25 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * MT safe | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "config.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <string.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-04 09:31:12 +00:00
										 |  |  | #define GLIB_DISABLE_DEPRECATION_WARNINGS
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-22 14:29:25 +00:00
										 |  |  | #include "gparamspecs.h"
 | 
					
						
							| 
									
										
										
										
											2011-06-02 17:14:58 -04:00
										 |  |  | #include "gtype-private.h"
 | 
					
						
							| 
									
										
										
										
											2008-06-22 14:29:25 +00:00
										 |  |  | #include "gvaluecollector.h"
 | 
					
						
							| 
									
										
										
										
											2012-01-04 09:31:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-22 14:29:25 +00:00
										 |  |  | #include "gvaluearray.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * SECTION:param_value_types | 
					
						
							| 
									
										
										
										
											2008-07-02 03:43:13 +00:00
										 |  |  |  * @short_description: Standard Parameter and Value Types | 
					
						
							|  |  |  |  * @see_also: #GParamSpec, #GValue, g_object_class_install_property(). | 
					
						
							|  |  |  |  * @title: Parameters and Values | 
					
						
							| 
									
										
										
										
											2008-06-22 14:29:25 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * #GValue provides an abstract container structure which can be | 
					
						
							|  |  |  |  * copied, transformed and compared while holding a value of any | 
					
						
							|  |  |  |  * (derived) type, which is registered as a #GType with a | 
					
						
							|  |  |  |  * #GTypeValueTable in its #GTypeInfo structure.  Parameter | 
					
						
							|  |  |  |  * specifications for most value types can be created as #GParamSpec | 
					
						
							|  |  |  |  * derived instances, to implement e.g. #GObject properties which | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * operate on #GValue containers. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:29:25 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Parameter names need to start with a letter (a-z or A-Z). Subsequent | 
					
						
							|  |  |  |  * characters can be letters, numbers or a '-'. | 
					
						
							|  |  |  |  * All other characters are replaced by a '-' during construction. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define	G_FLOAT_EPSILON		(1e-30)
 | 
					
						
							|  |  |  | #define	G_DOUBLE_EPSILON	(1e-90)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* --- param spec functions --- */ | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_char_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecChar *cspec = G_PARAM_SPEC_CHAR (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   cspec->minimum = 0x7f; | 
					
						
							|  |  |  |   cspec->maximum = 0x80; | 
					
						
							|  |  |  |   cspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_char_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue	   *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_int = G_PARAM_SPEC_CHAR (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_char_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		     GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecChar *cspec = G_PARAM_SPEC_CHAR (pspec); | 
					
						
							|  |  |  |   gint oval = value->data[0].v_int; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_int = CLAMP (value->data[0].v_int, cspec->minimum, cspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_int != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_uchar_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecUChar *uspec = G_PARAM_SPEC_UCHAR (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = 0; | 
					
						
							|  |  |  |   uspec->maximum = 0xff; | 
					
						
							|  |  |  |   uspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_uchar_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue	    *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_uint = G_PARAM_SPEC_UCHAR (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_uchar_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecUChar *uspec = G_PARAM_SPEC_UCHAR (pspec); | 
					
						
							|  |  |  |   guint oval = value->data[0].v_uint; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_uint = CLAMP (value->data[0].v_uint, uspec->minimum, uspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_uint != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_boolean_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			   GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_int = G_PARAM_SPEC_BOOLEAN (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_boolean_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   gint oval = value->data[0].v_int; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_int = value->data[0].v_int != FALSE; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_int != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_int_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecInt *ispec = G_PARAM_SPEC_INT (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   ispec->minimum = 0x7fffffff; | 
					
						
							|  |  |  |   ispec->maximum = 0x80000000; | 
					
						
							|  |  |  |   ispec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_int_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 		       GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_int = G_PARAM_SPEC_INT (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_int_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		    GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecInt *ispec = G_PARAM_SPEC_INT (pspec); | 
					
						
							|  |  |  |   gint oval = value->data[0].v_int; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_int = CLAMP (value->data[0].v_int, ispec->minimum, ispec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_int != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_int_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 		      const GValue *value1, | 
					
						
							|  |  |  | 		      const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_int < value2->data[0].v_int) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |     return value1->data[0].v_int > value2->data[0].v_int; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_uint_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecUInt *uspec = G_PARAM_SPEC_UINT (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = 0; | 
					
						
							|  |  |  |   uspec->maximum = 0xffffffff; | 
					
						
							|  |  |  |   uspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_uint_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_uint = G_PARAM_SPEC_UINT (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_uint_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		     GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecUInt *uspec = G_PARAM_SPEC_UINT (pspec); | 
					
						
							|  |  |  |   guint oval = value->data[0].v_uint; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_uint = CLAMP (value->data[0].v_uint, uspec->minimum, uspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_uint != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_uint_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 		       const GValue *value1, | 
					
						
							|  |  |  | 		       const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_uint < value2->data[0].v_uint) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |     return value1->data[0].v_uint > value2->data[0].v_uint; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_long_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecLong *lspec = G_PARAM_SPEC_LONG (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | #if SIZEOF_LONG == 4
 | 
					
						
							|  |  |  |   lspec->minimum = 0x7fffffff; | 
					
						
							|  |  |  |   lspec->maximum = 0x80000000; | 
					
						
							|  |  |  | #else /* SIZEOF_LONG != 4 (8) */
 | 
					
						
							|  |  |  |   lspec->minimum = 0x7fffffffffffffff; | 
					
						
							|  |  |  |   lspec->maximum = 0x8000000000000000; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  |   lspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_long_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_long = G_PARAM_SPEC_LONG (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_long_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		     GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecLong *lspec = G_PARAM_SPEC_LONG (pspec); | 
					
						
							|  |  |  |   glong oval = value->data[0].v_long; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_long = CLAMP (value->data[0].v_long, lspec->minimum, lspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_long != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_long_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 		       const GValue *value1, | 
					
						
							|  |  |  | 		       const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_long < value2->data[0].v_long) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |     return value1->data[0].v_long > value2->data[0].v_long; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_ulong_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecULong *uspec = G_PARAM_SPEC_ULONG (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = 0; | 
					
						
							|  |  |  | #if SIZEOF_LONG == 4
 | 
					
						
							|  |  |  |   uspec->maximum = 0xffffffff; | 
					
						
							|  |  |  | #else /* SIZEOF_LONG != 4 (8) */
 | 
					
						
							|  |  |  |   uspec->maximum = 0xffffffffffffffff; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  |   uspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_ulong_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_ulong = G_PARAM_SPEC_ULONG (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_ulong_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecULong *uspec = G_PARAM_SPEC_ULONG (pspec); | 
					
						
							|  |  |  |   gulong oval = value->data[0].v_ulong; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_ulong = CLAMP (value->data[0].v_ulong, uspec->minimum, uspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_ulong != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_ulong_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			const GValue *value1, | 
					
						
							|  |  |  | 			const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_ulong < value2->data[0].v_ulong) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |     return value1->data[0].v_ulong > value2->data[0].v_ulong; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  | static void | 
					
						
							|  |  |  | param_int64_init (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecInt64 *lspec = G_PARAM_SPEC_INT64 (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   lspec->minimum = G_MININT64; | 
					
						
							|  |  |  |   lspec->maximum = G_MAXINT64; | 
					
						
							|  |  |  |   lspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_int64_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_int64 = G_PARAM_SPEC_INT64 (pspec)->default_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_int64_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		     GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecInt64 *lspec = G_PARAM_SPEC_INT64 (pspec); | 
					
						
							|  |  |  |   gint64 oval = value->data[0].v_int64; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_int64 = CLAMP (value->data[0].v_int64, lspec->minimum, lspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_int64 != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							|  |  |  | param_int64_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 		       const GValue *value1, | 
					
						
							|  |  |  | 		       const GValue *value2) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_int64 < value2->data[0].v_int64) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     return value1->data[0].v_int64 > value2->data[0].v_int64; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_uint64_init (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecUInt64 *uspec = G_PARAM_SPEC_UINT64 (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = 0; | 
					
						
							|  |  |  |   uspec->maximum = G_MAXUINT64; | 
					
						
							|  |  |  |   uspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_uint64_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_uint64 = G_PARAM_SPEC_UINT64 (pspec)->default_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_uint64_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecUInt64 *uspec = G_PARAM_SPEC_UINT64 (pspec); | 
					
						
							|  |  |  |   guint64 oval = value->data[0].v_uint64; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_uint64 = CLAMP (value->data[0].v_uint64, uspec->minimum, uspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_uint64 != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							|  |  |  | param_uint64_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			const GValue *value1, | 
					
						
							|  |  |  | 			const GValue *value2) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_uint64 < value2->data[0].v_uint64) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     return value1->data[0].v_uint64 > value2->data[0].v_uint64; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-04-01 04:04:46 +00:00
										 |  |  | static void | 
					
						
							|  |  |  | param_unichar_init (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecUnichar *uspec = G_PARAM_SPEC_UNICHAR (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_unichar_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_uint = G_PARAM_SPEC_UNICHAR (pspec)->default_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_unichar_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		        GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   gunichar oval = value->data[0].v_uint; | 
					
						
							|  |  |  |   gboolean changed = FALSE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (!g_unichar_validate (oval)) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       value->data[0].v_uint = 0; | 
					
						
							|  |  |  |       changed = TRUE; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							|  |  |  | param_unichar_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			const GValue *value1, | 
					
						
							|  |  |  | 			const GValue *value2) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   if (value1->data[0].v_uint < value2->data[0].v_uint) | 
					
						
							|  |  |  |     return -1; | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     return value1->data[0].v_uint > value2->data[0].v_uint; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_enum_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecEnum *espec = G_PARAM_SPEC_ENUM (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   espec->enum_class = NULL; | 
					
						
							|  |  |  |   espec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_enum_finalize (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecEnum *espec = G_PARAM_SPEC_ENUM (pspec); | 
					
						
							|  |  |  |   GParamSpecClass *parent_class = g_type_class_peek (g_type_parent (G_TYPE_PARAM_ENUM)); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (espec->enum_class) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_type_class_unref (espec->enum_class); | 
					
						
							|  |  |  |       espec->enum_class = NULL; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   parent_class->finalize (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_enum_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_long = G_PARAM_SPEC_ENUM (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_enum_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		     GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecEnum *espec = G_PARAM_SPEC_ENUM (pspec); | 
					
						
							|  |  |  |   glong oval = value->data[0].v_long; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (!espec->enum_class || | 
					
						
							|  |  |  |       !g_enum_get_value (espec->enum_class, value->data[0].v_long)) | 
					
						
							|  |  |  |     value->data[0].v_long = espec->default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_long != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_flags_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecFlags *fspec = G_PARAM_SPEC_FLAGS (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   fspec->flags_class = NULL; | 
					
						
							|  |  |  |   fspec->default_value = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_flags_finalize (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecFlags *fspec = G_PARAM_SPEC_FLAGS (pspec); | 
					
						
							|  |  |  |   GParamSpecClass *parent_class = g_type_class_peek (g_type_parent (G_TYPE_PARAM_FLAGS)); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (fspec->flags_class) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_type_class_unref (fspec->flags_class); | 
					
						
							|  |  |  |       fspec->flags_class = NULL; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   parent_class->finalize (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_flags_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_ulong = G_PARAM_SPEC_FLAGS (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_flags_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecFlags *fspec = G_PARAM_SPEC_FLAGS (pspec); | 
					
						
							|  |  |  |   gulong oval = value->data[0].v_ulong; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (fspec->flags_class) | 
					
						
							|  |  |  |     value->data[0].v_ulong &= fspec->flags_class->mask; | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     value->data[0].v_ulong = fspec->default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_ulong != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_float_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecFloat *fspec = G_PARAM_SPEC_FLOAT (pspec); | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2004-04-15 16:45:31 +00:00
										 |  |  |   fspec->minimum = -G_MAXFLOAT; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   fspec->maximum = G_MAXFLOAT; | 
					
						
							|  |  |  |   fspec->default_value = 0; | 
					
						
							|  |  |  |   fspec->epsilon = G_FLOAT_EPSILON; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_float_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_float = G_PARAM_SPEC_FLOAT (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_float_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecFloat *fspec = G_PARAM_SPEC_FLOAT (pspec); | 
					
						
							|  |  |  |   gfloat oval = value->data[0].v_float; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_float = CLAMP (value->data[0].v_float, fspec->minimum, fspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_float != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_float_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			const GValue *value1, | 
					
						
							|  |  |  | 			const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   gfloat epsilon = G_PARAM_SPEC_FLOAT (pspec)->epsilon; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   if (value1->data[0].v_float < value2->data[0].v_float) | 
					
						
							|  |  |  |     return - (value2->data[0].v_float - value1->data[0].v_float > epsilon); | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     return value1->data[0].v_float - value2->data[0].v_float > epsilon; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_double_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecDouble *dspec = G_PARAM_SPEC_DOUBLE (pspec); | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2004-04-15 16:45:31 +00:00
										 |  |  |   dspec->minimum = -G_MAXDOUBLE; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   dspec->maximum = G_MAXDOUBLE; | 
					
						
							|  |  |  |   dspec->default_value = 0; | 
					
						
							|  |  |  |   dspec->epsilon = G_DOUBLE_EPSILON; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_double_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			  GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_double = G_PARAM_SPEC_DOUBLE (pspec)->default_value; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_double_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		       GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecDouble *dspec = G_PARAM_SPEC_DOUBLE (pspec); | 
					
						
							|  |  |  |   gdouble oval = value->data[0].v_double; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   value->data[0].v_double = CLAMP (value->data[0].v_double, dspec->minimum, dspec->maximum); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return value->data[0].v_double != oval; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_double_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			 const GValue *value1, | 
					
						
							|  |  |  | 			 const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   gdouble epsilon = G_PARAM_SPEC_DOUBLE (pspec)->epsilon; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   if (value1->data[0].v_double < value2->data[0].v_double) | 
					
						
							|  |  |  |     return - (value2->data[0].v_double - value1->data[0].v_double > epsilon); | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     return value1->data[0].v_double - value2->data[0].v_double > epsilon; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_string_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecString *sspec = G_PARAM_SPEC_STRING (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   sspec->default_value = NULL; | 
					
						
							|  |  |  |   sspec->cset_first = NULL; | 
					
						
							|  |  |  |   sspec->cset_nth = NULL; | 
					
						
							|  |  |  |   sspec->substitutor = '_'; | 
					
						
							|  |  |  |   sspec->null_fold_if_empty = FALSE; | 
					
						
							|  |  |  |   sspec->ensure_non_null = FALSE; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_string_finalize (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecString *sspec = G_PARAM_SPEC_STRING (pspec); | 
					
						
							|  |  |  |   GParamSpecClass *parent_class = g_type_class_peek (g_type_parent (G_TYPE_PARAM_STRING)); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   g_free (sspec->default_value); | 
					
						
							|  |  |  |   g_free (sspec->cset_first); | 
					
						
							|  |  |  |   g_free (sspec->cset_nth); | 
					
						
							|  |  |  |   sspec->default_value = NULL; | 
					
						
							|  |  |  |   sspec->cset_first = NULL; | 
					
						
							|  |  |  |   sspec->cset_nth = NULL; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   parent_class->finalize (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_string_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			  GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   value->data[0].v_pointer = g_strdup (G_PARAM_SPEC_STRING (pspec)->default_value); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_string_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		       GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecString *sspec = G_PARAM_SPEC_STRING (pspec); | 
					
						
							|  |  |  |   gchar *string = value->data[0].v_pointer; | 
					
						
							|  |  |  |   guint changed = 0; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (string && string[0]) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       gchar *s; | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       if (sspec->cset_first && !strchr (sspec->cset_first, string[0])) | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2007-04-24 13:36:58 +00:00
										 |  |  |           if (value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |               value->data[0].v_pointer = g_strdup (string); | 
					
						
							|  |  |  |               string = value->data[0].v_pointer; | 
					
						
							|  |  |  |               value->data[1].v_uint &= ~G_VALUE_NOCOPY_CONTENTS; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 	  string[0] = sspec->substitutor; | 
					
						
							|  |  |  | 	  changed++; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  |       if (sspec->cset_nth) | 
					
						
							|  |  |  | 	for (s = string + 1; *s; s++) | 
					
						
							|  |  |  | 	  if (!strchr (sspec->cset_nth, *s)) | 
					
						
							|  |  |  | 	    { | 
					
						
							| 
									
										
										
										
											2007-04-24 13:36:58 +00:00
										 |  |  |               if (value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                   value->data[0].v_pointer = g_strdup (string); | 
					
						
							|  |  |  |                   s = (gchar*) value->data[0].v_pointer + (s - string); | 
					
						
							|  |  |  |                   string = value->data[0].v_pointer; | 
					
						
							|  |  |  |                   value->data[1].v_uint &= ~G_VALUE_NOCOPY_CONTENTS; | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 	      *s = sspec->substitutor; | 
					
						
							|  |  |  | 	      changed++; | 
					
						
							|  |  |  | 	    } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   if (sspec->null_fold_if_empty && string && string[0] == 0) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2007-04-24 13:36:58 +00:00
										 |  |  |       if (!(value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS)) | 
					
						
							|  |  |  |         g_free (value->data[0].v_pointer); | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         value->data[1].v_uint &= ~G_VALUE_NOCOPY_CONTENTS; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       value->data[0].v_pointer = NULL; | 
					
						
							|  |  |  |       changed++; | 
					
						
							|  |  |  |       string = value->data[0].v_pointer; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   if (sspec->ensure_non_null && !string) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2007-04-25 08:48:46 +00:00
										 |  |  |       value->data[1].v_uint &= ~G_VALUE_NOCOPY_CONTENTS; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       value->data[0].v_pointer = g_strdup (""); | 
					
						
							|  |  |  |       changed++; | 
					
						
							|  |  |  |       string = value->data[0].v_pointer; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-04-25 08:48:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | param_string_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			 const GValue *value1, | 
					
						
							|  |  |  | 			 const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   if (!value1->data[0].v_pointer) | 
					
						
							|  |  |  |     return value2->data[0].v_pointer != NULL ? -1 : 0; | 
					
						
							|  |  |  |   else if (!value2->data[0].v_pointer) | 
					
						
							|  |  |  |     return value1->data[0].v_pointer != NULL; | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     return strcmp (value1->data[0].v_pointer, value2->data[0].v_pointer); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_param_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2000-12-15 05:51:08 +00:00
										 |  |  |   /* GParamSpecParam *spec = G_PARAM_SPEC_PARAM (pspec); */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_param_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_pointer = NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_param_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2000-12-15 05:51:08 +00:00
										 |  |  |   /* GParamSpecParam *spec = G_PARAM_SPEC_PARAM (pspec); */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |   GParamSpec *param = value->data[0].v_pointer; | 
					
						
							|  |  |  |   guint changed = 0; | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   if (param && !g_value_type_compatible (G_PARAM_SPEC_TYPE (param), G_PARAM_SPEC_VALUE_TYPE (pspec))) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |       g_param_spec_unref (param); | 
					
						
							|  |  |  |       value->data[0].v_pointer = NULL; | 
					
						
							|  |  |  |       changed++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_boxed_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* GParamSpecBoxed *bspec = G_PARAM_SPEC_BOXED (pspec); */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_boxed_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_pointer = NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_boxed_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* GParamSpecBoxed *bspec = G_PARAM_SPEC_BOXED (pspec); */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |   guint changed = 0; | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   /* can't do a whole lot here since we haven't even G_BOXED_TYPE() */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_boxed_values_cmp (GParamSpec    *pspec, | 
					
						
							|  |  |  | 			 const GValue *value1, | 
					
						
							|  |  |  | 			 const GValue *value2) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   guint8 *p1 = value1->data[0].v_pointer; | 
					
						
							|  |  |  |   guint8 *p2 = value2->data[0].v_pointer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* not much to compare here, try to at least provide stable lesser/greater result */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return p1 < p2 ? -1 : p1 > p2; | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_pointer_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* GParamSpecPointer *spec = G_PARAM_SPEC_POINTER (pspec); */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_pointer_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			   GValue     *value) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_pointer = NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_pointer_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 			GValue     *value) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* GParamSpecPointer *spec = G_PARAM_SPEC_POINTER (pspec); */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |   guint changed = 0; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_pointer_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			  const GValue *value1, | 
					
						
							|  |  |  | 			  const GValue *value2) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   guint8 *p1 = value1->data[0].v_pointer; | 
					
						
							|  |  |  |   guint8 *p2 = value2->data[0].v_pointer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* not much to compare here, try to at least provide stable lesser/greater result */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return p1 < p2 ? -1 : p1 > p2; | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_value_array_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   aspec->element_spec = NULL; | 
					
						
							|  |  |  |   aspec->fixed_n_elements = 0; /* disable */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | static inline guint | 
					
						
							|  |  |  | value_array_ensure_size (GValueArray *value_array, | 
					
						
							|  |  |  | 			 guint        fixed_n_elements) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   guint changed = 0; | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if (fixed_n_elements) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       while (value_array->n_values < fixed_n_elements) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 	  g_value_array_append (value_array, NULL); | 
					
						
							|  |  |  | 	  changed++; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  |       while (value_array->n_values > fixed_n_elements) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 	  g_value_array_remove (value_array, value_array->n_values - 1); | 
					
						
							|  |  |  | 	  changed++; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     } | 
					
						
							|  |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | static void | 
					
						
							|  |  |  | param_value_array_finalize (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec); | 
					
						
							|  |  |  |   GParamSpecClass *parent_class = g_type_class_peek (g_type_parent (G_TYPE_PARAM_VALUE_ARRAY)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (aspec->element_spec) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_param_spec_unref (aspec->element_spec); | 
					
						
							|  |  |  |       aspec->element_spec = NULL; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   parent_class->finalize (pspec); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-06 00:29:46 +00:00
										 |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_value_array_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			       GValue     *value) | 
					
						
							| 
									
										
										
										
											2001-03-06 00:29:46 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  |   if (!value->data[0].v_pointer && aspec->fixed_n_elements) | 
					
						
							|  |  |  |     value->data[0].v_pointer = g_value_array_new (aspec->fixed_n_elements); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (value->data[0].v_pointer) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       /* g_value_reset (value);  already done */ | 
					
						
							|  |  |  |       value_array_ensure_size (value->data[0].v_pointer, aspec->fixed_n_elements); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2001-03-06 00:29:46 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_value_array_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 			    GValue     *value) | 
					
						
							| 
									
										
										
										
											2001-03-06 00:29:46 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec); | 
					
						
							|  |  |  |   GValueArray *value_array = value->data[0].v_pointer; | 
					
						
							| 
									
										
										
										
											2001-03-06 00:29:46 +00:00
										 |  |  |   guint changed = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  |   if (!value->data[0].v_pointer && aspec->fixed_n_elements) | 
					
						
							|  |  |  |     value->data[0].v_pointer = g_value_array_new (aspec->fixed_n_elements); | 
					
						
							| 
									
										
										
										
											2001-03-06 00:29:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  |   if (value->data[0].v_pointer) | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  |       /* ensure array size validity */ | 
					
						
							|  |  |  |       changed += value_array_ensure_size (value_array, aspec->fixed_n_elements); | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       /* ensure array values validity against a present element spec */ | 
					
						
							|  |  |  |       if (aspec->element_spec) | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  | 	  GParamSpec *element_spec = aspec->element_spec; | 
					
						
							|  |  |  | 	  guint i; | 
					
						
							|  |  |  | 	   | 
					
						
							|  |  |  | 	  for (i = 0; i < value_array->n_values; i++) | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | 	    { | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  | 	      GValue *element = value_array->values + i; | 
					
						
							|  |  |  | 	       | 
					
						
							|  |  |  | 	      /* need to fixup value type, or ensure that the array value is initialized at all */ | 
					
						
							|  |  |  | 	      if (!g_value_type_compatible (G_VALUE_TYPE (element), G_PARAM_SPEC_VALUE_TYPE (element_spec))) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 		  if (G_VALUE_TYPE (element) != 0) | 
					
						
							|  |  |  | 		    g_value_unset (element); | 
					
						
							|  |  |  | 		  g_value_init (element, G_PARAM_SPEC_VALUE_TYPE (element_spec)); | 
					
						
							|  |  |  | 		  g_param_value_set_default (element_spec, element); | 
					
						
							|  |  |  | 		  changed++; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	      /* validate array value against element_spec */ | 
					
						
							|  |  |  | 	      changed += g_param_value_validate (element_spec, element); | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | 	    } | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   return changed; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | static gint | 
					
						
							|  |  |  | param_value_array_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			      const GValue *value1, | 
					
						
							|  |  |  | 			      const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec); | 
					
						
							|  |  |  |   GValueArray *value_array1 = value1->data[0].v_pointer; | 
					
						
							|  |  |  |   GValueArray *value_array2 = value2->data[0].v_pointer; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-11 12:34:57 +00:00
										 |  |  |   if (!value_array1 || !value_array2) | 
					
						
							|  |  |  |     return value_array2 ? -1 : value_array1 != value_array2; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   if (value_array1->n_values != value_array2->n_values) | 
					
						
							|  |  |  |     return value_array1->n_values < value_array2->n_values ? -1 : 1; | 
					
						
							|  |  |  |   else if (!aspec->element_spec) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       /* we need an element specification for comparisons, so there's not much
 | 
					
						
							|  |  |  |        * to compare here, try to at least provide stable lesser/greater result | 
					
						
							|  |  |  |        */ | 
					
						
							|  |  |  |       return value_array1->n_values < value_array2->n_values ? -1 : value_array1->n_values > value_array2->n_values; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   else /* value_array1->n_values == value_array2->n_values */ | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       guint i; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       for (i = 0; i < value_array1->n_values; i++) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 	  GValue *element1 = value_array1->values + i; | 
					
						
							|  |  |  | 	  GValue *element2 = value_array2->values + i; | 
					
						
							|  |  |  | 	  gint cmp; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	  /* need corresponding element types, provide stable result otherwise */ | 
					
						
							|  |  |  | 	  if (G_VALUE_TYPE (element1) != G_VALUE_TYPE (element2)) | 
					
						
							|  |  |  | 	    return G_VALUE_TYPE (element1) < G_VALUE_TYPE (element2) ? -1 : 1; | 
					
						
							|  |  |  | 	  cmp = g_param_values_cmp (aspec->element_spec, element1, element2); | 
					
						
							|  |  |  | 	  if (cmp) | 
					
						
							|  |  |  | 	    return cmp; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  |       return 0; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_object_init (GParamSpec *pspec) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec); */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | param_object_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			  GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   value->data[0].v_pointer = NULL; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | static gboolean | 
					
						
							|  |  |  | param_object_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		       GValue     *value) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec); | 
					
						
							|  |  |  |   GObject *object = value->data[0].v_pointer; | 
					
						
							|  |  |  |   guint changed = 0; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (object && !g_value_type_compatible (G_OBJECT_TYPE (object), G_PARAM_SPEC_VALUE_TYPE (ospec))) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_object_unref (object); | 
					
						
							|  |  |  |       value->data[0].v_pointer = NULL; | 
					
						
							|  |  |  |       changed++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return changed; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | static gint | 
					
						
							|  |  |  | param_object_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			 const GValue *value1, | 
					
						
							|  |  |  | 			 const GValue *value2) | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   guint8 *p1 = value1->data[0].v_pointer; | 
					
						
							|  |  |  |   guint8 *p2 = value2->data[0].v_pointer; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* not much to compare here, try to at least provide stable lesser/greater result */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   return p1 < p2 ? -1 : p1 > p2; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | static void | 
					
						
							|  |  |  | param_override_init (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   /* GParamSpecOverride *ospec = G_PARAM_SPEC_OVERRIDE (pspec); */ | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_override_finalize (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecOverride *ospec = G_PARAM_SPEC_OVERRIDE (pspec); | 
					
						
							|  |  |  |   GParamSpecClass *parent_class = g_type_class_peek (g_type_parent (G_TYPE_PARAM_OVERRIDE)); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (ospec->overridden) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_param_spec_unref (ospec->overridden); | 
					
						
							|  |  |  |       ospec->overridden = NULL; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   parent_class->finalize (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_override_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			    GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecOverride *ospec = G_PARAM_SPEC_OVERRIDE (pspec); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_param_value_set_default (ospec->overridden, value); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_override_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecOverride *ospec = G_PARAM_SPEC_OVERRIDE (pspec); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return g_param_value_validate (ospec->overridden, value); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							|  |  |  | param_override_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			   const GValue *value1, | 
					
						
							|  |  |  | 			   const GValue *value2) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecOverride *ospec = G_PARAM_SPEC_OVERRIDE (pspec); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return g_param_values_cmp (ospec->overridden, value1, value2); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  | static void | 
					
						
							|  |  |  | param_gtype_init (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_gtype_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  | 			 GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2008-02-06 09:36:47 +00:00
										 |  |  |   GParamSpecGType *tspec = G_PARAM_SPEC_GTYPE (pspec); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   value->data[0].v_long = tspec->is_a_type; | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_gtype_validate (GParamSpec *pspec, | 
					
						
							|  |  |  | 		      GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecGType *tspec = G_PARAM_SPEC_GTYPE (pspec); | 
					
						
							|  |  |  |   GType gtype = value->data[0].v_long; | 
					
						
							|  |  |  |   guint changed = 0; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (tspec->is_a_type != G_TYPE_NONE && !g_type_is_a (gtype, tspec->is_a_type)) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-02-06 09:36:47 +00:00
										 |  |  |       value->data[0].v_long = tspec->is_a_type; | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  |       changed++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return changed; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							|  |  |  | param_gtype_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  | 			const GValue *value1, | 
					
						
							|  |  |  | 			const GValue *value2) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GType p1 = value1->data[0].v_long; | 
					
						
							|  |  |  |   GType p2 = value2->data[0].v_long; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* not much to compare here, try to at least provide stable lesser/greater result */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return p1 < p2 ? -1 : p1 > p2; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-17 18:03:51 +02:00
										 |  |  | static void | 
					
						
							|  |  |  | param_variant_init (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecVariant *vspec = G_PARAM_SPEC_VARIANT (pspec); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   vspec->type = NULL; | 
					
						
							|  |  |  |   vspec->default_value = NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_variant_finalize (GParamSpec *pspec) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecVariant *vspec = G_PARAM_SPEC_VARIANT (pspec); | 
					
						
							|  |  |  |   GParamSpecClass *parent_class = g_type_class_peek (g_type_parent (G_TYPE_PARAM_VARIANT)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (vspec->default_value) | 
					
						
							|  |  |  |     g_variant_unref (vspec->default_value); | 
					
						
							|  |  |  |   g_variant_type_free (vspec->type); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   parent_class->finalize (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | param_variant_set_default (GParamSpec *pspec, | 
					
						
							|  |  |  |                            GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   value->data[0].v_pointer = G_PARAM_SPEC_VARIANT (pspec)->default_value; | 
					
						
							|  |  |  |   value->data[1].v_uint |= G_VALUE_NOCOPY_CONTENTS; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gboolean | 
					
						
							|  |  |  | param_variant_validate (GParamSpec *pspec, | 
					
						
							|  |  |  |                         GValue     *value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecVariant *vspec = G_PARAM_SPEC_VARIANT (pspec); | 
					
						
							|  |  |  |   GVariant *variant = value->data[0].v_pointer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if ((variant == NULL && vspec->default_value != NULL) || | 
					
						
							|  |  |  |       (variant != NULL && !g_variant_is_of_type (variant, vspec->type))) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_param_value_set_default (pspec, value); | 
					
						
							|  |  |  |       return TRUE; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return FALSE; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static gint | 
					
						
							|  |  |  | param_variant_values_cmp (GParamSpec   *pspec, | 
					
						
							|  |  |  |                           const GValue *value1, | 
					
						
							|  |  |  |                           const GValue *value2) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GVariant *v1 = value1->data[0].v_pointer; | 
					
						
							|  |  |  |   GVariant *v2 = value2->data[0].v_pointer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return v1 < v2 ? -1 : v2 > v1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | /* --- type initialization --- */ | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  | GType *g_param_spec_types = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | void | 
					
						
							| 
									
										
										
										
											2011-06-02 17:14:58 -04:00
										 |  |  | _g_param_spec_types_init (void)	 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-06-17 18:03:51 +02:00
										 |  |  |   const guint n_types = 23; | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |   GType type, *spec_types, *spec_types_bound; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_param_spec_types = g_new0 (GType, n_types); | 
					
						
							|  |  |  |   spec_types = g_param_spec_types; | 
					
						
							|  |  |  |   spec_types_bound = g_param_spec_types + n_types; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_CHAR
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecChar),	/* instance_size */ | 
					
						
							|  |  |  |       16,			/* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_char_init,		/* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_CHAR,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_char_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_char_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_int_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamChar"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_CHAR); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_UCHAR
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecUChar), /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_uchar_init,         /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_UCHAR,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_uchar_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_uchar_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_uint_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamUChar"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_UCHAR); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |   /* G_TYPE_PARAM_BOOLEAN
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecBoolean), /* instance_size */ | 
					
						
							|  |  |  |       16,                         /* n_preallocs */ | 
					
						
							|  |  |  |       NULL,			  /* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_BOOLEAN,             /* value_type */ | 
					
						
							|  |  |  |       NULL,                       /* finalize */ | 
					
						
							|  |  |  |       param_boolean_set_default,  /* value_set_default */ | 
					
						
							|  |  |  |       param_boolean_validate,     /* value_validate */ | 
					
						
							|  |  |  |       param_int_values_cmp,       /* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamBoolean"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_BOOLEAN); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_INT
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecInt),   /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_int_init,           /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_INT,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_int_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_int_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_int_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamInt"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_INT); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_UINT
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecUInt),  /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_uint_init,          /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_UINT,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_uint_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_uint_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_uint_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamUInt"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_UINT); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_LONG
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecLong),  /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_long_init,          /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_LONG,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_long_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_long_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_long_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamLong"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_LONG); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_ULONG
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecULong), /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_ulong_init,         /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_ULONG,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_ulong_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_ulong_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_ulong_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamULong"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_ULONG); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2001-04-01 04:04:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  |   /* G_TYPE_PARAM_INT64
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecInt64),  /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							|  |  |  |       param_int64_init,         /* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_INT64,		/* value_type */ | 
					
						
							|  |  |  |       NULL,			/* finalize */ | 
					
						
							|  |  |  |       param_int64_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_int64_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_int64_values_cmp,	/* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamInt64"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_INT64); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_UINT64
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecUInt64), /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							|  |  |  |       param_uint64_init,        /* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_UINT64,		/* value_type */ | 
					
						
							|  |  |  |       NULL,			/* finalize */ | 
					
						
							|  |  |  |       param_uint64_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_uint64_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_uint64_values_cmp,	/* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamUInt64"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_UINT64); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-04-01 04:04:46 +00:00
										 |  |  |   /* G_TYPE_PARAM_UNICHAR
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecUnichar), /* instance_size */ | 
					
						
							|  |  |  |       16,                        /* n_preallocs */ | 
					
						
							|  |  |  |       param_unichar_init,	 /* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_UINT,		 /* value_type */ | 
					
						
							|  |  |  |       NULL,			 /* finalize */ | 
					
						
							|  |  |  |       param_unichar_set_default, /* value_set_default */ | 
					
						
							|  |  |  |       param_unichar_validate,	 /* value_validate */ | 
					
						
							|  |  |  |       param_unichar_values_cmp,	 /* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamUnichar"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
										
										
											2001-04-01 04:04:46 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_UNICHAR); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  /* G_TYPE_PARAM_ENUM
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecEnum),  /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_enum_init,          /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_ENUM,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_enum_finalize,	/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_enum_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_enum_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_long_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamEnum"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_ENUM); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_FLAGS
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       sizeof (GParamSpecFlags),	/* instance_size */ | 
					
						
							|  |  |  |       16,			/* n_preallocs */ | 
					
						
							|  |  |  |       param_flags_init,		/* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_FLAGS,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_flags_finalize,	/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_flags_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_flags_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_ulong_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamFlags"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_FLAGS); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_FLOAT
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecFloat), /* instance_size */ | 
					
						
							|  |  |  |       16,                       /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_float_init,         /* instance_init */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       G_TYPE_FLOAT,		/* value_type */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  |       param_float_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_float_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_float_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamFloat"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_FLOAT); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_DOUBLE
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       sizeof (GParamSpecDouble),	/* instance_size */ | 
					
						
							|  |  |  |       16,				/* n_preallocs */ | 
					
						
							|  |  |  |       param_double_init,		/* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_DOUBLE,			/* value_type */ | 
					
						
							|  |  |  |       NULL,				/* finalize */ | 
					
						
							|  |  |  |       param_double_set_default,		/* value_set_default */ | 
					
						
							|  |  |  |       param_double_validate,		/* value_validate */ | 
					
						
							|  |  |  |       param_double_values_cmp,		/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamDouble"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_DOUBLE); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* G_TYPE_PARAM_STRING
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       sizeof (GParamSpecString),	/* instance_size */ | 
					
						
							|  |  |  |       16,				/* n_preallocs */ | 
					
						
							|  |  |  |       param_string_init,		/* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_STRING,			/* value_type */ | 
					
						
							|  |  |  |       param_string_finalize,		/* finalize */ | 
					
						
							|  |  |  |       param_string_set_default,		/* value_set_default */ | 
					
						
							|  |  |  |       param_string_validate,		/* value_validate */ | 
					
						
							|  |  |  |       param_string_values_cmp,		/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamString"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_STRING); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |   /* G_TYPE_PARAM_PARAM
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       sizeof (GParamSpecParam),	/* instance_size */ | 
					
						
							|  |  |  |       16,			/* n_preallocs */ | 
					
						
							|  |  |  |       param_param_init,		/* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_PARAM,		/* value_type */ | 
					
						
							|  |  |  |       NULL,			/* finalize */ | 
					
						
							|  |  |  |       param_param_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_param_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_pointer_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamParam"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_PARAM); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* G_TYPE_PARAM_BOXED
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecBoxed),	/* instance_size */ | 
					
						
							|  |  |  |       4,			/* n_preallocs */ | 
					
						
							|  |  |  |       param_boxed_init,		/* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_BOXED,		/* value_type */ | 
					
						
							|  |  |  |       NULL,			/* finalize */ | 
					
						
							|  |  |  |       param_boxed_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_boxed_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_boxed_values_cmp,	/* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamBoxed"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_BOXED); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |   /* G_TYPE_PARAM_POINTER
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecPointer),  /* instance_size */ | 
					
						
							|  |  |  |       0,                           /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_pointer_init,	   /* instance_init */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |       G_TYPE_POINTER,  		   /* value_type */ | 
					
						
							|  |  |  |       NULL,			   /* finalize */ | 
					
						
							|  |  |  |       param_pointer_set_default,   /* value_set_default */ | 
					
						
							|  |  |  |       param_pointer_validate,	   /* value_validate */ | 
					
						
							|  |  |  |       param_pointer_values_cmp,	   /* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamPointer"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_POINTER); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   /* G_TYPE_PARAM_VALUE_ARRAY
 | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     static /* const */ GParamSpecTypeInfo pspec_info = { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       sizeof (GParamSpecValueArray),	/* instance_size */ | 
					
						
							|  |  |  |       0,				/* n_preallocs */ | 
					
						
							|  |  |  |       param_value_array_init,		/* instance_init */ | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |       0xdeadbeef,			/* value_type, assigned further down */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_value_array_finalize,	/* finalize */ | 
					
						
							|  |  |  |       param_value_array_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_value_array_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_value_array_values_cmp,	/* values_cmp */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     pspec_info.value_type = G_TYPE_VALUE_ARRAY; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamValueArray"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_VALUE_ARRAY); | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |   } | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   /* G_TYPE_PARAM_OBJECT
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecObject), /* instance_size */ | 
					
						
							|  |  |  |       16,                        /* n_preallocs */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |       param_object_init,	 /* instance_init */ | 
					
						
							| 
									
										
											  
											
												added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
        * glib-object.h: added newly added gobject/ headers.
        * gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.
        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.
Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.
        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.
        * genum.c: macro cleanups.
        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.
        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.
        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.
        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.
        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.
        * many const corrections over the place.
Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
											
										 
											2000-10-25 20:36:35 +00:00
										 |  |  |       G_TYPE_OBJECT,		 /* value_type */ | 
					
						
							|  |  |  |       NULL,			 /* finalize */ | 
					
						
							|  |  |  |       param_object_set_default,	 /* value_set_default */ | 
					
						
							|  |  |  |       param_object_validate,	 /* value_validate */ | 
					
						
							|  |  |  |       param_object_values_cmp,	 /* values_cmp */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamObject"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |     g_assert (type == G_TYPE_PARAM_OBJECT); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  |   /* G_TYPE_PARAM_OVERRIDE
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     static const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecOverride), /* instance_size */ | 
					
						
							|  |  |  |       16,                        /* n_preallocs */ | 
					
						
							|  |  |  |       param_override_init,	 /* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_NONE,		 /* value_type */ | 
					
						
							|  |  |  |       param_override_finalize,	 /* finalize */ | 
					
						
							|  |  |  |       param_override_set_default, /* value_set_default */ | 
					
						
							|  |  |  |       param_override_validate,	  /* value_validate */ | 
					
						
							|  |  |  |       param_override_values_cmp,  /* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2005-08-31 17:56:49 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamOverride"), &pspec_info); | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  |     *spec_types++ = type; | 
					
						
							|  |  |  |     g_assert (type == G_TYPE_PARAM_OVERRIDE); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  |   /* G_TYPE_PARAM_GTYPE
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecGType),	/* instance_size */ | 
					
						
							|  |  |  |       0,			/* n_preallocs */ | 
					
						
							|  |  |  |       param_gtype_init,		/* instance_init */ | 
					
						
							| 
									
										
										
										
											2007-06-14 20:56:15 +00:00
										 |  |  |       0xdeadbeef,		/* value_type, assigned further down */ | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  |       NULL,			/* finalize */ | 
					
						
							|  |  |  |       param_gtype_set_default,	/* value_set_default */ | 
					
						
							|  |  |  |       param_gtype_validate,	/* value_validate */ | 
					
						
							|  |  |  |       param_gtype_values_cmp,	/* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2007-06-14 20:56:15 +00:00
										 |  |  |     pspec_info.value_type = G_TYPE_GTYPE; | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamGType"), &pspec_info); | 
					
						
							|  |  |  |     *spec_types++ = type; | 
					
						
							|  |  |  |     g_assert (type == G_TYPE_PARAM_GTYPE); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-17 18:03:51 +02:00
										 |  |  |   /* G_TYPE_PARAM_VARIANT
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     const GParamSpecTypeInfo pspec_info = { | 
					
						
							|  |  |  |       sizeof (GParamSpecVariant), /* instance_size */ | 
					
						
							|  |  |  |       0,                          /* n_preallocs */ | 
					
						
							|  |  |  |       param_variant_init,         /* instance_init */ | 
					
						
							|  |  |  |       G_TYPE_VARIANT,             /* value_type */ | 
					
						
							|  |  |  |       param_variant_finalize,     /* finalize */ | 
					
						
							|  |  |  |       param_variant_set_default,  /* value_set_default */ | 
					
						
							|  |  |  |       param_variant_validate,     /* value_validate */ | 
					
						
							|  |  |  |       param_variant_values_cmp,   /* values_cmp */ | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     type = g_param_type_register_static (g_intern_static_string ("GParamVariant"), &pspec_info); | 
					
						
							|  |  |  |     *spec_types++ = type; | 
					
						
							|  |  |  |     g_assert (type == G_TYPE_PARAM_VARIANT); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-21 17:49:34 +00:00
										 |  |  |   g_assert (spec_types == spec_types_bound); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* --- GParamSpec initialization --- */ | 
					
						
							| 
									
										
										
										
											2002-12-15 02:38:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_char: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecChar instance specifying a %G_TYPE_CHAR property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_char (const gchar *name, | 
					
						
							|  |  |  | 		   const gchar *nick, | 
					
						
							|  |  |  | 		   const gchar *blurb, | 
					
						
							|  |  |  | 		   gint8	minimum, | 
					
						
							|  |  |  | 		   gint8	maximum, | 
					
						
							|  |  |  | 		   gint8	default_value, | 
					
						
							|  |  |  | 		   GParamFlags	flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecChar *cspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cspec = g_param_spec_internal (G_TYPE_PARAM_CHAR, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   cspec->minimum = minimum; | 
					
						
							|  |  |  |   cspec->maximum = maximum; | 
					
						
							|  |  |  |   cspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (cspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_uchar: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecUChar instance specifying a %G_TYPE_UCHAR property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_uchar (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    guint8	 minimum, | 
					
						
							|  |  |  | 		    guint8	 maximum, | 
					
						
							|  |  |  | 		    guint8	 default_value, | 
					
						
							|  |  |  | 		    GParamFlags	 flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecUChar *uspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   uspec = g_param_spec_internal (G_TYPE_PARAM_UCHAR, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = minimum; | 
					
						
							|  |  |  |   uspec->maximum = maximum; | 
					
						
							|  |  |  |   uspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (uspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_boolean: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecBoolean instance specifying a %G_TYPE_BOOLEAN | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							| 
									
										
											  
											
												define gstring in terms of gchar*. this typedef reflects the type name of
Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
        * glib.h: define gstring in terms of gchar*. this typedef reflects
        the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
        * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
        G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
        G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
        added a GTypeValueTable* pointer to GTypeInfo structure for types
        to implement GValue handling functions.
        GTypeValueTable contains the following members:
          value_init(): initialize a GValue structure.
          value_free(): free GValue structure contents (optional).
          value_copy(): copy one GValue contents to another GValue structure of
          collect_type: varargs collection type for the first variable argument
          to be collected by collect_value().
          collect_value(): variable arguments collection function (optional).
          lcopy_type: varargs collection type for the first variable argument
          to be location copyied by lcopy_value().
          lcopy_value(): variable arguments location copy function (optional).
        g_type_value_table_peek(): new function to retrive the GTypeValueTable*
        for a type node. ValueTables get inherited from parent types, unless
        overridden through the GTypeInfo structure. internally, GTypeValueTable
        support means an added overhead of one pointer per static or used
        dynamic type node.
        g_type_add_class_cache_func(): provide a cache_func/data pair to be
        called  prior to a type nodes last_unref() function, this can be used
        to prevent premature class destruction. multiple installed cache_func()
        will be chained upon last_unref() untill one of them returns TRUE.
        the cache_func()s have to check the type id passed in to figure whether
        they actually wants to cache the class of this type (since any types are
        routed through the cache_func() chain).
        g_type_remove_class_cache_func(): remove a previously installed
        cache_func/data pair. the cache maintained by this function has to be
        clear when calling g_type_remove_class_cache_func() to avoid leaks.
        g_type_class_unref_uncached(): class unref function for cache_func()
        implementations, unreferences a class omitting the cache chain (and
        therefore unref->cache->unref->... loops).
        * gvaluetypes.[hc]: provide the value setters/getters for the primitive
        fundamental types boolean, char, uchar, int, uint, long, ulong, float,
        double and string.
        * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
        GTypeValueTable is provided for this type.
        removed g_value_init_default(), g_value_validate(), g_value_defaults(),
        g_value_set_default() and g_values_cmp() as these are supplied by the
        GParamSpec API now.
        moved g_values_exchange() into the "implementation details" section,
        since it just provides the underlying functionality for
        g_value_convert().
        * gvaluecollector.h: renamed the varargs value container from
        GParamCValue to GTypeCValue as the value collection methods are
        supplied by the type system now.
        G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
        G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
        GParamSpec structure now.
        * genums.h: macros cleanups/fixes.
        * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
        and assorted g_value_{s|g}et_{enum|flags}() implementations.
        * gobject.[hc]:
        provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
        and g_value_{s|g}et_object().
        * gparam.[hc]: reduced class to value_set_default(),
        value_validate() and values_cmp(). also parameters now need to fill
        in a GType value_type; field to indicate the GValue type they
        are handling. provide g_param_value_set_default(),
        g_param_value_defaults(), g_param_value_validate() and
        g_param_values_cmp().
        * gparamspecs.[hc]: got rid of the g_value_* functions and
        the G_IS_VALUE_* macros. adapted param spec implementations
        according to the GParamSpecClass changes.
											
										 
											2000-06-24 22:30:10 +00:00
										 |  |  | g_param_spec_boolean (const gchar *name, | 
					
						
							|  |  |  | 		      const gchar *nick, | 
					
						
							|  |  |  | 		      const gchar *blurb, | 
					
						
							|  |  |  | 		      gboolean	   default_value, | 
					
						
							|  |  |  | 		      GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecBoolean *bspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value == TRUE || default_value == FALSE, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   bspec = g_param_spec_internal (G_TYPE_PARAM_BOOLEAN, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   bspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (bspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_int: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecInt instance specifying a %G_TYPE_INT property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_int (const gchar *name, | 
					
						
							|  |  |  | 		  const gchar *nick, | 
					
						
							|  |  |  | 		  const gchar *blurb, | 
					
						
							|  |  |  | 		  gint	       minimum, | 
					
						
							|  |  |  | 		  gint	       maximum, | 
					
						
							|  |  |  | 		  gint	       default_value, | 
					
						
							|  |  |  | 		  GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecInt *ispec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ispec = g_param_spec_internal (G_TYPE_PARAM_INT, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   ispec->minimum = minimum; | 
					
						
							|  |  |  |   ispec->maximum = maximum; | 
					
						
							|  |  |  |   ispec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (ispec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_uint: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecUInt instance specifying a %G_TYPE_UINT property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_uint (const gchar *name, | 
					
						
							|  |  |  | 		   const gchar *nick, | 
					
						
							|  |  |  | 		   const gchar *blurb, | 
					
						
							|  |  |  | 		   guint	minimum, | 
					
						
							|  |  |  | 		   guint	maximum, | 
					
						
							|  |  |  | 		   guint	default_value, | 
					
						
							|  |  |  | 		   GParamFlags	flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecUInt *uspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   uspec = g_param_spec_internal (G_TYPE_PARAM_UINT, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = minimum; | 
					
						
							|  |  |  |   uspec->maximum = maximum; | 
					
						
							|  |  |  |   uspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (uspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_long: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecLong instance specifying a %G_TYPE_LONG property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_long (const gchar *name, | 
					
						
							|  |  |  | 		   const gchar *nick, | 
					
						
							|  |  |  | 		   const gchar *blurb, | 
					
						
							|  |  |  | 		   glong	minimum, | 
					
						
							|  |  |  | 		   glong	maximum, | 
					
						
							|  |  |  | 		   glong	default_value, | 
					
						
							|  |  |  | 		   GParamFlags	flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecLong *lspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   lspec = g_param_spec_internal (G_TYPE_PARAM_LONG, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   lspec->minimum = minimum; | 
					
						
							|  |  |  |   lspec->maximum = maximum; | 
					
						
							|  |  |  |   lspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (lspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_ulong: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecULong instance specifying a %G_TYPE_ULONG | 
					
						
							|  |  |  |  * property. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_ulong (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    gulong	 minimum, | 
					
						
							|  |  |  | 		    gulong	 maximum, | 
					
						
							|  |  |  | 		    gulong	 default_value, | 
					
						
							|  |  |  | 		    GParamFlags	 flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecULong *uspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   uspec = g_param_spec_internal (G_TYPE_PARAM_ULONG, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = minimum; | 
					
						
							|  |  |  |   uspec->maximum = maximum; | 
					
						
							|  |  |  |   uspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (uspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_int64: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecInt64 instance specifying a %G_TYPE_INT64 property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_int64 (const gchar *name, | 
					
						
							| 
									
										
										
										
											2001-10-12 16:42:48 +00:00
										 |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    gint64	 minimum, | 
					
						
							|  |  |  | 		    gint64	 maximum, | 
					
						
							|  |  |  | 		    gint64	 default_value, | 
					
						
							|  |  |  | 		    GParamFlags	 flags) | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecInt64 *lspec; | 
					
						
							| 
									
										
										
										
											2001-10-12 16:42:48 +00:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   lspec = g_param_spec_internal (G_TYPE_PARAM_INT64, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   lspec->minimum = minimum; | 
					
						
							|  |  |  |   lspec->maximum = maximum; | 
					
						
							|  |  |  |   lspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (lspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_uint64: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecUInt64 instance specifying a %G_TYPE_UINT64 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_uint64 (const gchar *name, | 
					
						
							| 
									
										
										
										
											2001-10-12 16:42:48 +00:00
										 |  |  | 		     const gchar *nick, | 
					
						
							|  |  |  | 		     const gchar *blurb, | 
					
						
							|  |  |  | 		     guint64	  minimum, | 
					
						
							|  |  |  | 		     guint64	  maximum, | 
					
						
							|  |  |  | 		     guint64	  default_value, | 
					
						
							|  |  |  | 		     GParamFlags  flags) | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   GParamSpecUInt64 *uspec; | 
					
						
							| 
									
										
										
										
											2001-10-12 16:42:48 +00:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							| 
									
										
										
										
											2001-10-12 16:42:48 +00:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2001-10-11 02:43:04 +00:00
										 |  |  |   uspec = g_param_spec_internal (G_TYPE_PARAM_UINT64, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->minimum = minimum; | 
					
						
							|  |  |  |   uspec->maximum = maximum; | 
					
						
							|  |  |  |   uspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (uspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_unichar: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecUnichar instance specifying a %G_TYPE_UINT | 
					
						
							|  |  |  |  * property. #GValue structures for this property can be accessed with | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * g_value_set_uint() and g_value_get_uint(). | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2001-04-01 04:04:46 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_unichar (const gchar *name, | 
					
						
							|  |  |  | 		      const gchar *nick, | 
					
						
							|  |  |  | 		      const gchar *blurb, | 
					
						
							|  |  |  | 		      gunichar	   default_value, | 
					
						
							|  |  |  | 		      GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecUnichar *uspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   uspec = g_param_spec_internal (G_TYPE_PARAM_UNICHAR, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   uspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (uspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_enum: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @enum_type: a #GType derived from %G_TYPE_ENUM | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecEnum instance specifying a %G_TYPE_ENUM | 
					
						
							|  |  |  |  * property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_enum (const gchar *name, | 
					
						
							|  |  |  | 		   const gchar *nick, | 
					
						
							|  |  |  | 		   const gchar *blurb, | 
					
						
							|  |  |  | 		   GType	enum_type, | 
					
						
							|  |  |  | 		   gint		default_value, | 
					
						
							|  |  |  | 		   GParamFlags	flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecEnum *espec; | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GEnumClass *enum_class; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), NULL); | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   enum_class = g_type_class_ref (enum_type); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (g_enum_get_value (enum_class, default_value) != NULL, NULL); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   espec = g_param_spec_internal (G_TYPE_PARAM_ENUM, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   espec->enum_class = enum_class; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   espec->default_value = default_value; | 
					
						
							| 
									
										
										
										
											2001-01-05 20:26:29 +00:00
										 |  |  |   G_PARAM_SPEC (espec)->value_type = enum_type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (espec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_flags: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @flags_type: a #GType derived from %G_TYPE_FLAGS | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecFlags instance specifying a %G_TYPE_FLAGS | 
					
						
							|  |  |  |  * property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_flags (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    GType	 flags_type, | 
					
						
							|  |  |  | 		    guint	 default_value, | 
					
						
							|  |  |  | 		    GParamFlags	 flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecFlags *fspec; | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GFlagsClass *flags_class; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   g_return_val_if_fail (G_TYPE_IS_FLAGS (flags_type), NULL); | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   flags_class = g_type_class_ref (flags_type); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail ((default_value & flags_class->mask) == default_value, NULL); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   fspec = g_param_spec_internal (G_TYPE_PARAM_FLAGS, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   fspec->flags_class = flags_class; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |   fspec->default_value = default_value; | 
					
						
							| 
									
										
										
										
											2001-01-05 20:26:29 +00:00
										 |  |  |   G_PARAM_SPEC (fspec)->value_type = flags_type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (fspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_float: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecFloat instance specifying a %G_TYPE_FLOAT property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_float (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    gfloat	 minimum, | 
					
						
							|  |  |  | 		    gfloat	 maximum, | 
					
						
							|  |  |  | 		    gfloat	 default_value, | 
					
						
							|  |  |  | 		    GParamFlags	 flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecFloat *fspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   fspec = g_param_spec_internal (G_TYPE_PARAM_FLOAT, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   fspec->minimum = minimum; | 
					
						
							|  |  |  |   fspec->maximum = maximum; | 
					
						
							|  |  |  |   fspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (fspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_double: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @minimum: minimum value for the property specified | 
					
						
							|  |  |  |  * @maximum: maximum value for the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecDouble instance specifying a %G_TYPE_DOUBLE | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_double (const gchar *name, | 
					
						
							|  |  |  | 		     const gchar *nick, | 
					
						
							|  |  |  | 		     const gchar *blurb, | 
					
						
							|  |  |  | 		     gdouble	  minimum, | 
					
						
							|  |  |  | 		     gdouble	  maximum, | 
					
						
							|  |  |  | 		     gdouble	  default_value, | 
					
						
							|  |  |  | 		     GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   GParamSpecDouble *dspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value >= minimum && default_value <= maximum, NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   dspec = g_param_spec_internal (G_TYPE_PARAM_DOUBLE, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   dspec->minimum = minimum; | 
					
						
							|  |  |  |   dspec->maximum = maximum; | 
					
						
							|  |  |  |   dspec->default_value = default_value; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (dspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_string: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @default_value: default value for the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecString instance. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_string (const gchar *name, | 
					
						
							|  |  |  | 		     const gchar *nick, | 
					
						
							|  |  |  | 		     const gchar *blurb, | 
					
						
							|  |  |  | 		     const gchar *default_value, | 
					
						
							|  |  |  | 		     GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecString *sspec = g_param_spec_internal (G_TYPE_PARAM_STRING, | 
					
						
							|  |  |  | 						   name, | 
					
						
							|  |  |  | 						   nick, | 
					
						
							|  |  |  | 						   blurb, | 
					
						
							|  |  |  | 						   flags); | 
					
						
							|  |  |  |   g_free (sspec->default_value); | 
					
						
							|  |  |  |   sspec->default_value = g_strdup (default_value); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (sspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_param: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @param_type: a #GType derived from %G_TYPE_PARAM | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new #GParamSpecParam instance specifying a %G_TYPE_PARAM | 
					
						
							|  |  |  |  * property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_param (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    GType	 param_type, | 
					
						
							|  |  |  | 		    GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecParam *pspec; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   g_return_val_if_fail (G_TYPE_IS_PARAM (param_type), NULL); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   pspec = g_param_spec_internal (G_TYPE_PARAM_PARAM, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
										
										
											2000-12-15 05:51:08 +00:00
										 |  |  |   G_PARAM_SPEC (pspec)->value_type = param_type; | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_boxed: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @boxed_type: %G_TYPE_BOXED derived type of this property | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_BOXED | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * derived property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_boxed (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    GType	 boxed_type, | 
					
						
							|  |  |  | 		    GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecBoxed *bspec; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   g_return_val_if_fail (G_TYPE_IS_BOXED (boxed_type), NULL); | 
					
						
							| 
									
										
										
										
											2001-03-14 15:33:45 +00:00
										 |  |  |   g_return_val_if_fail (G_TYPE_IS_VALUE_TYPE (boxed_type), NULL); | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   bspec = g_param_spec_internal (G_TYPE_PARAM_BOXED, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |   G_PARAM_SPEC (bspec)->value_type = boxed_type; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (bspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_pointer: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-09-05 18:46:59 -04:00
										 |  |  |  * Creates a new #GParamSpecPointer instance specifying a pointer property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_pointer (const gchar *name, | 
					
						
							|  |  |  | 		      const gchar *nick, | 
					
						
							|  |  |  | 		      const gchar *blurb, | 
					
						
							|  |  |  | 		      GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecPointer *pspec; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   pspec = g_param_spec_internal (G_TYPE_PARAM_POINTER, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  |   return G_PARAM_SPEC (pspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_gtype: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @is_a_type: a #GType whose subtypes are allowed as values | 
					
						
							|  |  |  |  *  of the property (use %G_TYPE_NONE for any type) | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecGType instance specifying a | 
					
						
							|  |  |  |  * %G_TYPE_GTYPE property. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Since: 2.10 | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_gtype (const gchar *name, | 
					
						
							|  |  |  | 		    const gchar *nick, | 
					
						
							|  |  |  | 		    const gchar *blurb, | 
					
						
							|  |  |  | 		    GType        is_a_type, | 
					
						
							|  |  |  | 		    GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecGType *tspec; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   tspec = g_param_spec_internal (G_TYPE_PARAM_GTYPE, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   tspec->is_a_type = is_a_type; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return G_PARAM_SPEC (tspec); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_value_array: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * @element_spec: a #GParamSpec describing the elements contained in | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  *  arrays of this property, may be %NULL | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecValueArray instance specifying a | 
					
						
							|  |  |  |  * %G_TYPE_VALUE_ARRAY property. %G_TYPE_VALUE_ARRAY is a | 
					
						
							|  |  |  |  * %G_TYPE_BOXED type, as such, #GValue structures for this property | 
					
						
							|  |  |  |  * can be accessed with g_value_set_boxed() and g_value_get_boxed(). | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | GParamSpec* | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  | g_param_spec_value_array (const gchar *name, | 
					
						
							|  |  |  | 			  const gchar *nick, | 
					
						
							|  |  |  | 			  const gchar *blurb, | 
					
						
							|  |  |  | 			  GParamSpec  *element_spec, | 
					
						
							|  |  |  | 			  GParamFlags  flags) | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | { | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   GParamSpecValueArray *aspec; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (element_spec) | 
					
						
							|  |  |  |     g_return_val_if_fail (G_IS_PARAM_SPEC (element_spec), NULL); | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  |    | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   aspec = g_param_spec_internal (G_TYPE_PARAM_VALUE_ARRAY, | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
											  
											
												changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.
	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.
	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.
	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.
	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.
	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.
	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.
	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.
	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.
	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.
	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().
	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
	* *.[hc]: many fixes and cleanups.
	* many warning improvements.
Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.
	* gparam.c: fixed G_PARAM_USER_MASK.
	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.
	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.
	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.
	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.
	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
        * glib-object.h: add gvaluearray.h.
        * gstring.[hc]: fixup naming of g_string_sprint*.
        * gtypes.h: fixed GCompareDataFunc naming.
Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.
        * gobject/gobject-sections.txt: updates.
        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
											
										 
											2001-03-07 14:46:45 +00:00
										 |  |  |   if (element_spec) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       aspec->element_spec = g_param_spec_ref (element_spec); | 
					
						
							|  |  |  |       g_param_spec_sink (element_spec); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return G_PARAM_SPEC (aspec); | 
					
						
							| 
									
										
											  
											
												fixed dealing with collection/lcopy of NULL values.
Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
	* gboxed.c: fixed dealing with collection/lcopy of NULL values.
	* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
	convenience macro.
	* Makefile.am: cleanups, marshaller generation rules.
	* gmarshal.[hc]: new files with GRuntime standard marshallers.
	* glib-genmarshal.c: fix log domain, support gruntime standard
	marshallers, suport G_TYPE_PARAM, come with extern "C" and
	#include gmarshal.h.
	* glib-genmarshal.1: reflect glib-genmarshal.c updates.
	* gobject.[hc]: implement object constructor. rework parameter
	changed notification queueing, we support queue freezes now and
	don't dispatch from an idle handler anymore.
	parameter->property rename hassle.
	implemented ::properties_changed and ::notify::* signals for
	property change notification (the later supports property names
	as details). added signal connection and named data properties.
	(g_signal_connect_object): new function to setup while_alive
	connections.
	(g_object_class_install_property): sink properties now, since they
	are initially floating.
	(g_object_steal_data):
	(g_object_set_data_full):
	(g_object_set_data):
	(g_object_get_data): set/get data by using g_datalist_*() functions
	directly.
	(g_object_queue_param_changed): nuked.
	(g_object_freeze_notify): start queueing of property changes (freeze/
	thaw calls stack).
	(g_object_notify): announce changes of a certain property directly.
	(g_object_thaw_notify): process queue of property changes, therefore
	emitting GObject::notify::detail with detail being the changed
	properties names.
	(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
	G_WARN_INVALID_PARAM_ID().
	* gparam.[hc]: param specs are now initially floating and need to be
	sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
	added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
	required by GObjectClass.constructor().
	* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
	GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
	and G_TYPE_CCALLBACK respectively.
	* gsignal.[hc]: cleanups.
	(signal_id_lookup): after walking the anchestry, try interfaces as well.
	(g_signal_new): new function to create signals from varargs type list.
	(g_signal_connect_closure): closure connection variant that works from
	signal name+detail.
	(g_signal_connect_data): c handler connection variant that works from
	signal name+detail.
	(g_signal_emit_valist): emit signal for an instance with paraneters
	collected from a va_list.
	(g_signal_emit): emit signal, taking parameters from varargs list.
	(g_signal_emit_by_name): same as g_signal_emit, working from
	signal name+detail.
	(signal_emit_R): return whether return_value needs to be altered.
	* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
	the points that need to reflect the upcoming rename.
	melt g_type_conforms_to() functionality into g_type_is_a(), as that
	is what we really want (liskov substitution principle).
	assorted changes to other files due to conforms_to->is_a.
	* gvalue.[hc]: implemented g_value_set_instance() that sets a value
	from an instantiatable type via the value_table's collect_value()
	function (based on an idea from James Henstridge <james@daa.com.au>).
	cleanups/fixes.
	* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
											
										 
											2000-12-12 07:32:00 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_object: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @object_type: %G_TYPE_OBJECT derived type of this property | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_OBJECT | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * derived property. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: a newly created parameter specification | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_object (const gchar *name, | 
					
						
							|  |  |  | 		     const gchar *nick, | 
					
						
							|  |  |  | 		     const gchar *blurb, | 
					
						
							|  |  |  | 		     GType	  object_type, | 
					
						
							|  |  |  | 		     GParamFlags  flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecObject *ospec; | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2001-03-09 09:14:32 +00:00
										 |  |  |   g_return_val_if_fail (g_type_is_a (object_type, G_TYPE_OBJECT), NULL); | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   ospec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, | 
					
						
							|  |  |  | 				 name, | 
					
						
							|  |  |  | 				 nick, | 
					
						
							|  |  |  | 				 blurb, | 
					
						
							|  |  |  | 				 flags); | 
					
						
							| 
									
										
										
										
											2000-12-15 05:51:08 +00:00
										 |  |  |   G_PARAM_SPEC (ospec)->value_type = object_type; | 
					
						
							| 
									
										
											  
											
												add reserved fundamental ids for gtk types (for transition time). added
Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
	* gtype.h: add reserved fundamental ids for gtk types (for transition
	time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.
Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
	* fixed a couple of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.
Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.
Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.
	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.
	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).
	* glib-gvalue.[hc]: GValue functionality implementation.
	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.
        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].
	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.
	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.
											
										 
											2000-05-12 15:22:31 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   return G_PARAM_SPEC (ospec); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_override: (skip) | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * @name: the name of the property. | 
					
						
							|  |  |  |  * @overridden: The property that is being overridden | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Creates a new property of type #GParamSpecOverride. This is used | 
					
						
							|  |  |  |  * to direct operations to another paramspec, and will not be directly | 
					
						
							|  |  |  |  * useful unless you are implementing a new base type similar to GObject. | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Since: 2.4 | 
					
						
							| 
									
										
										
										
											2008-06-22 14:53:09 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  |  * Returns: the newly created #GParamSpec | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_override (const gchar *name, | 
					
						
							|  |  |  | 		       GParamSpec  *overridden) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpec *pspec; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   g_return_val_if_fail (name != NULL, NULL); | 
					
						
							|  |  |  |   g_return_val_if_fail (G_IS_PARAM_SPEC (overridden), NULL); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   /* Dereference further redirections for property that was passed in
 | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   while (TRUE) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       GParamSpec *indirect = g_param_spec_get_redirect_target (overridden); | 
					
						
							|  |  |  |       if (indirect) | 
					
						
							|  |  |  | 	overridden = indirect; | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  | 	break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   pspec = g_param_spec_internal (G_TYPE_PARAM_OVERRIDE, | 
					
						
							|  |  |  | 				 name, NULL, NULL, | 
					
						
							|  |  |  | 				 overridden->flags); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   pspec->value_type = G_PARAM_SPEC_VALUE_TYPE (overridden); | 
					
						
							|  |  |  |   G_PARAM_SPEC_OVERRIDE (pspec)->overridden = g_param_spec_ref (overridden); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return pspec; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2005-03-14 06:47:51 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-17 18:03:51 +02:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-12-22 22:09:21 +01:00
										 |  |  |  * g_param_spec_variant: (skip) | 
					
						
							| 
									
										
										
										
											2010-06-17 18:03:51 +02:00
										 |  |  |  * @name: canonical name of the property specified | 
					
						
							|  |  |  |  * @nick: nick name for the property specified | 
					
						
							|  |  |  |  * @blurb: description of the property specified | 
					
						
							|  |  |  |  * @type: a #GVariantType | 
					
						
							|  |  |  |  * @default_value: (allow-none): a #GVariant of type @type to use as the | 
					
						
							|  |  |  |  *                 default value, or %NULL | 
					
						
							|  |  |  |  * @flags: flags for the property specified | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Creates a new #GParamSpecVariant instance specifying a #GVariant | 
					
						
							|  |  |  |  * property. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * If @default_value is floating, it is consumed. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * See g_param_spec_internal() for details on property names. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Returns: the newly created #GParamSpec | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Since: 2.26 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | GParamSpec* | 
					
						
							|  |  |  | g_param_spec_variant (const gchar        *name, | 
					
						
							|  |  |  |                       const gchar        *nick, | 
					
						
							|  |  |  |                       const gchar        *blurb, | 
					
						
							|  |  |  |                       const GVariantType *type, | 
					
						
							|  |  |  |                       GVariant           *default_value, | 
					
						
							|  |  |  |                       GParamFlags         flags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GParamSpecVariant *vspec; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   g_return_val_if_fail (type != NULL, NULL); | 
					
						
							|  |  |  |   g_return_val_if_fail (default_value == NULL || | 
					
						
							|  |  |  |                         g_variant_is_of_type (default_value, type), NULL); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   vspec = g_param_spec_internal (G_TYPE_PARAM_VARIANT, | 
					
						
							|  |  |  |                                  name, | 
					
						
							|  |  |  |                                  nick, | 
					
						
							|  |  |  |                                  blurb, | 
					
						
							|  |  |  |                                  flags); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   vspec->type = g_variant_type_copy (type); | 
					
						
							|  |  |  |   if (default_value) | 
					
						
							|  |  |  |     vspec->default_value = g_variant_ref_sink (default_value); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return G_PARAM_SPEC (vspec); | 
					
						
							|  |  |  | } |