Commit Graph

502 Commits

Author SHA1 Message Date
Emmanuele Bassi
a360b314aa binding: Add an explicit unbind()
Higher order languages with garbage collection can have issues releasing
a binding, as they do not control the last reference being dropped on
the binding, source, or target instances.

https://bugzilla.gnome.org/show_bug.cgi?id=698018
2013-05-02 15:50:21 -07:00
Matthias Clasen
20012ec9a9 Add 2.38 indexes to the docs 2013-05-01 00:16:25 -04:00
Ryan Lortie
c18462b580 GParamSpec: add g_param_spec_get_default_value()
The way of getting the default value out of a GParamSpec is to allocate
a GValue, initialise it, then call g_param_spec_set_default() to set the
default value into that GValue.

This is exactly how we handle setting the default value for all of the
construct properties that were not explicitly passed to g_object_new().

Instead of doing the alloc/init/store on all construct properties on
every call to g_object_new(), we can cache those GValues in the private
data of the GParamSpec itself and reuse them.

This patch does not actually make that change to g_object_new() yet, but
it adds the API to GParamSpec so that a future patch to GObject can make
the change.

https://bugzilla.gnome.org/show_bug.cgi?id=698056
2013-04-23 14:39:09 -04:00
Ryan Lortie
c30c0bb34d GType: add accessor for instance private offset
Since instance private data is now always at a constant offset to the
instance pointer, we can add an accessor for it that doesn't also
require an instance.

The idea is that classes can call this from their class_init and store
it in a file-scoped static variable and use that to find their private
data on instances very quickly, without a priv pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=698056
2013-04-23 14:39:09 -04:00
Matthias Clasen
d59acb701e Small cleanup to tutorial headings
This makes all the subsection headers consistent.
https://bugzilla.gnome.org/show_bug.cgi?id=659428
2013-03-17 23:01:21 -04:00
Matthias Clasen
9c72b5776a add 2.36 index to gobject docs 2013-02-03 13:26:36 -05:00
Matthias Clasen
ab328469f5 Silence automake
automake doesn't like INCLUDES anymore.
2013-02-02 22:54:15 -05:00
Jasper St. Pierre
5e62827efd gmarkup: Make GMarkupParseContext a boxed type
At the same time, add a refcount and public ref/unref methods.
This makes it usable from introspectable.

https://bugzilla.gnome.org/show_bug.cgi?id=690084
2013-01-01 11:03:19 -05:00
Alexander Larsson
e218b96a6b Add g_type_get_type_registration_serial()
This lets you cache type lookup information and then know when
the cache information is out of date. In particular, we want this
in order to be able to cache g_type_from_name() lookups in the Gtk+
theme machinery.

https://bugzilla.gnome.org/show_bug.cgi?id=689847
2012-12-10 12:55:28 +01:00
Sebastian Dröge
46a92a760b Add boxed GType for GThread
https://bugzilla.gnome.org/show_bug.cgi?id=688704
2012-11-20 15:03:06 +01:00
Martin Pitt
1af1b2b2bb Box GPollFD to make it introspectable
https://bugzilla.gnome.org/show_bug.cgi?id=686797
2012-11-05 14:41:31 +01:00
Martin Pitt
a5c5730085 Revert "Box GPollFD to make it introspectable"
This reverts commit 932f4250b8.

This got pushed accidentally and has not been accepted yet. It's also not clear
whether we want this in the first place.

https://bugzilla.gnome.org/show_bug.cgi?id=686797
2012-10-25 11:27:39 +02:00
Martin Pitt
932f4250b8 Box GPollFD to make it introspectable
https://bugzilla.gnome.org/show_bug.cgi?id=686797
2012-10-25 07:58:09 +02:00
Ryan Lortie
7c42ab23b5 Convert g_type_init() to a ctor
Move the guts of g_type_init() into a ctor and turn g_type_init() itself
into a do-nothing function.

g_type_init_with_debug_flags() now ignores its arguments, but it has
always been possible to achieve the same effect via environment
variables.

