glib r7387 - in trunk: . gobject
- From: bjornl svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7387 - in trunk: . gobject
- Date: Fri, 22 Aug 2008 18:23:05 +0000 (UTC)
Author: bjornl
Date: Fri Aug 22 18:23:05 2008
New Revision: 7387
URL: http://svn.gnome.org/viewvc/glib?rev=7387&view=rev
Log:
2008-08-22 BjÃrn Lindqvist <bjourne gmail com>
Bug 523939 â Example program for GValue
* gobject/gvalue.c: Add code example that demonstrates GValue's
features.
Modified:
trunk/ChangeLog
trunk/gobject/gvalue.c
Modified: trunk/gobject/gvalue.c
==============================================================================
--- trunk/gobject/gvalue.c (original)
+++ trunk/gobject/gvalue.c Fri Aug 22 18:23:05 2008
@@ -53,6 +53,66 @@
* 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.
+ *
+ * The code in the example program below demonstrates #GValue's
+ * features.
+ *
+ * |[
+ * #include <glib-object.h>
+ *
+ * static void
+ * int2string (const GValue *src_value,
+ * GValue *dest_value)
+ * {
+ * if (g_value_get_int (src_value) == 42)
+ * g_value_set_static_string (dest_value, "An important number");
+ * else
+ * g_value_set_static_string (dest_value, "What's that?");
+ * }
+ *
+ * int
+ * main (int argc,
+ * char *argv[])
+ * {
+ * /* GValues must start zero-filled */
+ * GValue a = {0};
+ * GValue b = {0};
+ * const gchar *message;
+ *
+ * g_type_init ();
+ *
+ * /* The GValue starts empty */
+ * g_assert (!G_VALUE_HOLDS_STRING (&a));
+ *
+ * /* Put a string in it */
+ * g_value_init (&a, G_TYPE_STRING);
+ * g_assert (G_VALUE_HOLDS_STRING (&a));
+ * g_value_set_static_string (&a, "Hello, world!");
+ * g_printf ("%s\n", g_value_get_string (&a));
+ *
+ * /* Reset it to its pristine state */
+ * g_value_unset (&a);
+ *
+ * /* It can then be reused for another type */
+ * g_value_init (&a, G_TYPE_INT);
+ * g_value_set_int (&a, 42);
+ *
+ * /* Attempt to transform it into a GValue of type STRING */
+ * g_value_init (&b, G_TYPE_STRING);
+ *
+ * /* An INT is transformable to a STRING */
+ * g_assert (g_value_type_transformable (G_TYPE_INT, G_TYPE_STRING));
+ *
+ * g_value_transform (&a, &b);
+ * g_printf ("%s\n", g_value_get_string (&b));
+ *
+ * /* Attempt to transform it again using a custom transform function */
+ * g_value_register_transform_func (G_TYPE_INT, G_TYPE_STRING, int2string);
+ * g_value_transform (&a, &b);
+ * g_printf ("%s\n", g_value_get_string (&b));
+ * return 0;
+ * }
+ * ]|
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]