+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * gnode.c (g_node_insert_after): Added function to keep symetry
+ with g_node_insert_before.
+
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
+2000-09-29 Jonathan Blandford <jrb@redhat.com>
+
+ * glib/tmpl/trees-nary.sgml: Add g_node_insert_after().
+
Thu Sep 7 12:35:35 2000 Owen Taylor <otaylor@redhat.com>
* Some further makefile improvement.
<SUBSECTION>
g_node_insert
g_node_insert_before
+g_node_insert_after
g_node_append
g_node_prepend
@Returns: the inserted #GNode.
+<!-- ##### FUNCTION g_node_insert_after ##### -->
+<para>
+Inserts a #GNode beneath the parent after the given sibling.
+</para>
+
+@parent: the #GNode to place @node under.
+@sibling: the sibling #GNode to place @node after. If sibling is NULL,
+the node is inserted as the first child of @parent.
+@node: the #GNode to insert.
+@Returns: the inserted #GNode.
+
+
<!-- ##### MACRO g_node_append ##### -->
<para>
Inserts a #GNode as the last child of the given parent.
GNode* g_node_insert_before (GNode *parent,
GNode *sibling,
GNode *node);
+GNode* g_node_insert_after (GNode *parent,
+ GNode *sibling,
+ GNode *node);
GNode* g_node_prepend (GNode *parent,
GNode *node);
guint g_node_n_nodes (GNode *root,
GNode* g_node_insert_before (GNode *parent,
GNode *sibling,
GNode *node);
+GNode* g_node_insert_after (GNode *parent,
+ GNode *sibling,
+ GNode *node);
GNode* g_node_prepend (GNode *parent,
GNode *node);
guint g_node_n_nodes (GNode *root,
}
GNode*
+g_node_insert_after (GNode *parent,
+ GNode *sibling,
+ GNode *node)
+{
+ g_return_val_if_fail (parent != NULL, node);
+ g_return_val_if_fail (node != NULL, node);
+ g_return_val_if_fail (G_NODE_IS_ROOT (node), node);
+ if (sibling)
+ g_return_val_if_fail (sibling->parent == parent, node);
+
+ node->parent = parent;
+
+ if (sibling)
+ {
+ if (sibling->next)
+ {
+ sibling->next->prev = node;
+ }
+ node->next = sibling->next;
+ node->prev = sibling;
+ sibling->next = node;
+ }
+ else
+ {
+ if (parent->children)
+ {
+ node->next = parent->children;
+ parent->children->prev = node;
+ }
+ parent->children = node;
+ }
+
+ return node;
+}
+
+GNode*
g_node_prepend (GNode *parent,
GNode *node)
{
}
GNode*
+g_node_insert_after (GNode *parent,
+ GNode *sibling,
+ GNode *node)
+{
+ g_return_val_if_fail (parent != NULL, node);
+ g_return_val_if_fail (node != NULL, node);
+ g_return_val_if_fail (G_NODE_IS_ROOT (node), node);
+ if (sibling)
+ g_return_val_if_fail (sibling->parent == parent, node);
+
+ node->parent = parent;
+
+ if (sibling)
+ {
+ if (sibling->next)
+ {
+ sibling->next->prev = node;
+ }
+ node->next = sibling->next;
+ node->prev = sibling;
+ sibling->next = node;
+ }
+ else
+ {
+ if (parent->children)
+ {
+ node->next = parent->children;
+ parent->children->prev = node;
+ }
+ parent->children = node;
+ }
+
+ return node;
+}
+
+GNode*
g_node_prepend (GNode *parent,
GNode *node)
{
g_object_do_dispatch_param_changed (GObject *object,
GParamSpec *pspec)
{
- g_message ("NOTIFICATION: parameter `%s' changed on object `%s'",
+/* g_message ("NOTIFICATION: parameter `%s' changed on object `%s'",
pspec->name,
- G_OBJECT_TYPE_NAME (object));
+ G_OBJECT_TYPE_NAME (object));*/
}
static gboolean