https://bugzilla.gnome.org/show_bug.cgi?id=686161
2012-10-16 09:39:24 -04:00
Martin Pitt
02f143c2d9 Box GTimeZone to make it introspectable
https://bugzilla.gnome.org/show_bug.cgi?id=683167
2012-09-06 06:18:42 +02:00
Matthias Clasen
a30f6a6eb8 Add new api to symbol lists and docs
https://bugzilla.gnome.org/show_bug.cgi?id=682849
2012-09-02 15:10:20 -04:00
Colin Walters
ac7c050d37 docs: Ensure CLEANFILES is set before we use +=
We need to be defensive about this in the case where gtk-doc.make is
empty.
2012-08-25 17:13:43 -04:00
Matthias Clasen
2ccf64ba59 Improve glib-genmarshal man page
Expand the example in glib-genmarshal.1 to include the actual
commandline invocations, and update the generated function
names to match reality.
https://bugzilla.gnome.org/show_bug.cgi?id=637460
2012-08-16 18:46:17 -04:00
Colin Walters
aa50b8aec3 build: Fix the --disable-man case
The manpage listing needs to be inside the conditional.
2012-08-16 18:31:02 -04:00
Matthias Clasen
b60168a5f5 Remove man page placeholder generation
I don't see a good reason for this - if man page generation is
disabled, man pages are not produced, and things like 'make dist'
will fail. That is simpler and better.

https://bugzilla.gnome.org/show_bug.cgi?id=681336
2012-08-16 18:06:11 -04:00
Matthias Clasen
4cd5a63f12 Clean up man pages on 'clean'
Follow the automake heuristic that says "if 'make' created it,
'make clean' should remove it".

https://bugzilla.gnome.org/show_bug.cgi?id=681336
2012-08-16 18:06:08 -04:00
David Rothlisberger
be7095980e gobject docs: Remove confusing acronym
In the wikipedia disambiguation page[1] the only entry that even
remotely makes sense in this context is "and so on". Google searches
for "aso memory management" and "aso garbage collection" don't yield
anything relevant.

[1] http://en.wikipedia.org/wiki/ASO

https://bugzilla.gnome.org/show_bug.cgi?id=679996
2012-08-06 10:26:45 -04:00
David Rothlisberger
bcda26a504 gobject docs: Remove incorrect reference to signals docs
The chapter on signals comes after this chapter, not before (see
"tut_gobject.xml" in docs/reference/gobject/gobject-docs.xml).

https://bugzilla.gnome.org/show_bug.cgi?id=679996
2012-08-06 10:26:44 -04:00
Matthias Clasen
08dd0f246a docs: Improve man page consistency
Make Options sections refsect1 instead of refsect2, and use
uppercase for argument names. Also add a product name, and
shorten some argument names.
2012-08-03 23:36:45 -04:00
Matthias Clasen
d241978412 docs: Improve man page generation
Use $(AM_V_GEN) for generating man pages, and set some parameters
for the XSL stylesheets. Among other things, don't generate AUTHORS
and COPYRIGHT sections.
2012-08-03 23:36:45 -04:00
Stef Walter
3b0f1cc432 Fix up GObject interface documentation
* Document how to override interfaces already implemented
   in a base class, and also call those base class implementations
   from a derived reimplementation.
 * Don't recomend people use base_init() style functions to
   initialize interface signals and properties, use default_init()
   aka class_init() instead (as G_DEFINE_INTERFACE() uses).
 * The above solves the interface init called multiple times
   problem, so remove some needless naysaying about that.
 * Document default_init() in the interface initialization discussion
 * Linkify more stuff.
 * Remove some crud and typos

