| 
									
										
											  
											
												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) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. | 
					
						
							| 
									
										
											  
											
												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 | 
					
						
							| 
									
										
										
										
											2017-01-05 14:09:06 +01:00
										 |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							| 
									
										
											  
											
												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 distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							| 
									
										
											  
											
												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
										 |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							| 
									
										
											  
											
												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
										 |  |  |  * Lesser General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Lesser General | 
					
						
							| 
									
										
										
										
											2014-01-23 12:58:29 +01:00
										 |  |  |  * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							| 
									
										
											  
											
												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
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2012-12-27 23:43:14 -05:00
										 |  |  | #ifndef __G_OBJECT_H__
 | 
					
						
							|  |  |  | #define __G_OBJECT_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-18 00:38:48 +00:00
										 |  |  | #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
 | 
					
						
							|  |  |  | #error "Only <glib-object.h> can be included directly."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #include        <gobject/gtype.h>
 | 
					
						
							|  |  |  | #include        <gobject/gvalue.h>
 | 
					
						
							|  |  |  | #include        <gobject/gparam.h>
 | 
					
						
							|  |  |  | #include        <gobject/gclosure.h>
 | 
					
						
							| 
									
										
										
										
											2001-06-28 17:05:12 +00:00
										 |  |  | #include        <gobject/gsignal.h>
 | 
					
						
							| 
									
										
										
										
											2012-08-28 06:45:30 -04:00
										 |  |  | #include        <gobject/gboxed.h>
 | 
					
						
							| 
									
										
											  
											
												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-09 21:39:51 +00:00
										 |  |  | G_BEGIN_DECLS | 
					
						
							| 
									
										
											  
											
												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 macros --- */ | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_TYPE_IS_OBJECT: | 
					
						
							|  |  |  |  * @type: Type id to check | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Check if the passed in type id is a %G_TYPE_OBJECT or derived from it. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Returns: %FALSE or %TRUE, indicating whether @type is a %G_TYPE_OBJECT. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_TYPE_IS_OBJECT(type)      (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT: | 
					
						
							|  |  |  |  * @object: Object which is subject to casting. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Casts a #GObject or derived pointer into a (GObject*) pointer. | 
					
						
							|  |  |  |  * Depending on the current debugging level, this function may invoke | 
					
						
							|  |  |  |  * certain runtime checks to identify invalid casts. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_CLASS: | 
					
						
							|  |  |  |  * @class: a valid #GObjectClass | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Casts a derived #GObjectClass structure into a #GObjectClass structure. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_IS_OBJECT: | 
					
						
							|  |  |  |  * @object: Instance to check for being a %G_TYPE_OBJECT. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_OBJECT. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2014-06-06 10:45:51 -04:00
										 |  |  | #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42
 | 
					
						
							| 
									
										
										
										
											2014-05-28 10:59:14 +02:00
										 |  |  | #define G_IS_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT))
 | 
					
						
							| 
									
										
										
										
											2014-06-06 10:45:51 -04:00
										 |  |  | #else
 | 
					
						
							|  |  |  | #define G_IS_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_IS_OBJECT_CLASS: | 
					
						
							|  |  |  |  * @class: a #GObjectClass | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Checks whether @class "is a" valid #GObjectClass structure of type | 
					
						
							|  |  |  |  * %G_TYPE_OBJECT or derived. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_IS_OBJECT_CLASS(class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_GET_CLASS: | 
					
						
							|  |  |  |  * @object: a #GObject instance. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Get the class structure associated to a #GObject instance. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Returns: pointer to object class structure. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_TYPE: | 
					
						
							|  |  |  |  * @object: Object to return the type id for. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Get the type id of an object. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Returns: Type id of @object. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_TYPE_NAME: | 
					
						
							|  |  |  |  * @object: Object to return the type name for. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Get the name of an object's type. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Returns: Type name of @object. The string is owned by the type system and  | 
					
						
							|  |  |  |  *  should not be freed. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_CLASS_TYPE: | 
					
						
							|  |  |  |  * @class: a valid #GObjectClass | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Get the type id of a class structure. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Returns: Type id of @class. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT_CLASS_TYPE(class)  (G_TYPE_FROM_CLASS (class))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_CLASS_NAME: | 
					
						
							|  |  |  |  * @class: a valid #GObjectClass | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Return the name of a class structure's type. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Returns: Type name of @class. The string is owned by the type system and  | 
					
						
							|  |  |  |  *  should not be freed. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_OBJECT_CLASS_NAME(class)  (g_type_name (G_OBJECT_CLASS_TYPE (class)))
 | 
					
						
							| 
									
										
										
										
											2008-06-21 22:16:14 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_VALUE_HOLDS_OBJECT: | 
					
						
							|  |  |  |  * @value: a valid #GValue structure | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Checks whether the given #GValue can hold values derived from type %G_TYPE_OBJECT. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Returns: %TRUE on success. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))
 | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | /* --- type macros --- */ | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_TYPE_INITIALLY_UNOWNED: | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * The type for #GInitiallyUnowned. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | #define G_TYPE_INITIALLY_UNOWNED	      (g_initially_unowned_get_type())
 | 
					
						
							| 
									
										
										
										
											2008-06-22 10:10:59 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_INITIALLY_UNOWNED: | 
					
						
							|  |  |  |  * @object: Object which is subject to casting. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Casts a #GInitiallyUnowned or derived pointer into a (GInitiallyUnowned*)  | 
					
						
							|  |  |  |  * pointer. Depending on the current debugging level, this function may invoke | 
					
						
							|  |  |  |  * certain runtime checks to identify invalid casts. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | #define G_INITIALLY_UNOWNED(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnowned))
 | 
					
						
							| 
									
										
										
										
											2008-06-22 10:10:59 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_INITIALLY_UNOWNED_CLASS: | 
					
						
							|  |  |  |  * @class: a valid #GInitiallyUnownedClass | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Casts a derived #GInitiallyUnownedClass structure into a | 
					
						
							|  |  |  |  * #GInitiallyUnownedClass structure. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | #define G_INITIALLY_UNOWNED_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
 | 
					
						
							| 
									
										
										
										
											2008-06-22 10:10:59 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_IS_INITIALLY_UNOWNED: | 
					
						
							|  |  |  |  * @object: Instance to check for being a %G_TYPE_INITIALLY_UNOWNED. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_INITIALLY_UNOWNED. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | #define G_IS_INITIALLY_UNOWNED(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_INITIALLY_UNOWNED))
 | 
					
						
							| 
									
										
										
										
											2008-06-22 10:10:59 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_IS_INITIALLY_UNOWNED_CLASS: | 
					
						
							|  |  |  |  * @class: a #GInitiallyUnownedClass | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Checks whether @class "is a" valid #GInitiallyUnownedClass structure of type | 
					
						
							|  |  |  |  * %G_TYPE_INITIALLY_UNOWNED or derived. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | #define G_IS_INITIALLY_UNOWNED_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_INITIALLY_UNOWNED))
 | 
					
						
							| 
									
										
										
										
											2008-06-22 10:10:59 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_INITIALLY_UNOWNED_GET_CLASS: | 
					
						
							|  |  |  |  * @object: a #GInitiallyUnowned instance. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * Get the class structure associated to a #GInitiallyUnowned instance. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Returns: pointer to object class structure. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | #define G_INITIALLY_UNOWNED_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
 | 
					
						
							|  |  |  | /* GInitiallyUnowned ia a GObject with initially floating reference count */ | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +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
										 |  |  | 
 | 
					
						
							|  |  |  | /* --- typedefs & structures --- */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | typedef struct _GObject                  GObject; | 
					
						
							|  |  |  | typedef struct _GObjectClass             GObjectClass; | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | typedef struct _GObject                  GInitiallyUnowned; | 
					
						
							|  |  |  | typedef struct _GObjectClass             GInitiallyUnownedClass; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | typedef struct _GObjectConstructParam    GObjectConstructParam; | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GObjectGetPropertyFunc: | 
					
						
							|  |  |  |  * @object: a #GObject | 
					
						
							|  |  |  |  * @property_id: the numeric id under which the property was registered with | 
					
						
							|  |  |  |  *  g_object_class_install_property(). | 
					
						
							|  |  |  |  * @value: a #GValue to return the property value in | 
					
						
							|  |  |  |  * @pspec: the #GParamSpec describing the property | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * The type of the @get_property function of #GObjectClass.  | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | typedef void (*GObjectGetPropertyFunc)  (GObject      *object, | 
					
						
							|  |  |  |                                          guint         property_id, | 
					
						
							|  |  |  |                                          GValue       *value, | 
					
						
							| 
									
										
											  
											
												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   *pspec); | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GObjectSetPropertyFunc: | 
					
						
							|  |  |  |  * @object: a #GObject | 
					
						
							|  |  |  |  * @property_id: the numeric id under which the property was registered with | 
					
						
							|  |  |  |  *  g_object_class_install_property(). | 
					
						
							|  |  |  |  * @value: the new value for the property | 
					
						
							|  |  |  |  * @pspec: the #GParamSpec describing the property | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * The type of the @set_property function of #GObjectClass.  | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | typedef void (*GObjectSetPropertyFunc)  (GObject      *object, | 
					
						
							|  |  |  |                                          guint         property_id, | 
					
						
							|  |  |  |                                          const GValue *value, | 
					
						
							| 
									
										
											  
											
												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   *pspec); | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GObjectFinalizeFunc: | 
					
						
							|  |  |  |  * @object: the #GObject being finalized | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * The type of the @finalize function of #GObjectClass. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | typedef void (*GObjectFinalizeFunc)     (GObject      *object); | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GWeakNotify: | 
					
						
							|  |  |  |  * @data: data that was provided when the weak reference was established | 
					
						
							|  |  |  |  * @where_the_object_was: the object being finalized | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * A #GWeakNotify function can be added to an object as a callback that gets | 
					
						
							|  |  |  |  * triggered when the object is finalized. Since the object is already being | 
					
						
							|  |  |  |  * finalized when the #GWeakNotify is called, there's not much you could do  | 
					
						
							| 
									
										
										
										
											2011-08-29 14:49:32 -04:00
										 |  |  |  * with the object, apart from e.g. using its address as hash-index or the like.  | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2001-08-18 03:07:48 +00:00
										 |  |  | typedef void (*GWeakNotify)		(gpointer      data, | 
					
						
							|  |  |  | 					 GObject      *where_the_object_was); | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GObject: | 
					
						
							|  |  |  |  *  | 
					
						
							| 
									
										
										
										
											2014-03-07 06:10:36 -05:00
										 |  |  |  * All the fields in the GObject structure are private  | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  * to the #GObject implementation and should never be accessed directly. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | struct  _GObject | 
					
						
							| 
									
										
											  
											
												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-01 21:17:50 +00:00
										 |  |  |   GTypeInstance  g_type_instance; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  |    | 
					
						
							|  |  |  |   /*< private >*/ | 
					
						
							| 
									
										
										
										
											2005-08-01 21:17:50 +00:00
										 |  |  |   volatile guint ref_count; | 
					
						
							|  |  |  |   GData         *qdata; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GObjectClass: | 
					
						
							|  |  |  |  * @g_type_class: the parent class | 
					
						
							|  |  |  |  * @constructor: the @constructor function is called by g_object_new () to  | 
					
						
							|  |  |  |  *  complete the object initialization after all the construction properties are | 
					
						
							|  |  |  |  *  set. The first thing a @constructor implementation must do is chain up to the | 
					
						
							|  |  |  |  *  @constructor of the parent class. Overriding @constructor should be rarely  | 
					
						
							|  |  |  |  *  needed, e.g. to handle construct properties, or to implement singletons. | 
					
						
							|  |  |  |  * @set_property: the generic setter for all properties of this type. Should be | 
					
						
							| 
									
										
										
										
											2013-03-14 23:24:18 +01:00
										 |  |  |  *  overridden for every type with properties. If implementations of | 
					
						
							|  |  |  |  *  @set_property don't emit property change notification explicitly, this will | 
					
						
							|  |  |  |  *  be done implicitly by the type system. However, if the notify signal is | 
					
						
							|  |  |  |  *  emitted explicitly, the type system will not emit it a second time. | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  * @get_property: the generic getter for all properties of this type. Should be | 
					
						
							|  |  |  |  *  overridden for every type with properties. | 
					
						
							|  |  |  |  * @dispose: the @dispose function is supposed to drop all references to other  | 
					
						
							|  |  |  |  *  objects, but keep the instance otherwise intact, so that client method  | 
					
						
							|  |  |  |  *  invocations still work. It may be run multiple times (due to reference  | 
					
						
							|  |  |  |  *  loops). Before returning, @dispose should chain up to the @dispose method  | 
					
						
							|  |  |  |  *  of the parent class. | 
					
						
							|  |  |  |  * @finalize: instance finalization function, should finish the finalization of  | 
					
						
							|  |  |  |  *  the instance begun in @dispose and chain up to the @finalize method of the  | 
					
						
							|  |  |  |  *  parent class. | 
					
						
							|  |  |  |  * @dispatch_properties_changed: emits property change notification for a bunch | 
					
						
							|  |  |  |  *  of properties. Overriding @dispatch_properties_changed should be rarely  | 
					
						
							|  |  |  |  *  needed. | 
					
						
							|  |  |  |  * @notify: the class closure for the notify signal | 
					
						
							|  |  |  |  * @constructed: the @constructed function is called by g_object_new() as the | 
					
						
							|  |  |  |  *  final step of the object creation process.  At the point of the call, all | 
					
						
							|  |  |  |  *  construction properties have been set on the object.  The purpose of this | 
					
						
							|  |  |  |  *  call is to allow for object initialisation steps that can only be performed | 
					
						
							|  |  |  |  *  after construction properties have been set.  @constructed implementors | 
					
						
							|  |  |  |  *  should chain up to the @constructed call of their parent class to allow it | 
					
						
							|  |  |  |  *  to complete its initialisation. | 
					
						
							|  |  |  |  *  | 
					
						
							| 
									
										
										
										
											2014-03-07 06:10:36 -05:00
										 |  |  |  * The class structure for the GObject type. | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  *  | 
					
						
							| 
									
										
										
										
											2018-01-05 16:44:18 +00:00
										 |  |  |  * |[<!-- language="C" --> | 
					
						
							|  |  |  |  * // Example of implementing a singleton using a constructor.
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  * static MySingleton *the_singleton = NULL; | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * static GObject* | 
					
						
							|  |  |  |  * my_singleton_constructor (GType                  type, | 
					
						
							|  |  |  |  *                           guint                  n_construct_params, | 
					
						
							|  |  |  |  *                           GObjectConstructParam *construct_params) | 
					
						
							|  |  |  |  * { | 
					
						
							|  |  |  |  *   GObject *object; | 
					
						
							|  |  |  |  *    | 
					
						
							|  |  |  |  *   if (!the_singleton) | 
					
						
							|  |  |  |  *     { | 
					
						
							|  |  |  |  *       object = G_OBJECT_CLASS (parent_class)->constructor (type, | 
					
						
							|  |  |  |  *                                                            n_construct_params, | 
					
						
							|  |  |  |  *                                                            construct_params); | 
					
						
							|  |  |  |  *       the_singleton = MY_SINGLETON (object); | 
					
						
							|  |  |  |  *     } | 
					
						
							|  |  |  |  *   else | 
					
						
							|  |  |  |  *     object = g_object_ref (G_OBJECT (the_singleton)); | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  *   return object; | 
					
						
							|  |  |  |  * } | 
					
						
							| 
									
										
										
										
											2018-01-05 16:44:18 +00:00
										 |  |  |  * ]| | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | struct  _GObjectClass | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | { | 
					
						
							|  |  |  |   GTypeClass   g_type_class; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  |   /*< private >*/ | 
					
						
							| 
									
										
										
										
											2000-12-13 00:44:18 +00:00
										 |  |  |   GSList      *construct_properties; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-10-20 20:07:45 +00:00
										 |  |  |   /*< public >*/ | 
					
						
							| 
									
										
										
										
											2011-08-29 14:49:32 -04:00
										 |  |  |   /* seldom overidden */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  |   GObject*   (*constructor)     (GType                  type, | 
					
						
							|  |  |  |                                  guint                  n_construct_properties, | 
					
						
							| 
									
										
										
										
											2000-12-13 00:44:18 +00:00
										 |  |  |                                  GObjectConstructParam *construct_properties); | 
					
						
							| 
									
										
										
										
											2007-04-03 10:44:30 +00:00
										 |  |  |   /* overridable methods */ | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  |   void       (*set_property)		(GObject        *object, | 
					
						
							| 
									
										
											  
											
												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           property_id, | 
					
						
							| 
									
										
										
										
											2000-12-13 08:36:17 +00:00
										 |  |  |                                          const GValue   *value, | 
					
						
							| 
									
										
											  
											
												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     *pspec); | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  |   void       (*get_property)		(GObject        *object, | 
					
						
							| 
									
										
											  
											
												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           property_id, | 
					
						
							| 
									
										
										
										
											2000-12-13 08:36:17 +00:00
										 |  |  |                                          GValue         *value, | 
					
						
							| 
									
										
											  
											
												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     *pspec); | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  |   void       (*dispose)			(GObject        *object); | 
					
						
							|  |  |  |   void       (*finalize)		(GObject        *object); | 
					
						
							| 
									
										
										
										
											2011-08-29 14:49:32 -04:00
										 |  |  |   /* seldom overidden */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  |   void       (*dispatch_properties_changed) (GObject      *object, | 
					
						
							|  |  |  | 					     guint	   n_pspecs, | 
					
						
							|  |  |  | 					     GParamSpec  **pspecs); | 
					
						
							|  |  |  |   /* signals */ | 
					
						
							|  |  |  |   void	     (*notify)			(GObject	*object, | 
					
						
							| 
									
										
											  
											
												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	*pspec); | 
					
						
							| 
									
										
										
										
											2007-04-03 10:44:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   /* called when done constructing */ | 
					
						
							|  |  |  |   void	     (*constructed)		(GObject	*object); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-10-20 20:07:45 +00:00
										 |  |  |   /*< private >*/ | 
					
						
							| 
									
										
										
										
											2009-08-19 17:17:41 +02:00
										 |  |  |   gsize		flags; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-02-19 17:38:45 +00:00
										 |  |  |   /* padding */ | 
					
						
							| 
									
										
										
										
											2009-08-19 17:17:41 +02:00
										 |  |  |   gpointer	pdummy[6]; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GObjectConstructParam: | 
					
						
							|  |  |  |  * @pspec: the #GParamSpec of the construct parameter | 
					
						
							|  |  |  |  * @value: the value to set the parameter to | 
					
						
							|  |  |  |  *  | 
					
						
							| 
									
										
										
										
											2014-03-07 06:10:36 -05:00
										 |  |  |  * The GObjectConstructParam struct is an auxiliary  | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  * structure used to hand #GParamSpec/#GValue pairs to the @constructor of | 
					
						
							|  |  |  |  * a #GObjectClass. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | struct _GObjectConstructParam | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  |   GParamSpec *pspec; | 
					
						
							|  |  |  |   GValue     *value; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | }; | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GInitiallyUnowned: | 
					
						
							|  |  |  |  *  | 
					
						
							| 
									
										
										
										
											2014-03-07 06:10:36 -05:00
										 |  |  |  * All the fields in the GInitiallyUnowned structure  | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  |  * are private to the #GInitiallyUnowned implementation and should never be  | 
					
						
							|  |  |  |  * accessed directly. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * GInitiallyUnownedClass: | 
					
						
							|  |  |  |  *  | 
					
						
							| 
									
										
										
										
											2014-03-07 06:10:36 -05:00
										 |  |  |  * The class structure for the GInitiallyUnowned type. | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +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
										 |  |  | 
 | 
					
						
							|  |  |  | /* --- prototypes --- */ | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2005-12-22 17:58:21 +00:00
										 |  |  | GType       g_initially_unowned_get_type      (void); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_class_install_property   (GObjectClass   *oclass, | 
					
						
							|  |  |  | 					       guint           property_id, | 
					
						
							|  |  |  | 					       GParamSpec     *pspec); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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_object_class_find_property      (GObjectClass   *oclass, | 
					
						
							|  |  |  | 					       const gchar    *property_name); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  | GParamSpec**g_object_class_list_properties    (GObjectClass   *oclass, | 
					
						
							|  |  |  | 					       guint	      *n_properties); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | void        g_object_class_override_property  (GObjectClass   *oclass, | 
					
						
							|  |  |  | 					       guint           property_id, | 
					
						
							|  |  |  | 					       const gchar    *name); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2010-08-18 15:32:27 +01:00
										 |  |  | void        g_object_class_install_properties (GObjectClass   *oclass, | 
					
						
							|  |  |  |                                                guint           n_pspecs, | 
					
						
							|  |  |  |                                                GParamSpec    **pspecs); | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | void        g_object_interface_install_property (gpointer     g_iface, | 
					
						
							|  |  |  | 						 GParamSpec  *pspec); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | GParamSpec* g_object_interface_find_property    (gpointer     g_iface, | 
					
						
							|  |  |  | 						 const gchar *property_name); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2003-10-21 19:12:27 +00:00
										 |  |  | GParamSpec**g_object_interface_list_properties  (gpointer     g_iface, | 
					
						
							|  |  |  | 						 guint       *n_properties_p); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2008-08-21 09:42:44 +00:00
										 |  |  | GType       g_object_get_type                 (void) G_GNUC_CONST; | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_object_new                      (GType           object_type, | 
					
						
							|  |  |  | 					       const gchar    *first_property_name, | 
					
						
							| 
									
										
										
										
											2005-07-11 17:58:29 +00:00
										 |  |  | 					       ...); | 
					
						
							| 
									
										
										
										
											2017-03-31 11:09:53 +01:00
										 |  |  | GLIB_AVAILABLE_IN_2_54 | 
					
						
							| 
									
										
										
										
											2017-01-26 19:29:44 -05:00
										 |  |  | GObject*    g_object_new_with_properties      (GType           object_type, | 
					
						
							|  |  |  |                                                guint           n_properties, | 
					
						
							|  |  |  |                                                const char     *names[], | 
					
						
							|  |  |  |                                                const GValue    values[]); | 
					
						
							| 
									
										
										
										
											2017-03-31 11:09:53 +01:00
										 |  |  | GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties) | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  | gpointer    g_object_newv		      (GType           object_type, | 
					
						
							|  |  |  | 					       guint	       n_parameters, | 
					
						
							|  |  |  | 					       GParameter     *parameters); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-09-10 18:32:52 +00:00
										 |  |  | GObject*    g_object_new_valist               (GType           object_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
										 |  |  | 					       const gchar    *first_property_name, | 
					
						
							|  |  |  | 					       va_list         var_args); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-09-10 18:32:52 +00:00
										 |  |  | void	    g_object_set                      (gpointer	       object, | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | 					       const gchar    *first_property_name, | 
					
						
							| 
									
										
										
										
											2005-03-08 05:41:45 +00:00
										 |  |  | 					       ...) G_GNUC_NULL_TERMINATED; | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2000-12-13 00:44:18 +00:00
										 |  |  | void        g_object_get                      (gpointer        object, | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | 					       const gchar    *first_property_name, | 
					
						
							| 
									
										
										
										
											2005-03-08 05:41:45 +00:00
										 |  |  | 					       ...) G_GNUC_NULL_TERMINATED; | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_object_connect                  (gpointer	       object, | 
					
						
							|  |  |  | 					       const gchar    *signal_spec, | 
					
						
							| 
									
										
										
										
											2005-03-08 05:41:45 +00:00
										 |  |  | 					       ...) G_GNUC_NULL_TERMINATED; | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-09-10 18:32:52 +00:00
										 |  |  | void	    g_object_disconnect               (gpointer	       object, | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | 					       const gchar    *signal_spec, | 
					
						
							| 
									
										
										
										
											2005-03-08 05:41:45 +00:00
										 |  |  | 					       ...) G_GNUC_NULL_TERMINATED; | 
					
						
							| 
									
										
										
										
											2017-03-31 11:09:53 +01:00
										 |  |  | GLIB_AVAILABLE_IN_2_54 | 
					
						
							| 
									
										
										
										
											2017-01-26 19:39:33 -05:00
										 |  |  | void        g_object_setv                     (GObject        *object, | 
					
						
							|  |  |  |                                                guint           n_properties, | 
					
						
							|  |  |  |                                                const gchar    *names[], | 
					
						
							|  |  |  |                                                const GValue    values[]); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_set_valist               (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *first_property_name, | 
					
						
							|  |  |  | 					       va_list         var_args); | 
					
						
							| 
									
										
										
										
											2017-03-31 11:09:53 +01:00
										 |  |  | GLIB_AVAILABLE_IN_2_54 | 
					
						
							| 
									
										
										
										
											2017-01-26 19:39:33 -05:00
										 |  |  | void        g_object_getv                     (GObject        *object, | 
					
						
							|  |  |  |                                                guint           n_properties, | 
					
						
							|  |  |  |                                                const gchar    *names[], | 
					
						
							|  |  |  |                                                GValue          values[]); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_get_valist               (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *first_property_name, | 
					
						
							|  |  |  | 					       va_list         var_args); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_set_property             (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *property_name, | 
					
						
							|  |  |  | 					       const GValue   *value); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_get_property             (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *property_name, | 
					
						
							|  |  |  | 					       GValue         *value); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_freeze_notify            (GObject        *object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_notify                   (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *property_name); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2010-04-10 15:50:40 +01:00
										 |  |  | void        g_object_notify_by_pspec          (GObject        *object, | 
					
						
							|  |  |  | 					       GParamSpec     *pspec); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_thaw_notify              (GObject        *object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2005-11-23 17:54:41 +00:00
										 |  |  | gboolean    g_object_is_floating    	      (gpointer        object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2005-11-23 17:54:41 +00:00
										 |  |  | gpointer    g_object_ref_sink       	      (gpointer	       object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2000-12-13 00:44:18 +00:00
										 |  |  | gpointer    g_object_ref                      (gpointer        object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2000-12-13 00:44:18 +00:00
										 |  |  | void        g_object_unref                    (gpointer        object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  | void	    g_object_weak_ref		      (GObject	      *object, | 
					
						
							|  |  |  | 					       GWeakNotify     notify, | 
					
						
							|  |  |  | 					       gpointer	       data); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  | void	    g_object_weak_unref		      (GObject	      *object, | 
					
						
							|  |  |  | 					       GWeakNotify     notify, | 
					
						
							|  |  |  | 					       gpointer	       data); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-08-06 20:55:11 +00:00
										 |  |  | void        g_object_add_weak_pointer         (GObject        *object,  | 
					
						
							|  |  |  |                                                gpointer       *weak_pointer_location); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-08-06 20:55:11 +00:00
										 |  |  | void        g_object_remove_weak_pointer      (GObject        *object,  | 
					
						
							|  |  |  |                                                gpointer       *weak_pointer_location); | 
					
						
							| 
									
										
										
										
											2005-05-05 14:57:29 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-11 15:09:29 +01:00
										 |  |  | #if defined(g_has_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56
 | 
					
						
							| 
									
										
										
										
											2017-11-22 15:10:38 -08:00
										 |  |  | /* Make reference APIs type safe with macros */ | 
					
						
							| 
									
										
										
										
											2017-12-08 12:56:55 +00:00
										 |  |  | #define g_object_ref(Obj)      ((__typeof__(Obj)) (g_object_ref) (Obj))
 | 
					
						
							|  |  |  | #define g_object_ref_sink(Obj) ((__typeof__(Obj)) (g_object_ref_sink) (Obj))
 | 
					
						
							| 
									
										
										
										
											2017-11-22 15:10:38 -08:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GToggleNotify: | 
					
						
							|  |  |  |  * @data: Callback data passed to g_object_add_toggle_ref() | 
					
						
							|  |  |  |  * @object: The object on which g_object_add_toggle_ref() was called. | 
					
						
							|  |  |  |  * @is_last_ref: %TRUE if the toggle reference is now the | 
					
						
							|  |  |  |  *  last reference to the object. %FALSE if the toggle | 
					
						
							|  |  |  |  *  reference was the last reference and there are now other | 
					
						
							|  |  |  |  *  references. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * A callback function used for notification when the state | 
					
						
							|  |  |  |  * of a toggle reference changes. See g_object_add_toggle_ref(). | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-05-05 14:57:29 +00:00
										 |  |  | typedef void (*GToggleNotify) (gpointer      data, | 
					
						
							|  |  |  | 			       GObject      *object, | 
					
						
							|  |  |  | 			       gboolean      is_last_ref); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2005-05-05 14:57:29 +00:00
										 |  |  | void g_object_add_toggle_ref    (GObject       *object, | 
					
						
							|  |  |  | 				 GToggleNotify  notify, | 
					
						
							|  |  |  | 				 gpointer       data); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2005-05-05 14:57:29 +00:00
										 |  |  | void g_object_remove_toggle_ref (GObject       *object, | 
					
						
							|  |  |  | 				 GToggleNotify  notify, | 
					
						
							|  |  |  | 				 gpointer       data); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_object_get_qdata                (GObject        *object, | 
					
						
							|  |  |  | 					       GQuark          quark); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_set_qdata                (GObject        *object, | 
					
						
							|  |  |  | 					       GQuark          quark, | 
					
						
							|  |  |  | 					       gpointer        data); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_set_qdata_full           (GObject        *object, | 
					
						
							|  |  |  | 					       GQuark          quark, | 
					
						
							|  |  |  | 					       gpointer        data, | 
					
						
							|  |  |  | 					       GDestroyNotify  destroy); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_object_steal_qdata              (GObject        *object, | 
					
						
							|  |  |  | 					       GQuark          quark); | 
					
						
							| 
									
										
										
										
											2012-08-28 06:45:30 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | GLIB_AVAILABLE_IN_2_34 | 
					
						
							|  |  |  | gpointer    g_object_dup_qdata                (GObject        *object, | 
					
						
							|  |  |  |                                                GQuark          quark, | 
					
						
							|  |  |  |                                                GDuplicateFunc  dup_func, | 
					
						
							|  |  |  | 					       gpointer         user_data); | 
					
						
							|  |  |  | GLIB_AVAILABLE_IN_2_34 | 
					
						
							|  |  |  | gboolean    g_object_replace_qdata            (GObject        *object, | 
					
						
							|  |  |  |                                                GQuark          quark, | 
					
						
							|  |  |  |                                                gpointer        oldval, | 
					
						
							|  |  |  |                                                gpointer        newval, | 
					
						
							|  |  |  |                                                GDestroyNotify  destroy, | 
					
						
							|  |  |  | 					       GDestroyNotify *old_destroy); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_object_get_data                 (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *key); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_set_data                 (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *key, | 
					
						
							|  |  |  | 					       gpointer        data); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_set_data_full            (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *key, | 
					
						
							|  |  |  | 					       gpointer        data, | 
					
						
							|  |  |  | 					       GDestroyNotify  destroy); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_object_steal_data               (GObject        *object, | 
					
						
							|  |  |  | 					       const gchar    *key); | 
					
						
							| 
									
										
										
										
											2012-08-28 06:45:30 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | GLIB_AVAILABLE_IN_2_34 | 
					
						
							|  |  |  | gpointer    g_object_dup_data                 (GObject        *object, | 
					
						
							|  |  |  |                                                const gchar    *key, | 
					
						
							|  |  |  |                                                GDuplicateFunc  dup_func, | 
					
						
							|  |  |  | 					       gpointer         user_data); | 
					
						
							|  |  |  | GLIB_AVAILABLE_IN_2_34 | 
					
						
							|  |  |  | gboolean    g_object_replace_data             (GObject        *object, | 
					
						
							|  |  |  |                                                const gchar    *key, | 
					
						
							|  |  |  |                                                gpointer        oldval, | 
					
						
							|  |  |  |                                                gpointer        newval, | 
					
						
							|  |  |  |                                                GDestroyNotify  destroy, | 
					
						
							|  |  |  | 					       GDestroyNotify *old_destroy); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_object_watch_closure            (GObject        *object, | 
					
						
							|  |  |  | 					       GClosure       *closure); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | GClosure*   g_cclosure_new_object             (GCallback       callback_func, | 
					
						
							| 
									
										
										
										
											2001-09-10 18:32:52 +00:00
										 |  |  | 					       GObject	      *object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | GClosure*   g_cclosure_new_object_swap        (GCallback       callback_func, | 
					
						
							| 
									
										
										
										
											2001-09-10 18:32:52 +00:00
										 |  |  | 					       GObject	      *object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | GClosure*   g_closure_new_object              (guint           sizeof_closure, | 
					
						
							|  |  |  | 					       GObject        *object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | void        g_value_set_object                (GValue         *value, | 
					
						
							| 
									
										
										
										
											2001-05-24 12:52:39 +00:00
										 |  |  | 					       gpointer        v_object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | gpointer    g_value_get_object                (const GValue   *value); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2006-08-23 08:46:21 +00:00
										 |  |  | gpointer    g_value_dup_object                (const GValue   *value); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2002-01-24 06:39:31 +00:00
										 |  |  | gulong	    g_signal_connect_object           (gpointer	       instance, | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | 					       const gchar    *detailed_signal, | 
					
						
							|  |  |  | 					       GCallback       c_handler, | 
					
						
							|  |  |  | 					       gpointer	       gobject, | 
					
						
							| 
									
										
										
										
											2001-06-28 17:05:12 +00:00
										 |  |  | 					       GConnectFlags   connect_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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  | /*< protected >*/ | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2005-11-23 17:54:41 +00:00
										 |  |  | void        g_object_force_floating           (GObject        *object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2001-07-02 05:02:13 +00:00
										 |  |  | void        g_object_run_dispose	      (GObject	      *object); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2003-09-12 20:11:38 +00:00
										 |  |  | void        g_value_take_object               (GValue         *value, | 
					
						
							|  |  |  | 					       gpointer        v_object); | 
					
						
							| 
									
										
										
										
											2011-10-11 14:34:59 +08:00
										 |  |  | GLIB_DEPRECATED_FOR(g_value_take_object) | 
					
						
							| 
									
										
										
										
											2002-02-19 17:38:45 +00:00
										 |  |  | void        g_value_set_object_take_ownership (GValue         *value, | 
					
						
							| 
									
										
										
										
											2011-10-11 14:34:59 +08:00
										 |  |  |                                                gpointer        v_object); | 
					
						
							| 
									
										
										
										
											2006-01-18 16:03:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-03 00:09:32 -04:00
										 |  |  | GLIB_DEPRECATED | 
					
						
							| 
									
										
										
										
											2005-12-22 15:07:03 +00:00
										 |  |  | gsize	    g_object_compat_control	      (gsize	       what, | 
					
						
							|  |  |  | 					       gpointer	       data); | 
					
						
							| 
									
										
										
										
											2002-02-19 17:38: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
										 |  |  | /* --- implementation macros --- */ | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  | #define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, 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
										 |  |  | G_STMT_START { \ | 
					
						
							| 
									
										
										
										
											2012-11-30 15:22:54 -05:00
										 |  |  |   GObject *_glib__object = (GObject*) (object); \ | 
					
						
							|  |  |  |   GParamSpec *_glib__pspec = (GParamSpec*) (pspec); \ | 
					
						
							|  |  |  |   guint _glib__property_id = (property_id); \ | 
					
						
							| 
									
										
										
										
											2015-02-09 11:23:58 +00:00
										 |  |  |   g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'", \ | 
					
						
							| 
									
										
										
										
											2014-12-17 10:00:35 +01:00
										 |  |  |              __FILE__, __LINE__, \ | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  |              (pname), \ | 
					
						
							| 
									
										
										
										
											2012-11-30 15:22:54 -05:00
										 |  |  |              _glib__property_id, \ | 
					
						
							|  |  |  |              _glib__pspec->name, \ | 
					
						
							|  |  |  |              g_type_name (G_PARAM_SPEC_TYPE (_glib__pspec)), \ | 
					
						
							|  |  |  |              G_OBJECT_TYPE_NAME (_glib__object)); \ | 
					
						
							| 
									
										
											  
											
												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_STMT_END | 
					
						
							| 
									
										
										
										
											2008-06-21 20:07:57 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * G_OBJECT_WARN_INVALID_PROPERTY_ID: | 
					
						
							|  |  |  |  * @object: the #GObject on which set_property() or get_property() was called | 
					
						
							|  |  |  |  * @property_id: the numeric id of the property | 
					
						
							|  |  |  |  * @pspec: the #GParamSpec of the property | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * This macro should be used to emit a standard warning about unexpected  | 
					
						
							|  |  |  |  * properties in set_property() and get_property() implementations. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2001-06-19 12:13:22 +00:00
										 |  |  | #define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \
 | 
					
						
							| 
									
										
										
										
											2002-01-09 04:23:12 +00:00
										 |  |  |     G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2018-07-11 10:18:08 +01:00
										 |  |  | void    g_clear_object (GObject **object_ptr); | 
					
						
							| 
									
										
										
										
											2012-04-23 17:57:56 +02:00
										 |  |  | #define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
 | 
					
						
							| 
									
										
										
										
											2010-11-08 16:42:32 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-16 11:29:03 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * g_set_object: (skip) | 
					
						
							|  |  |  |  * @object_ptr: a pointer to a #GObject reference | 
					
						
							|  |  |  |  * @new_object: (nullable) (transfer none): a pointer to the new #GObject to | 
					
						
							|  |  |  |  *   assign to it, or %NULL to clear the pointer | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Updates a #GObject pointer to refer to @new_object. It increments the | 
					
						
							|  |  |  |  * reference count of @new_object (if non-%NULL), decrements the reference | 
					
						
							|  |  |  |  * count of the current value of @object_ptr (if non-%NULL), and assigns | 
					
						
							|  |  |  |  * @new_object to @object_ptr. The assignment is not atomic. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @object_ptr must not be %NULL. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * A macro is also included that allows this function to be used without | 
					
						
							|  |  |  |  * pointer casts. The function itself is static inline, so its address may vary | 
					
						
							|  |  |  |  * between compilation units. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * One convenient usage of this function is in implementing property setters: | 
					
						
							|  |  |  |  * |[ | 
					
						
							|  |  |  |  *   void | 
					
						
							|  |  |  |  *   foo_set_bar (Foo *foo, | 
					
						
							|  |  |  |  *                Bar *new_bar) | 
					
						
							|  |  |  |  *   { | 
					
						
							|  |  |  |  *     g_return_if_fail (IS_FOO (foo)); | 
					
						
							|  |  |  |  *     g_return_if_fail (new_bar == NULL || IS_BAR (new_bar)); | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     if (g_set_object (&foo->bar, new_bar)) | 
					
						
							|  |  |  |  *       g_object_notify (foo, "bar"); | 
					
						
							|  |  |  |  *   } | 
					
						
							|  |  |  |  * ]| | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Returns: %TRUE if the value of @object_ptr changed, %FALSE otherwise | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Since: 2.44 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | static inline gboolean | 
					
						
							|  |  |  | (g_set_object) (GObject **object_ptr, | 
					
						
							|  |  |  |                 GObject  *new_object) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2015-09-07 19:43:19 -04:00
										 |  |  |   GObject *old_object = *object_ptr; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-16 11:29:03 +00:00
										 |  |  |   /* rely on g_object_[un]ref() to check the pointers are actually GObjects;
 | 
					
						
							|  |  |  |    * elide a (object_ptr != NULL) check because most of the time we will be | 
					
						
							|  |  |  |    * operating on struct members with a constant offset, so a NULL check would | 
					
						
							| 
									
										
										
										
											2015-09-07 19:43:19 -04:00
										 |  |  |    * not catch bugs | 
					
						
							|  |  |  |    */ | 
					
						
							| 
									
										
										
										
											2014-12-16 11:29:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-07 19:43:19 -04:00
										 |  |  |   if (old_object == new_object) | 
					
						
							| 
									
										
										
										
											2014-12-16 11:29:03 +00:00
										 |  |  |     return FALSE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (new_object != NULL) | 
					
						
							|  |  |  |     g_object_ref (new_object); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   *object_ptr = new_object; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-07 19:43:19 -04:00
										 |  |  |   if (old_object != NULL) | 
					
						
							|  |  |  |     g_object_unref (old_object); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-16 11:29:03 +00:00
										 |  |  |   return TRUE; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define g_set_object(object_ptr, new_object) \
 | 
					
						
							|  |  |  |  (/* Check types match. */ \ | 
					
						
							|  |  |  |   0 ? *(object_ptr) = (new_object), FALSE : \ | 
					
						
							|  |  |  |   (g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \ | 
					
						
							|  |  |  |  ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-20 23:05:53 +01:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * g_clear_weak_pointer: (skip) | 
					
						
							|  |  |  |  * @weak_pointer_location: The memory address of a pointer | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Clears a weak reference to a #GObject. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @weak_pointer_location must not be %NULL. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * If the weak reference is %NULL then this function does nothing. | 
					
						
							|  |  |  |  * Otherwise, the weak reference to the object is removed for that location | 
					
						
							|  |  |  |  * and the pointer is set to %NULL. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * A macro is also included that allows this function to be used without | 
					
						
							|  |  |  |  * pointer casts. The function itself is static inline, so its address may vary | 
					
						
							|  |  |  |  * between compilation units. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Since: 2.56 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | static inline void | 
					
						
							|  |  |  | (g_clear_weak_pointer) (gpointer *weak_pointer_location) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GObject *object = (GObject *) *weak_pointer_location; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (object != NULL) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       g_object_remove_weak_pointer (object, weak_pointer_location); | 
					
						
							|  |  |  |       *weak_pointer_location = NULL; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define g_clear_weak_pointer(weak_pointer_location) \
 | 
					
						
							|  |  |  |  (/* Check types match. */ \ | 
					
						
							|  |  |  |   (g_clear_weak_pointer) ((gpointer *) (weak_pointer_location)) \ | 
					
						
							|  |  |  |  ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * g_set_weak_pointer: (skip) | 
					
						
							|  |  |  |  * @weak_pointer_location: the memory address of a pointer | 
					
						
							|  |  |  |  * @new_object: (nullable) (transfer none): a pointer to the new #GObject to | 
					
						
							|  |  |  |  *   assign to it, or %NULL to clear the pointer | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Updates a pointer to weakly refer to @new_object. It assigns @new_object | 
					
						
							|  |  |  |  * to @weak_pointer_location and ensures that @weak_pointer_location will | 
					
						
							|  |  |  |  * automaticaly be set to %NULL if @new_object gets destroyed. The assignment | 
					
						
							|  |  |  |  * is not atomic. The weak reference is not thread-safe, see | 
					
						
							|  |  |  |  * g_object_add_weak_pointer() for details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @weak_pointer_location must not be %NULL. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * A macro is also included that allows this function to be used without | 
					
						
							|  |  |  |  * pointer casts. The function itself is static inline, so its address may vary | 
					
						
							|  |  |  |  * between compilation units. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * One convenient usage of this function is in implementing property setters: | 
					
						
							|  |  |  |  * |[ | 
					
						
							|  |  |  |  *   void | 
					
						
							|  |  |  |  *   foo_set_bar (Foo *foo, | 
					
						
							|  |  |  |  *                Bar *new_bar) | 
					
						
							|  |  |  |  *   { | 
					
						
							|  |  |  |  *     g_return_if_fail (IS_FOO (foo)); | 
					
						
							|  |  |  |  *     g_return_if_fail (new_bar == NULL || IS_BAR (new_bar)); | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     if (g_set_weak_pointer (&foo->bar, new_bar)) | 
					
						
							|  |  |  |  *       g_object_notify (foo, "bar"); | 
					
						
							|  |  |  |  *   } | 
					
						
							|  |  |  |  * ]| | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Returns: %TRUE if the value of @weak_pointer_location changed, %FALSE otherwise | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Since: 2.56 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | static inline gboolean | 
					
						
							|  |  |  | (g_set_weak_pointer) (gpointer *weak_pointer_location, | 
					
						
							|  |  |  |                       GObject  *new_object) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GObject *old_object = (GObject *) *weak_pointer_location; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* elide a (weak_pointer_location != NULL) check because most of the time we
 | 
					
						
							|  |  |  |    * will be operating on struct members with a constant offset, so a NULL | 
					
						
							|  |  |  |    * check would not catch bugs | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (old_object == new_object) | 
					
						
							|  |  |  |     return FALSE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (old_object != NULL) | 
					
						
							|  |  |  |     g_object_remove_weak_pointer (old_object, weak_pointer_location); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   *weak_pointer_location = new_object; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (new_object != NULL) | 
					
						
							|  |  |  |     g_object_add_weak_pointer (new_object, weak_pointer_location); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return TRUE; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define g_set_weak_pointer(weak_pointer_location, new_object) \
 | 
					
						
							|  |  |  |  (/* Check types match. */ \ | 
					
						
							|  |  |  |   0 ? *(weak_pointer_location) = (new_object), FALSE : \ | 
					
						
							|  |  |  |   (g_set_weak_pointer) ((gpointer *) (weak_pointer_location), (GObject *) (new_object)) \ | 
					
						
							|  |  |  |  ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-06 12:27:07 +00:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  |     /*<private>*/ | 
					
						
							|  |  |  |     union { gpointer p; } priv; | 
					
						
							|  |  |  | } GWeakRef; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2011-12-06 12:27:07 +00:00
										 |  |  | void     g_weak_ref_init       (GWeakRef *weak_ref, | 
					
						
							|  |  |  |                                 gpointer  object); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2011-12-06 12:27:07 +00:00
										 |  |  | void     g_weak_ref_clear      (GWeakRef *weak_ref); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2011-12-06 12:27:07 +00:00
										 |  |  | gpointer g_weak_ref_get        (GWeakRef *weak_ref); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2011-12-06 12:27:07 +00:00
										 |  |  | void     g_weak_ref_set        (GWeakRef *weak_ref, | 
					
						
							|  |  |  |                                 gpointer  object); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-09 21:39:51 +00:00
										 |  |  | G_END_DECLS | 
					
						
							| 
									
										
											  
											
												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
										 |  |  | #endif /* __G_OBJECT_H__ */
 |