glib r7065 - in trunk: . docs/reference/gobject/tmpl gobject
- From: stefkost svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7065 - in trunk: . docs/reference/gobject/tmpl gobject
- Date: Sat, 21 Jun 2008 10:19:59 +0000 (UTC)
Author: stefkost
Date: Sat Jun 21 10:19:58 2008
New Revision: 7065
URL: http://svn.gnome.org/viewvc/glib?rev=7065&view=rev
Log:
* docs/reference/gobject/tmpl/gboxed.sgml:
* gobject/gboxed.c:
* gobject/gboxed.h:
* gobject/gvaluetypes.c:
Migrating docs.
Removed:
trunk/docs/reference/gobject/tmpl/gboxed.sgml
Modified:
trunk/ChangeLog
trunk/docs/reference/gobject/tmpl/ (props changed)
trunk/gobject/gboxed.c
trunk/gobject/gboxed.h
trunk/gobject/gvaluetypes.c
Modified: trunk/gobject/gboxed.c
==============================================================================
--- trunk/gobject/gboxed.c (original)
+++ trunk/gobject/gboxed.c Sat Jun 21 10:19:58 2008
@@ -16,6 +16,20 @@
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:GBoxed
+ * @Short_description: A mechanism to wrap opaque C structures registered by the type system
+ * @See_also:#GParamSpecBoxed, g_param_spec_boxed()
+ *
+ * GBoxed is a generic wrapper mechanism for arbitrary C structures. The only
+ * thing the type system needs to know about the structures is how to copy and
+ * free them, beyond that they are treated as opaque chunks of memory.
+ *
+ * Boxed types are useful for simple value-holder structures like rectangles or
+ * points. They can also be used for wrapping structures defined in non-GObject
+ * based libraries.
+ */
+
#include "gboxed.h"
#include "gbsearcharray.h"
@@ -347,6 +361,18 @@
return NULL;
}
+/**
+ * g_boxed_type_register_static:
+ * @name: Name of the new boxed type.
+ * @boxed_copy: Boxed structure copy function.
+ * @boxed_free: Boxed structure free function.
+ *
+ * This function creates a new %G_TYPE_BOXED derived type id for a new
+ * boxed type with name @name. Boxed type handling functions have to be
+ * provided to copy and free opaque boxed structures of this type.
+ *
+ * Returns: New %G_TYPE_BOXED derived type id for @name.
+ */
GType
g_boxed_type_register_static (const gchar *name,
GBoxedCopyFunc boxed_copy,
@@ -397,6 +423,15 @@
return type;
}
+/**
+ * g_boxed_copy:
+ * @boxed_type: The type of @src_boxed.
+ * @src_boxed: The boxed structure to be copied.
+ *
+ * Provide a copy of a boxed structure @src_boxed which is of type @boxed_type.
+ *
+ * Returns: The newly created copy of the boxed structure.
+ */
gpointer
g_boxed_copy (GType boxed_type,
gconstpointer src_boxed)
@@ -455,6 +490,13 @@
return dest_boxed;
}
+/**
+ * g_boxed_free:
+ * @boxed_type: The type of @boxed.
+ * @boxed: The boxed structure to be freed.
+ *
+ * Free the boxed structure @boxed which is of type @boxed_type.
+ */
void
g_boxed_free (GType boxed_type,
gpointer boxed)
Modified: trunk/gobject/gboxed.h
==============================================================================
--- trunk/gobject/gboxed.h (original)
+++ trunk/gobject/gboxed.h Sat Jun 21 10:19:58 2008
@@ -33,8 +33,25 @@
/* --- typedefs --- */
-typedef gpointer (*GBoxedCopyFunc) (gpointer boxed);
-typedef void (*GBoxedFreeFunc) (gpointer boxed);
+/**
+ * GBoxedCopyFunc:
+ * @boxed: The boxed structure to be copied.
+ *
+ * This function is provided by the user and should produce a copy of the passed
+ * in boxed structure.
+ *
+ * Returns: The newly created copy of the boxed structure.
+ */
+typedef gpointer (*GBoxedCopyFunc) (gpointer boxed);
+
+/**
+ * GBoxedFreeFunc:
+ * @boxed: The boxed structure to be freed.
+ *
+ * This function is provided by the user and should free the boxed
+ * structure passed.
+ */
+typedef void (*GBoxedFreeFunc) (gpointer boxed);
/* --- prototypes --- */
@@ -60,11 +77,66 @@
#define G_TYPE_CLOSURE (g_closure_get_type ())
#define G_TYPE_VALUE (g_value_get_type ())
#define G_TYPE_VALUE_ARRAY (g_value_array_get_type ())
+/**
+ * G_TYPE_DATE:
+ *
+ * The #GType for #GDate.
+ */
#define G_TYPE_DATE (g_date_get_type ())
+/**
+ * G_TYPE_STRV:
+ *
+ * The #GType for a boxed type holding a %NULL-terminated array of strings.
+ *
+ * The code fragments in the following example show the use of a property of
+ * type #G_TYPE_STRV with g_object_class_install_property(), g_object_set()
+ * and g_object_get().
+ *
+ * |[
+ * g_object_class_install_property (object_class,
+ * PROP_AUTHORS,
+ * g_param_spec_boxed ("authors",
+ * _("Authors"),
+ * _("List of authors"),
+ * G_TYPE_STRV,
+ * G_PARAM_READWRITE));
+ *
+ *
+ * gchar *authors[] = { "Owen", "Tim", NULL };
+ * g_object_set (obj, "authors", authors, NULL);
+ *
+ *
+ * gchar *writers[];
+ * g_object_get (obj, "authors", &writers, NULL);
+ * // do something with writers
+ * g_strfreev (writers);
+ * ]|
+ *
+ * Since: 2.4
+ */
#define G_TYPE_STRV (g_strv_get_type ())
+/**
+ * G_TYPE_GSTRING:
+ *
+ * The #GType for #GString.
+ */
#define G_TYPE_GSTRING (g_gstring_get_type ())
-#define G_TYPE_HASH_TABLE (g_hash_table_get_type ())
-#define G_TYPE_REGEX (g_regex_get_type ())
+/**
+ * G_TYPE_HASH_TABLE:
+ *
+ * The #GType for a boxed type holding a #GHashTable reference.
+ *
+ * Since: 2.10
+ */
+#define G_TYPE_HASH_TABLE (g_hash_table_get_type ())
+/**
+ * G_TYPE_REGEX:
+ *
+ * The #GType for a boxed type holding a #GRegex reference.
+ *
+ * Since: 2.14
+ */
+#define G_TYPE_REGEX (g_regex_get_type ())
void g_value_take_boxed (GValue *value,
@@ -82,6 +154,11 @@
GType g_hash_table_get_type (void) G_GNUC_CONST;
GType g_regex_get_type (void) G_GNUC_CONST;
+/**
+ * GStrv:
+ *
+ * A C representable type name for #G_TYPE_STRV.
+ */
typedef gchar** GStrv;
G_END_DECLS
Modified: trunk/gobject/gvaluetypes.c
==============================================================================
--- trunk/gobject/gvaluetypes.c (original)
+++ trunk/gobject/gvaluetypes.c Sat Jun 21 10:19:58 2008
@@ -915,6 +915,15 @@
return contents;
}
+/**
+ * g_pointer_type_register_static:
+ * @name: the name of the new pointer type.
+ *
+ * Creates a new %G_TYPE_POINTER derived type id for a new
+ * pointer type with name @name.
+ *
+ * Returns: a new %G_TYPE_POINTER derived type id for @name.
+ */
GType
g_pointer_type_register_static (const gchar *name)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]