https://bugzilla.gnome.org/show_bug.cgi?id=675504
2012-07-09 17:47:39 +02:00
Ryan Lortie
5d7fa1c783 GObject docs fixup 2012-07-03 15:40:44 -04:00
Dan Winship
e011d2c921 Add g_type_ensure() and use it rather than playing games with volatile
https://bugzilla.gnome.org/show_bug.cgi?id=605976
2012-05-15 13:46:38 -04:00
Javier Jardón
d18a9caf03 docs: Use latest docbook dtd: 4.5 2012-04-23 02:46:18 +01:00
Javier Jardón
ee44211f1a docs: rename *-docs.sgml to *-docs.xml
We are using xml docbook nowadays
2012-04-23 02:31:32 +01:00
Javier Jardón
3ea31fc0f1 docs: Add index to new api added in 2.34 2012-04-23 02:23:31 +01:00
Matthias Clasen
17fe7fbd5a Update glib-genmarshal docs
A bunch of new commandline options sneaked in without docs...
2012-03-05 08:32:07 -05:00
Matthias Clasen
967f3f83a7 Add a few more missing functions to the docs 2012-02-10 22:21:42 -05:00
Javier Jardón
9e732ab0ea docs/gobject/tutorial: Use g_object_class_install_properties 2012-01-12 14:13:07 +00:00
Matthias Clasen
e6a5c2efb2 Add GWeakRef to the docs 2012-01-03 08:02:49 -05:00
Matthias Clasen
4041349037 Teach gtk-doc about G_GNUC_WARN_UNUSED_RESULT 2011-12-19 07:45:43 -05:00
Stef Walter
7e92997539 documentation fixes
Fixes for gtk-doc warnings.

http://bugzilla.gnome.org/show_bug.cgi?id=66469

https://bugzilla.gnome.org/show_bug.cgi?id=664699
2011-12-13 23:01:51 -05:00
Nicola Fontana
f24d8247b3 Do not use static GTypeInfo and GInterfaceInfo
Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
GInterfaceInfo structs, while tutorials and source code often use
static variables. This commit consistently adopts the former method.

https://bugzilla.gnome.org/show_bug.cgi?id=600161
2011-11-29 22:03:25 -05:00
Stef Walter
fcc69fd318 GBytes: A new type for an immutable set of bytes.
* Represents an immutable reference counted block of memory.
 * This is basically the internal glib GBuffer structure exposed,
   renamed, and with some additional capabilities.
 * The GBytes name comes from python3's immutable 'bytes' type
 * GBytes can be safely used as keys in hash tables, and have
   functions for doing so: g_bytes_hash, g_bytes_equal
 * GByteArray is a mutable form of GBytes, and vice versa. There
   are functions for converting from one to the other efficiently:
   g_bytes_unref_to_array() and g_byte_array_free_to_bytes()
 * Adds g_byte_array_new_take() to support above functions

https://bugzilla.gnome.org/show_bug.cgi?id=663291
2011-11-24 08:58:38 +01:00
Matthias Clasen
069ec3719c Fix distcheck
Now that we have switched to template-free docs, these
hand-rolled cleanup rules get in the way.
2011-11-23 18:13:44 -05:00
Dan Winship
f9c2362e43 glib-mkenums: add --identifier-prefix and --symbol-prefix args
Allow passing --identifier-prefix and --symbol-prefix to glib-mkenums,
with the same meanings as in g-ir-scanner, to allow fixing up the enum
name parsing globally rather than needing to add a /<* *>/ override to
each enum.

https://bugzilla.gnome.org/show_bug.cgi?id=661797
2011-10-28 18:04:28 -04:00
Dan Winship
78a0dbd853 docs: don't refer to a deprecated glib-mkenums flag
Refer to the new flag instead

https://bugzilla.gnome.org/show_bug.cgi?id=661797
2011-10-28 18:04:28 -04:00
Sjoerd Simons
6a81ced72d Fix document generation in out of tree builds
https://bugzilla.gnome.org/show_bug.cgi?id=662390
2011-10-24 20:40:35 -04:00
Giovanni Campagna
96817746d9 Turn GKeyFile into a boxed for introspection
Using the new refcounting API, introduce a boxed type wrapping
GKeyFile and expose it introspection bindings in glib-types.h.
2011-10-15 17:51:25 -04:00
Matthias Clasen
dfd75d2ead Add 'Since 2.32' indexes to gio and gobject docs 2011-10-15 17:31:47 -04:00
Javier Jardón
91713e950f docs: Use G_VALUE_INIT 2011-10-02 17:22:18 +01:00
Ryan Lortie
cab5b8abd3 GType tutorial: clarify class struct initialisation
Make the information on how the class structure is initialised less
confusing to first-time readers.
2011-09-11 15:48:47 -04:00
Ryan Lortie
9829d04be8 GObject docs: resolve broken links
Some links were broken due to typos, because functionality was removed
in GLib 2.0 or for various other reasons.  Fix up as many of them as is
reasonable.
2011-09-05 18:46:59 -04:00
Ryan Lortie
b402c3f014 gobject docs: add symbols from GMainLoop boxing 2011-09-05 18:05:05 -04:00
Ryan Lortie
b407086b38 Back out some changes to docs Makefiles
Commit ab0e9dbfa7 introduced some changes
to the documentation Makefiles designed to clean-up the process of
deciding which headers get scanned for the docs.

