Commit 37e4b8c8 authored by Tim Janik's avatar Tim Janik Committed by Tim Janik

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>.
parent 66107ac7
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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.
2001-03-07 Christian Meyer <chrisime@gnome.org>
* configure.in: Added de (German) to ALL_LINGUAS.
......
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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/glib-sections.txt, glib/tmpl/messages.sgml: Removed
......
<!-- ##### USER_FUNCTION GCompareFuncData ##### -->
<para>
</para>
@a:
@b:
@user_data:
@Returns:
<!-- ##### USER_FUNCTION GCompletionStrcmpFunc ##### -->
<para>
......
......@@ -278,17 +278,6 @@ and has no return value. It is not currently used in GLib or GTK+.
@data:
<!-- ##### USER_FUNCTION GCompareFuncData ##### -->
<para>
</para>
@a:
@b:
@user_data:
@Returns:
<!-- ##### FUNCTION g_qsort_with_data ##### -->
<para>
......
......@@ -78,7 +78,7 @@ you do not have to worry about having enough space to copy the string.
@Returns: the destination #GString.
<!-- ##### FUNCTION g_string_sprintf ##### -->
<!-- ##### MACRO g_string_sprintf ##### -->
<para>
Writes a formatted string into a #GString.
This is similar to the standard <function>sprintf()</function> function,
......@@ -86,19 +86,21 @@ except that the GString buffer automatically expands to contain the results.
The previous contents of the GString are destroyed.
</para>
<!-- # Unused Parameters # -->
@string: a #GString.
@format: the string format. See the <function>sprintf()</function>
documentation.
@Varargs: the parameters to insert into the format string.
<!-- ##### FUNCTION g_string_sprintfa ##### -->
<!-- ##### MACRO g_string_sprintfa ##### -->
<para>
Appends a formatted string onto the end of a #GString.
This function is is similar to g_string_sprintf() except that
the text is appended to the GString.
</para>
<!-- # Unused Parameters # -->
@string: a #GString.
@format: the string format. See the <function>sprintf()</function>
documentation.
......
......@@ -2,47 +2,36 @@
# The name of the module.
DOC_MODULE=gobject
# The top-level SGML file.
DOC_MAIN_SGML_FILE=gobject-docs.sgml
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
EXTRA_DIST +=
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=../../../gobject
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=--extra-dir=$(srcdir)/../glib/html
# Images to copy into HTML directory
HTML_IMAGES =
# Used for dependencies
HFILE_GLOB=$(top_srcdir)/gobject/*.h
CFILE_GLOB=$(top_srcdir)/gobject/*.c
# Headers to ignore
IGNORE_HFILES= \
.saved \
glib-genmarshal.c \
gbsearcharray.h
# Extra files to add when scanning
EXTRA_HFILES=
# Images to copy into HTML directory
HTML_IMAGES =
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
content_files =
# Other files to distribute
extra_files =
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
GTKDOC_CFLAGS =
GTKDOC_LIBS =
# Commands for compiling and linking
GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
......@@ -54,29 +43,29 @@ GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
EXTRA_DIST = \
$(content_files) \
$(extra_files) \
$(HTML_IMAGES) \
$(DOC_MAIN_SGML_FILE) \
$(DOC_MODULE).types \
$(DOC_MODULE)-sections.txt \
$(DOC_MODULE)-overrides.txt
DOC_STAMPS = $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp \
build-scan.stamp build-tmpl.stamp build-sgml.stamp build-html.stamp
# gtkdoc-mktmpl: creates, and on changes touches: tmpl.stamp
# gtkdoc-mkdb: creates, and on changes touches: sgml.stamp
# gtkdoc-mkhtml: creates, and on changes touches: html.stamp
DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp
if ENABLE_GTK_DOC
all-local: html-build.stamp
.PHONY: gtkdoc-build-all
if ENABLE_GTK_DOC
SCANOBJ_FILES = \
$(DOC_MODULE).args \
$(DOC_MODULE).hierarchy \
$(DOC_MODULE).signal
scan-build.stamp: $(HFILE_GLOB)
all-local: gtkdoc-build-all
gtkdoc-build-all: build-sgml.stamp build-html.stamp
@true
build-scan.stamp: $(HFILE_GLOB)
@echo '*** Scanning header files ***'
cd $(srcdir) && ( \
if grep -l '^.+$$' $(DOC_MODULE).types > /dev/null ; then \
if grep -l '^.+$$' $(DOC_MODULE).types > /dev/null 2>/dev/null ; then \
CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) ; \
else \
for i in $(SCANOBJ_FILES) ; do \
......@@ -85,46 +74,32 @@ scan-build.stamp: $(HFILE_GLOB)
fi )
cd $(srcdir) && \
gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
touch scan-build.stamp
check_scan:
$(MAKE) scan-build.stamp
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): check_scan
tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
touch build-scan.stamp
build-tmpl.stamp: build-scan.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(srcdir)/tmpl/*.sgml
@echo '*** Rebuilding template files ***'
cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
touch tmpl-build.stamp
check_templates:
$(MAKE) tmpl-build.stamp
tmpl.stamp: check_templates
sgml-build.stamp: tmpl.stamp $(CFILE_GLOB)
touch build-tmpl.stamp
tmpl.stamp: build-tmpl.stamp
@true
build-sgml.stamp: tmpl.stamp $(CFILE_GLOB)
@echo '*** Building SGML ***'
cd $(srcdir) && \
gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
touch sgml-build.stamp
check_sgml:
$(MAKE) sgml-build.stamp
sgml.stamp: check_sgml
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE)
touch build-sgml.stamp
sgml.stamp: build-sgml.stamp
@true
build-html.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE)
@echo '*** Building HTML ***'
test -d $(srcdir)/html || mkdir $(srcdir)/html
cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
@echo '-- Fixing Crossreferences'
cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
touch html-build.stamp
touch build-html.stamp
endif
clean-local:
rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) $(srcdir)/sgml.stamp
rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS)
maintainer-clean-local: clean
cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
......@@ -167,4 +142,12 @@ dist-hook: dist-check-gtkdoc dist-hook-local
cp $(srcdir)/$$i $(distdir)/html ; \
done
.PHONY : check_sgml check_templates check_scan dist-hook-local
.PHONY: dist-hook-local
EXTRA_DIST = \
$(HTML_IMAGES) \
$(DOC_MAIN_SGML_FILE) \
$(DOC_MODULE).types \
$(DOC_MODULE)-sections.txt \
$(DOC_MODULE)-overrides.txt
......@@ -24,7 +24,6 @@ GTypeInstance
GTypeInfo
GTypeFundamentalInfo
GInterfaceInfo
GTypeValueTable
<TITLE>GType</TITLE>
G_TYPE_FROM_INSTANCE
......@@ -141,45 +140,47 @@ GObjectClass
GObjectConstructParam
GObjectGetPropertyFunc
GObjectSetPropertyFunc
GObjectFinalizeFunc
G_TYPE_IS_OBJECT
G_OBJECT
G_IS_OBJECT
G_OBJECT_CLASS
G_IS_OBJECT_CLASS
G_OBJECT_GET_CLASS
G_OBJECT_TYPE
G_OBJECT_TYPE_NAME
G_OBJECT_CLASS_TYPE
G_OBJECT_CLASS_NAME
G_IS_VALUE_OBJECT
G_TYPE_IS_OBJECT
G_IS_OBJECT
G_OBJECT_CLASS
G_IS_OBJECT_CLASS
GObjectFinalizeFunc
G_VALUE_HOLDS_OBJECT
g_object_class_install_property
g_object_class_find_property
g_object_new
g_object_new_valist
g_object_ref
g_object_unref
g_object_connect
g_object_disconnect
g_object_set
g_object_get
g_object_set_valist
g_object_get_valist
g_object_set_property
g_object_get_property
g_object_freeze_notify
g_object_notify
g_object_freeze_notify
g_object_thaw_notify
g_object_ref
g_object_unref
g_object_get_qdata
g_object_set_qdata
g_object_set_qdata_full
g_object_steal_qdata
g_object_get_data
g_object_set_data
g_object_set_data_full
g_object_steal_data
g_object_get_qdata
g_object_set_qdata
g_object_set_qdata_full
g_object_steal_qdata
g_object_set_property
g_object_get_property
g_object_new_valist
g_object_set_valist
g_object_get_valist
g_object_watch_closure
g_value_set_object
g_value_get_object
g_value_dup_object
g_object_watch_closure
G_OBJECT_WARN_INVALID_PROPERTY_ID
</SECTION>
......@@ -198,8 +199,8 @@ G_FLAGS_CLASS
G_IS_FLAGS_CLASS
G_FLAGS_CLASS_TYPE
G_FLAGS_CLASS_TYPE_NAME
G_IS_VALUE_ENUM
G_IS_VALUE_FLAGS
G_VALUE_HOLDS_ENUM
G_VALUE_HOLDS_FLAGS
GEnumValue
GFlagsValue
g_enum_get_value
......@@ -228,11 +229,12 @@ g_boxed_copy
g_boxed_free
g_value_set_boxed
g_value_set_static_boxed
g_value_set_boxed_take_ownership
g_value_get_boxed
g_value_dup_boxed
g_boxed_type_register_static
<SUBSECTION Standard>
G_IS_VALUE_BOXED
G_VALUE_HOLDS_BOXED
G_TYPE_IS_BOXED
</SECTION>
......@@ -248,31 +250,48 @@ GValueExchange
GValue
g_value_init
g_value_copy
g_value_convert
g_value_reset
g_value_unset
g_value_fits_pointer
g_value_peek_pointer
g_value_convert
g_values_exchange
g_value_types_exchangable
g_value_register_exchange_func
GTypeValueTable
</SECTION>
<SECTION>
<TITLE>Value arrays</TITLE>
<FILE>value_types</FILE>
GValueArray
g_value_array_new
g_value_array_copy
g_value_array_free
g_value_array_index
g_value_array_append
g_value_array_prepend
g_value_array_insert
g_value_array_remove
g_value_array_sort
g_value_array_sort_with_data
</SECTION>
<SECTION>
<TITLE>Standard value types</TITLE>
<FILE>value_types</FILE>
G_IS_VALUE_CHAR
G_IS_VALUE_UCHAR
G_IS_VALUE_BOOLEAN
G_IS_VALUE_INT
G_IS_VALUE_UINT
G_IS_VALUE_LONG
G_IS_VALUE_ULONG
G_IS_VALUE_FLOAT
G_IS_VALUE_DOUBLE
G_IS_VALUE_STRING
G_IS_VALUE_POINTER
G_IS_VALUE_CCALLBACK
G_IS_VALUE_PARAM
G_VALUE_HOLDS_CHAR
G_VALUE_HOLDS_UCHAR
G_VALUE_HOLDS_BOOLEAN
G_VALUE_HOLDS_INT
G_VALUE_HOLDS_UINT
G_VALUE_HOLDS_LONG
G_VALUE_HOLDS_ULONG
G_VALUE_HOLDS_FLOAT
G_VALUE_HOLDS_DOUBLE
G_VALUE_HOLDS_STRING
G_VALUE_HOLDS_POINTER
G_VALUE_HOLDS_PARAM
g_value_set_char
g_value_get_char
g_value_set_uchar
......@@ -293,16 +312,14 @@ g_value_set_double
g_value_get_double
g_value_set_string
g_value_set_static_string
g_value_set_string_take_ownership
g_value_get_string
g_value_dup_string
g_value_set_param
g_value_get_param
g_value_dup_param
g_value_get_ccallback
g_value_get_pointer
g_value_set_pointer
g_value_get_as_pointer
g_value_set_ccallback
g_value_set_instance
</SECTION>
......@@ -374,8 +391,6 @@ G_IS_PARAM_SPEC_POINTER
G_PARAM_SPEC_POINTER
G_IS_PARAM_SPEC_BOXED
G_PARAM_SPEC_BOXED
G_IS_PARAM_SPEC_CCALLBACK
G_PARAM_SPEC_CCALLBACK
G_IS_PARAM_SPEC_PARAM
G_PARAM_SPEC_PARAM
G_IS_PARAM_SPEC_OBJECT
......@@ -393,7 +408,6 @@ GParamSpecFloat
GParamSpecDouble
GParamSpecString
GParamSpecBoxed
GParamSpecCCallback
GParamSpecParam
GParamSpecPointer
GParamSpecObject
......@@ -411,7 +425,6 @@ g_param_spec_double
g_param_spec_string
g_param_spec_string_c
g_param_spec_boxed
g_param_spec_ccallback
g_param_spec_param
g_param_spec_pointer
g_param_spec_object
......@@ -435,6 +448,9 @@ GSignalEmissionHook
GSignalFlags
GSignalMatchType
GSignalQuery
G_SIGNAL_TYPE_STATIC_SCOPE
G_SIGNAL_MATCH_MASK
G_SIGNAL_FLAGS_MASK
g_signal_newc
g_signal_newv
g_signal_new_valist
......
......@@ -106,7 +106,7 @@ Enumeration and Flag Types
@class:
<!-- ##### MACRO G_IS_VALUE_ENUM ##### -->
<!-- ##### MACRO G_VALUE_HOLDS_ENUM ##### -->
<para>
</para>
......@@ -114,7 +114,7 @@ Enumeration and Flag Types
@value:
<!-- ##### MACRO G_IS_VALUE_FLAGS ##### -->
<!-- ##### MACRO G_VALUE_HOLDS_FLAGS ##### -->
<para>
</para>
......
......@@ -74,6 +74,15 @@ gboxed
@boxed:
<!-- ##### FUNCTION g_value_set_boxed_take_ownership ##### -->
<para>
This is an internal function introduced mainly for C marshallers.
</para>
@value:
@boxed:
<!-- ##### FUNCTION g_value_get_boxed ##### -->
<para>
......@@ -98,8 +107,10 @@ gboxed
</para>
@name:
@boxed_init:
@boxed_copy:
@boxed_free:
@is_refcounted:
@Returns:
<!-- ##### SECTION Title ##### -->
Generic values
Generic Values
<!-- ##### SECTION Short_Description ##### -->
A polymorphic type that can hold values of any other type.
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GValue structure is basically a variable container that consists
of a type identifier and a specific value of that type.
The type identifier within a #GValue structure always determines the
type of the associated value.
To create a undefined #GValue structure, simply create a zero-filled
#GValue structure. To intialize the #GValue, use the g_value_init()
function. A #GValue cannot be used until it is initialized.
The basic type operations (such as freeing and copying) are determined
by the #GTypeValueTable associated with the type ID stored in the #GValue.
Other #GValue operations (such as converting values between types) are
provided by this interface.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
The fundamental types which all support #GValue operations and thus
can be used as a type initializer for g_value_init() are defined by
a separate interface. See the Standard Values API for details.
</para>
<!-- ##### MACRO G_VALUE_HOLDS ##### -->
<para>
Returns #TRUE if @value holds (or contains) a value of @type.
This macro will also check for @value != #NULL and issue a
warning if the check fails.
</para>
@value:
@g_type:
@type:
<!-- ##### MACRO G_VALUE_TYPE ##### -->
<para>
Returns the type identifier of @value.
</para>
@value:
@value: A #GValue structure.
<!-- ##### MACRO G_VALUE_TYPE_NAME ##### -->
<para>
Returns the type name of @value.
</para>
@value:
@value: A #GValue structure.
<!-- ##### MACRO G_TYPE_IS_VALUE ##### -->
<para>
Return whether the passed in type ID can be used for g_value_init().
That is, this macro checks whether this type provides an implementation
of the #GTypeValueTable functions required for a type to create a #GValue of.
</para>
@type:
@type: A #GType value.
@Returns: Whether @type is suitable as a #GValue type.
<!-- ##### MACRO G_IS_VALUE ##### -->
<para>
Returns #TRUE if @value is a valid and initialized #GValue structure.
</para>
@value:
@value: A #GValue structure.
<!-- ##### USER_FUNCTION GValueExchange ##### -->
......@@ -66,90 +83,269 @@ Generic values
<!-- ##### STRUCT GValue ##### -->
<para>
A mostly opaque structure used to hold a #GValue object. Mostly because
the data within the structure has protected scope: it is accessible only
to functions within a #GTypeValueTable structure, or implementations of
the g_value_*() API.
</para>
<!-- ##### FUNCTION g_value_init ##### -->
<para>
Initializes @value with the default value of @type.
</para>
@value:
@g_type:
@value: A zero-filled (uninitialized) #GValue structure.
@g_type: Type the #GValue should hold values of.
@Returns:
<!-- ##### FUNCTION g_value_copy ##### -->
<para>
Copies the value of @src_value into @dest_value.
</para>
@src_value:
@dest_value:
<!-- ##### FUNCTION g_value_convert ##### -->
<para>
</para>
@src_value: