summaryrefslogtreecommitdiff
path: root/gobject/gclosure.h
Commit message (Collapse)AuthorAgeFilesLines
* Add one missing ':' and reformate GParamFlags docs.Stefan Kost2008-06-211-1/+1
| | | | | | | | | * gobject/gclosure.h: * gobject/gparam.h: Add one missing ':' and reformate GParamFlags docs. svn path=/trunk/; revision=7074
* Migrating docs.Stefan Kost2008-06-211-0/+85
| | | | | | | | | | | | | | * docs/reference/gobject/tmpl/gclosure.sgml: * gobject/gboxed.h: * gobject/gclosure.c: * gobject/gclosure.h: * gobject/gobject.c: * gobject/gsourceclosure.c: * gobject/gsourceclosure.h: Migrating docs. svn path=/trunk/; revision=7069
* Fix macro argument. (#505674, Areg Beketovski)Behdad Esfahbod2007-12-261-1/+1
| | | | | | | | | | 2007-12-26 Behdad Esfahbod <behdad@gnome.org> * gclosure.h (G_CCLOSURE_SWAP_DATA): Fix macro argument. (#505674, Areg Beketovski) svn path=/trunk/; revision=6204
* turned all modifications to the first 32 integer bits in a closure intoTim Janik2005-08-011-10/+14
| | | | | | | | | | | | Mon Aug 1 23:00:42 2005 Tim Janik <timj@imendio.com> * gclosure.c: turned all modifications to the first 32 integer bits in a closure into atomic accesses. wrapped write accesses into special macros to keep the atomic modification logic in a single place. comment cleanups. * gclosure.h: made all atomicly accessed closure fields volatile. * gobject.h: made ref_count field volatile.
* Add some padding to the class.Owen Taylor2002-02-231-1/+1
| | | | | | | | | Sat Feb 23 13:28:56 2002 Owen Taylor <otaylor@redhat.com> * gtypeplugin.h (struct _GTypePluginClass): Add some padding to the class. * gclosure.h (struct _GClosure): Fix typo in comment.
* Improve the detection of invalid includes by moving the test outside theOwen Taylor2001-11-221-3/+3
| | | | | | | | | Mon Nov 19 14:35:56 2001 Owen Taylor <otaylor@redhat.com> * *.h: Improve the detection of invalid includes by moving the test outside the duplicate include guards. * gsourceclosure.c (g_source_set_closure): Doc fix.
* Include gtypes.h not gobject/gtype.hOwen Taylor2001-11-181-0/+3
| | | | | | | | | | | | | | | | | Sat Nov 17 14:10:35 2001 Owen Taylor <otaylor@redhat.com> * glib/gbsearcharray.h: Include gtypes.h not gobject/gtype.h * glib/glib-object.h gobject/*.h: Prevent headers from being included directly except when compiling GObject. * gobject/gvaluecollector.h: Include glib-object.h so that this file can be included directly, since we don't include it _from_ glib-object.h. * gobject/gtype.c: Remove struct _GValue hack since we now include glib/gvaluecollector.h which simply pulls in glib-object.h.
* add API for chaining: g_signal_chain_from_overridden() andTim Janik2001-11-141-1/+0
| | | | | | | | | | | | | | | | | Tue Nov 13 23:18:10 2001 Tim Janik <timj@gtk.org> * gsignal.[hc]: add API for chaining: g_signal_chain_from_overridden() and g_signal_override_class_closure(), implementation yet to come. * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag. * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick, get_name and get_blurb, to be consistent with the rest of the g_param_spec_*() functions. * gparamspecs.[hc]: got rid of bogus GClosure paramspec. G_TYPE_CLOSURE is a boxed type already.
* provide G_CLOSURE_N_NOTIFIERS() for people that need to walk the notifierTim Janik2001-11-071-0/+2
| | | | | | | Wed Nov 7 00:56:00 2001 Tim Janik <timj@gtk.org> * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need to walk the notifier list (puhh, black magic, stay-away-warning ;).
* added g_list_nth_prev() which walks ->prev instead of ->next.Tim Janik2001-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Tue Apr 3 13:46:22 2001 Tim Janik <timj@gtk.org> * glist.[hc]: added g_list_nth_prev() which walks ->prev instead of ->next. * gpattern.[hc]: added shell-style pattern matching code from beast, derived from the gtk_pattern_*() code, but with a couple of bug fixes and a number of optimizations. Tue Apr 3 14:06:00 2001 Tim Janik <timj@gtk.org> * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per owner_type. the pspecs are not referenced, so the caller is supposed to have some idea about owner_type not randomly nuking his pspec's. if this is going to provide problems in the future, we can either auto-ref the pspecs, or add a _foreach variant, though the latter would have to invoke the callback while pspec's mutex is acquired, so i just went for the _list variant for now. * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
* removed archaic gpointer derived_data; relict and added a GData memberTim Janik2001-03-181-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wed Mar 14 18:46:54 2001 Tim Janik <timj@gtk.org> * gscanner.[hc]: removed archaic gpointer derived_data; relict and added a GData member instead. * glist.[hc]: added g_list_remove_all(). * gslist.[hc]: added g_slist_remove_all(). Sat Mar 17 23:18:36 2001 Tim Janik <timj@gtk.org> * gobject.c (g_object_get_property): minor bug-fix. * gbsearcharray.[hc]: provide a macro for static initialization and functions g_bsearch_array_new() and g_bsearch_array_destroy() for dynamic allocations. * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString. * gclosure.[hc]: naming corrections. Fri Mar 9 16:42:08 2001 Tim Janik <timj@gtk.org> * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as a public function (was static in gobject.c before). it's a bit odd to have that function here, especially since it requires extra includes, but then it doesn't very well fit somewhere else either. * gparamspecs.c: added default/max/min checks to param spec creation functions.
* Use G_BEGIN_DECLS and G_END_DECLS.Tor Lillqvist2001-03-091-10/+2
| | | | | | | | | 2001-02-21 Tor Lillqvist <tml@iki.fi> * *.h: Use G_BEGIN_DECLS and G_END_DECLS. * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke libtool with -no-undefined for Win32 and Cygwin.
* changed prototype of g_boxed_type_register_static() to contain an optionalTim Janik2001-03-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>.
* incorporated huge docu patch from Eric Lemings <eric.b.lemings@lmco.com>Tim Janik2001-02-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Fri Feb 16 06:52:20 2001 Tim Janik <timj@gtk.org> * gobject/tmpl/types.sgml: incorporated huge docu patch from Eric Lemings <eric.b.lemings@lmco.com> with a bunch of editing on my part. Fri Feb 16 07:10:44 2001 Tim Janik <timj@gtk.org> * gclosure.c: (g_closure_ref): (g_closure_sink): make closure sinking explicit. * gsignal.c: (g_signal_connect_data): (g_signal_connect_closure): (g_signal_connect_closure_by_id): (g_signal_newv): perform explicit closure sinking. Thu Feb 8 00:31:45 2001 Tim Janik <timj@gtk.org> * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
* fixed dealing with collection/lcopy of NULL values.Tim Janik2000-12-121-30/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* prefix internal functions with '_'. renamed g_signal_connect_closure() toTim Janik2000-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | Fri Nov 3 07:35:00 2000 Tim Janik <timj@gtk.org> * gsignal.[hc]: prefix internal functions with '_'. renamed g_signal_connect_closure() to g_signal_connect_closure_by_id(). added g_signal_parse_name() to retrive signal_id and detail quark from a signal name (internal). Fri Nov 3 07:33:15 2000 Tim Janik <timj@gtk.org> * gobject/gobject-docs.sgml: added &gobject-closures; section. * gobject/Makefile.am (tmpl_sources): add tmpl/clsoures.sgml * gobject/gobject-sections.txt: added Closure section. * gobject/tmpl/closures.sgml: new file with template description for GClosure functions.
* publically define GSignalInvocationHint structure that gets passed in toTim Janik2000-10-271-4/+4
| | | | | | | | | | | | | | | | | | | | Fri Oct 27 16:33:41 2000 Tim Janik <timj@gtk.org> * gsignal.[hc]: publically define GSignalInvocationHint structure that gets passed in to closure invocations. added signal details. renamed GSignalType to GSignalFlags to comply with conventions. quite some cleanups and minor fixes. avoid uneccessary handler list walks upon invokation of after handlers. relookup handler list for restarted emissions. preliminary abort normal handler invokation if after handler is encountered. * glib-genmarshal.c: * gclosure.[hc]: moved invocation_hint to the end of the g_closure_invoke() arguments as sugegsted by kenelson. also made it a gpointer to be more generic. the invocation_hint is a caller specific thing that can be used to pass additional data in to closure invocations as documented with the caller invoking the closure.
* added newly added gobject/ headers.Tim Janik2000-10-251-0/+185
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.