Unfortunately, the gtk-doc Makefile doesn't use HFILE_GLOB for actually
generating the docs -- only for knowing when it needs to redo the
generation.  Because of this, we need to use IGNORE_HFILES or otherwise
we get hundreds of symbols in the *-unused.txt files.

Revert the changes that that commit made to the docs Makefiles (but
leave the generation of the *-public-headers.txt files in place).
2011-09-05 18:01:39 -04:00
Alexandre Franke
c32c9526ad Fix missing semi-colon after struct definition 2011-09-05 13:22:37 +02:00
Matthias Clasen
b57f2e9327 Clean up gobject docs 2011-08-30 00:09:51 -04:00
Matthias Clasen
c938250c33 Add a 'since 2.30' index to gobject docs 2011-08-29 21:43:50 -04:00
Marc-André Lureau
d2ca14c270 Add G_VALUE_INIT
The implementation of GValue is not public or documented.  When
allocated on the stack, initializing a GValue is usually done as
documented with:

GValue value = { 0, };

There is lot code around (including WebKit) that added all the missing
fields, resulting in this ugly and non-obvious:

GValue value = { 0, { { 0 } } };

However, this doesn't play nice with -Wmissing-field-initializers for
example. Thus, G_VALUE_INIT.

http://bugzilla.gnome.org/show_bug.cgi?id=654793
http://bugzilla.gnome.org/show_bug.cgi?id=577231
2011-08-13 18:16:44 -04:00
Christian Persch
316efa1b5d Add boxed GType for GMatchInfo 2011-06-24 01:03:50 +02:00
Patrick Welche
3393711f42 build: fix gtk-doc when srcdir != builddir
https://bugzilla.gnome.org/show_bug.cgi?id=653250
2011-06-23 12:52:13 -04:00
Patrick Welche
de0519581a Fix build due to trivial typos in ab0e9dbf.
https://bugzilla.gnome.org/show_bug.cgi?id=652750
2011-06-16 13:09:42 -04:00
Colin Walters
ab0e9dbfa7 Generate $module-public-headers.txt file, feed it to gtk-doc
Rather than having the gtk-doc build machinery have a list of header
files to exclude, change the GLib build to dump a list of public
header files generated from the maintained Makefile.am files for
each of glib/, gobject/, gio/.

Also, for glib, always install glib-unix.h, even on non-Unix
platforms, for the same reason we install gwin32.h even on Unix.

https://bugzilla.gnome.org/show_bug.cgi?id=651745
2011-06-07 14:18:36 -04:00
Colin Walters
3bd3067ffc gobject: Use _ prefixing in private headers over G_GNUC_INTERNAL in public headers
This helps out gtk-doc and g-ir-scanner, and also makes much clearer
what's private versus public.

https://bugzilla.gnome.org/show_bug.cgi?id=651745
2011-06-03 12:40:01 -04:00
David Zeuthen
88ab35f3cb Add a generic libffi based marshaller to libgobject
This code is from https://bugzilla.gnome.org/show_bug.cgi?id=567087
and was adapted by myself to also support the GVariant fundamental
type.

Signed-off-by: David Zeuthen <davidz@redhat.com>
2011-04-08 17:34:44 -04:00
Matthias Clasen
db83a96648 Documentation tweak 2010-11-29 01:20:58 -05:00
Dan Winship
e910205557 Add g_source_set_dummy_callback()
Use g_source_set_closure() and g_close_set_meta_marshal() to allow
setting a do-nothing callback on any source.

https://bugzilla.gnome.org/show_bug.cgi?id=634239
2010-11-26 15:07:28 -05:00
Matthias Clasen
3570c4a00e Add indices for new symbols in 2.28 2010-11-24 16:00:32 -05:00
Javier Jardón
010913c8ab docs: Update the URL of some documentation links
http://developer.gnome.org -> http://library.gnome.org
2010-11-14 02:09:05 +01:00
Ryan Lortie
1a1fc130ec New function: g_clear_object()
By analogy to g_clear_error, takes a pass-by-reference GObject reference
and, if non-%NULL, unrefs it and sets it equal to %NULL.

Bug #620263.
2010-11-08 18:21:51 -05:00
Ryan Lortie
15d87c2cc4 GObject: add g_signal_accumulator_first_wins
Deals with the case where we want exactly one signal handler to run.
2010-10-12 21:34:17 -04:00
Christian Dywan
53f398f52a Mention g_object_run_dispose correctly in tutorial
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=630797
2010-10-08 15:25:31 +02:00
Stefan Kost
919f64acab build: fix out of srcdir build
The gtk-doc makefile rules do cd srcdir && cp $(HTML_IMAGES) target/ and this
breaks for "srcdir" != ".".
2010-09-23 23:38:05 +03:00
Stefan Kost
de432280a0 docs: shorten var name in example
We use 'pspec' instead of 'maman_param_spec' elsewhere too.
2010-09-19 22:06:10 +03:00
Stefan Kost
aa8c8df44f docs: fix iface type naming 2010-09-19 22:03:40 +03:00
Stefan Kost
58e5b01fbc docs: fix docbook validity
'type' must be inside of 'link'.
2010-09-19 21:50:31 +03:00
Stefan Kost
409f7db894 docs: cleanup constructor example
Remove unused var and chain-up the sane way we do elsewhere.
2010-09-19 21:37:19 +03:00
Stefan Kost
a6ad0fbec2 docs: use passive voice. 2010-09-19 21:33:52 +03:00
Emmanuele Bassi
9cd43d7a4c gobject: Add install_properties()
Since we added g_object_notify_by_pspec(), an efficient way to install
and notify properties relies on storing the GParamSpec pointers inside
a static arrays, like we do for signal identifiers.

Instead of multiple calls to g_object_class_install_property(), we
should have a single function to take the static array of GParamSpecs
and iterate it.

https://bugzilla.gnome.org/show_bug.cgi?id=626919

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2010-09-13 12:34:53 +01:00
Emmanuele Bassi
d31c1c863a docs: Fix up GDateTime for the GObject reference 2010-08-25 16:24:46 +01:00
Christian Persch
dc1999316d Add G_DEFINE_{BOXED,POINTER}_TYPE[_WITH_CODE]
Add convenience type definition macros for boxed and pointer types
similar to G_DEFINE_TYPE for object types. Bug #449565.
2010-08-18 00:12:22 +02:00
Ryan Lortie
b3b7ea8e22 Replace -I with $(glib_INCLUDES) and friends
Stop using ad hoc -I in all of our Makefile.am.  Use the new variables
instead.
2010-08-06 13:10:34 -04:00
Emmanuele Bassi
3be3ad61d1 binding: Add a closure-based variant of bind_property_full()
Since using the function pointer version muddles the memory management
requirements of language bindings, we should implement a GClosure-based
variant on top of g_object_bind_property_full().

https://bugzilla.gnome.org/show_bug.cgi?id=622278
2010-08-03 09:51:49 +01:00
Stefan Kost
463edcb045 docs: xi:include the annotation glossary to kill warnings and make them work 2010-07-14 11:57:36 +03:00
Ryan Lortie
adde752ec5 More docs fixes
Remove the g*alias.h from the ignore lists

  Remove other old files from ignore lists

  Clean up gobject docs
2010-07-12 17:46:17 -04:00
Matthias Clasen
3549e06f81 Ignore gatomicarray.h
Otherwise gtk-doc picks up declarations from that header and is
disappointed when they are not documented.
2010-06-23 09:25:30 -04:00
Matthias Clasen
9c6130cdde silence gtk-doc
Add g_error_get_type to a private section in gobject-sections.txt
so gtk-doc doesn't complain about it.
2010-06-23 09:25:29 -04:00
Matthias Clasen
7d81e99c4b Add an index for 2.26 api additions 2010-06-23 09:25:29 -04:00
Ryan Lortie
a4cd39e741 gobject docs: ignore some sgml files 2010-06-21 14:01:50 -04:00
Christian Persch
db68f8203a Add g_value_take_variant
Turns out we do need g_value_take_variant(), so we can correctly
implement VARIANT:* marshalers.

Bug #621947.
2010-06-19 19:07:36 +02:00
Christian Persch
30df71e382 Add VARIANT to glib-genmarshal docs 2010-06-18 00:10:54 +02:00
Christian Persch
4708b8ecc3 Add fundamental type and pspec for GVariant
Make G_TYPE_VARIANT a fundamental type instead of boxed, and add
g_variant_{set,get,dup}_variant.

Add GParamSpecVariant.

Bug #610863.
2010-06-17 21:00:54 +02:00
Emmanuele Bassi
6d1d9cf1b5 gobject: Add GBinding
GBinding is a simple, opaque object that represents a binding between a
property on a GObject instance (source) and property on another GObject
instance (target).

https://bugzilla.gnome.org/show_bug.cgi?id=348080
2010-06-15 16:06:18 +01:00
Damien Lespiau
f3879a4bdc Introduce g_object_notify_by_pspec()
g_object_notify_by_pspec() will emit the "notify" signal on the given
pspec, short-circuiting the hash table lookup needed by
g_object_notify(). The suggested and documented way of using
g_object_notify_by_pspec() is similar to the way of emitting signals
with their ID.

Emission tests (with no handler attached to the notify signal) show a
10-15% speedup over using g_object_notify().

https://bugzilla.gnome.org/show_bug.cgi?id=615425
2010-06-15 10:51:36 +01:00
Ryan Lortie
47e07f9f78 another occurrence of the last fix (@XSLTPROC@) 2010-05-24 22:37:43 -04:00
Matthias Clasen
8db946fdfb Clean up man page handling
Remove all formatted man pages from git, and use the same
Makefile fragment in all doc dirs.
2010-05-21 22:28:42 -04:00
Javier Jardón
3b8d0a4ac2 Add G_TYPE_CLASS_GET_PRIVATE macro to docs 2010-05-20 01:59:17 +02:00
Matthias Clasen
6223341cac Merge branch 'gdbus-merge'
Conflicts:
	docs/reference/gio/gio-docs.xml
	docs/reference/gio/gio-sections.txt
	gio/tests/Makefile.am
2010-05-13 23:08:34 -04:00
Ryan Lortie
62c0454b34 documentation for glib-mkenums @valuenum@ 2010-05-14 01:55:46 +02:00
David Zeuthen
3baff96b37 Make sure G_TYPE_ERROR shows up in the docs
This is related to bug 614541.

Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-04-23 12:14:37 -04:00
Javier Jardón
bed462046a [docs] Fix G_VALUE_COLLECT_INIT documentation
Add the documentation to the corresponding section

This macro was introduced in
commit 546fc0ca33
2010-04-20 02:12:02 +02:00
Matthias Clasen
cd9b8b563f 2.25.0 2010-04-19 17:30:42 -04:00
David King
9023ac0934 [docs] Remove unused sgml template from GObject documentation
https://bugzilla.gnome.org/show_bug.cgi?id=589351

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-04-18 20:21:10 +02:00
Matthias Clasen
61a5692fa1 Man page tweaks
Add enough info to keep the docbook stylesheets from embedding
FIXMEs in the formatted output.
2010-04-16 20:43:53 -04:00
Javier Jardón
c3f1025c33 Remove g_type_class_get_private() public documentation
This is a internal function needed for the documented
G_TYPE_CLASS_GET_PRIVATE() macro

This was introduced by error in
commit 81e2aa941b
2010-03-29 18:23:48 +02:00