2000-10-05 01:04:57 +00:00
|
|
|
/* gtkrbtree.h
|
|
|
|
* Copyright (C) 2000 Red Hat, Inc., Jonathan Blandford <jrb@redhat.com>
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
|
|
|
* License along with this library; if not, write to the
|
|
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
2001-09-08 00:56:30 +00:00
|
|
|
/* A Red-Black Tree implementation used specifically by GtkTreeView.
|
|
|
|
*/
|
2000-10-05 01:04:57 +00:00
|
|
|
#ifndef __GTK_RBTREE_H__
|
|
|
|
#define __GTK_RBTREE_H__
|
|
|
|
|
2005-06-21 05:49:49 +00:00
|
|
|
#include <glib.h>
|
|
|
|
|
2005-06-21 05:35:43 +00:00
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
2000-10-05 01:04:57 +00:00
|
|
|
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
GTK_RBNODE_BLACK = 1 << 0,
|
|
|
|
GTK_RBNODE_RED = 1 << 1,
|
|
|
|
GTK_RBNODE_IS_PARENT = 1 << 2,
|
|
|
|
GTK_RBNODE_IS_SELECTED = 1 << 3,
|
|
|
|
GTK_RBNODE_IS_PRELIT = 1 << 4,
|
2001-10-25 20:32:40 +00:00
|
|
|
GTK_RBNODE_INVALID = 1 << 7,
|
2001-12-04 23:49:57 +00:00
|
|
|
GTK_RBNODE_COLUMN_INVALID = 1 << 8,
|
|
|
|
GTK_RBNODE_DESCENDANTS_INVALID = 1 << 9,
|
|
|
|
GTK_RBNODE_NON_COLORS = GTK_RBNODE_IS_PARENT |
|
|
|
|
GTK_RBNODE_IS_SELECTED |
|
|
|
|
GTK_RBNODE_IS_PRELIT |
|
|
|
|
GTK_RBNODE_INVALID |
|
|
|
|
GTK_RBNODE_COLUMN_INVALID |
|
|
|
|
GTK_RBNODE_DESCENDANTS_INVALID
|
2000-10-05 01:04:57 +00:00
|
|
|
} GtkRBNodeColor;
|
|
|
|
|
|
|
|
typedef struct _GtkRBTree GtkRBTree;
|
|
|
|
typedef struct _GtkRBNode GtkRBNode;
|
|
|
|
typedef struct _GtkRBTreeView GtkRBTreeView;
|
|
|
|
|
|
|
|
typedef void (*GtkRBTreeTraverseFunc) (GtkRBTree *tree,
|
2000-12-21 01:53:39 +00:00
|
|
|
GtkRBNode *node,
|
|
|
|
gpointer data);
|
2000-10-05 01:04:57 +00:00
|
|
|
|
|
|
|
struct _GtkRBTree
|
|
|
|
{
|
|
|
|
GtkRBNode *root;
|
|
|
|
GtkRBTree *parent_tree;
|
|
|
|
GtkRBNode *parent_node;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _GtkRBNode
|
|
|
|
{
|
remove validation idle
2001-02-08 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_destroy_layout): remove
validation idle
* demos/gtk-demo/main.c (create_tree): adjust to changes in text
cell renderer
* demos/pixbuf-demo.c (timeout): remove deprecated
gtk_widget_draw
* demos/testpixbuf-save.c (main): remove deprecated
gtk_drawing_area_size
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): allocate
buttons even if the model isn't setup. gtk_tree_view_check_dirty()
at the start of the allocation.
(gtk_tree_view_check_dirty): handle column->button == NULL, handle
unsetup or NULL model.
* gtk/gtkstyle.c (gtk_default_draw_flat_box): drawing for the
even/odd/sorted cells in the tree view.
* gtk/gtktreeselection.c (gtk_tree_selection_real_unselect_all):
bugfixes
* gtk/gtktreeview.c: assorted bugfixy stuff. Draw the row
backgrounds with draw_flat_box using different detail for even/odd
rows.
* gtk/gtkrbtree.c, gtkrbtree.h: Keep track of the parity of each
row, so we can draw the alternating colors thing
* gtk/gtktexttag.c (gtk_text_tag_set_property): if we change a
property from a synonym property, notify for the synonym.
Also, nuke the background_gdk_set and foreground_gdk_set synonyms
(gtk_text_tag_get_property): Always return the font, even if
all its fields aren't set
* gtk/gtkcellrenderertext.h (struct _GtkCellRendererText): don't
store the attr list; it leaves us with no way to change attributes
in _render according to the render flags, and no way to implement
get_property. Instead store all the specific text attributes.
Separate whether an attribute is enabled from its value. Sync all
properties with GtkTextTag, make them all consistent, etc.
* gtk/gtkcellrenderer.h: Add a flag GTK_CELL_RENDERER_SORTED so
renderers can highlight the sort row/column
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_property): use
accessor functions to get values; this has the side effect of
showing up which accessor functions were missing. Added those.
* gtk/gtktreeviewcolumn.h: Replace set_justification with
set_alignment, to be consistent with GtkLabel, GtkMisc
* gtk/gtktreeviewcolumn.c: Added code to display sort indicator
arrow.
* gtk/Makefile.am (gtk_public_h_sources): add gtktreesortable.h
* gtk/gtktreesortable.h: updates in here
2001-02-08 23:36:53 +00:00
|
|
|
guint flags : 14;
|
|
|
|
|
2000-10-05 01:04:57 +00:00
|
|
|
GtkRBNode *left;
|
|
|
|
GtkRBNode *right;
|
|
|
|
GtkRBNode *parent;
|
|
|
|
|
2001-01-19 22:39:19 +00:00
|
|
|
/* count is the number of nodes beneath us, plus 1 for ourselves.
|
|
|
|
* i.e. node->left->count + node->right->count + 1
|
|
|
|
*/
|
|
|
|
gint count;
|
2011-11-16 03:14:00 +00:00
|
|
|
/* count the number of total nodes beneath us, including nodes
|
|
|
|
* of children trees.
|
|
|
|
* i.e. node->left->count + node->right->count + node->children->root->count + 1
|
|
|
|
*/
|
|
|
|
guint total_count;
|
remove validation idle
2001-02-08 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_destroy_layout): remove
validation idle
* demos/gtk-demo/main.c (create_tree): adjust to changes in text
cell renderer
* demos/pixbuf-demo.c (timeout): remove deprecated
gtk_widget_draw
* demos/testpixbuf-save.c (main): remove deprecated
gtk_drawing_area_size
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): allocate
buttons even if the model isn't setup. gtk_tree_view_check_dirty()
at the start of the allocation.
(gtk_tree_view_check_dirty): handle column->button == NULL, handle
unsetup or NULL model.
* gtk/gtkstyle.c (gtk_default_draw_flat_box): drawing for the
even/odd/sorted cells in the tree view.
* gtk/gtktreeselection.c (gtk_tree_selection_real_unselect_all):
bugfixes
* gtk/gtktreeview.c: assorted bugfixy stuff. Draw the row
backgrounds with draw_flat_box using different detail for even/odd
rows.
* gtk/gtkrbtree.c, gtkrbtree.h: Keep track of the parity of each
row, so we can draw the alternating colors thing
* gtk/gtktexttag.c (gtk_text_tag_set_property): if we change a
property from a synonym property, notify for the synonym.
Also, nuke the background_gdk_set and foreground_gdk_set synonyms
(gtk_text_tag_get_property): Always return the font, even if
all its fields aren't set
* gtk/gtkcellrenderertext.h (struct _GtkCellRendererText): don't
store the attr list; it leaves us with no way to change attributes
in _render according to the render flags, and no way to implement
get_property. Instead store all the specific text attributes.
Separate whether an attribute is enabled from its value. Sync all
properties with GtkTextTag, make them all consistent, etc.
* gtk/gtkcellrenderer.h: Add a flag GTK_CELL_RENDERER_SORTED so
renderers can highlight the sort row/column
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_property): use
accessor functions to get values; this has the side effect of
showing up which accessor functions were missing. Added those.
* gtk/gtktreeviewcolumn.h: Replace set_justification with
set_alignment, to be consistent with GtkLabel, GtkMisc
* gtk/gtktreeviewcolumn.c: Added code to display sort indicator
arrow.
* gtk/Makefile.am (gtk_public_h_sources): add gtktreesortable.h
* gtk/gtktreesortable.h: updates in here
2001-02-08 23:36:53 +00:00
|
|
|
|
2001-01-19 22:39:19 +00:00
|
|
|
/* this is the total of sizes of
|
|
|
|
* node->left, node->right, our own height, and the height
|
|
|
|
* of all trees in ->children, iff children exists because
|
|
|
|
* the thing is expanded.
|
|
|
|
*/
|
2000-10-05 01:04:57 +00:00
|
|
|
gint offset;
|
remove validation idle
2001-02-08 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_destroy_layout): remove
validation idle
* demos/gtk-demo/main.c (create_tree): adjust to changes in text
cell renderer
* demos/pixbuf-demo.c (timeout): remove deprecated
gtk_widget_draw
* demos/testpixbuf-save.c (main): remove deprecated
gtk_drawing_area_size
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): allocate
buttons even if the model isn't setup. gtk_tree_view_check_dirty()
at the start of the allocation.
(gtk_tree_view_check_dirty): handle column->button == NULL, handle
unsetup or NULL model.
* gtk/gtkstyle.c (gtk_default_draw_flat_box): drawing for the
even/odd/sorted cells in the tree view.
* gtk/gtktreeselection.c (gtk_tree_selection_real_unselect_all):
bugfixes
* gtk/gtktreeview.c: assorted bugfixy stuff. Draw the row
backgrounds with draw_flat_box using different detail for even/odd
rows.
* gtk/gtkrbtree.c, gtkrbtree.h: Keep track of the parity of each
row, so we can draw the alternating colors thing
* gtk/gtktexttag.c (gtk_text_tag_set_property): if we change a
property from a synonym property, notify for the synonym.
Also, nuke the background_gdk_set and foreground_gdk_set synonyms
(gtk_text_tag_get_property): Always return the font, even if
all its fields aren't set
* gtk/gtkcellrenderertext.h (struct _GtkCellRendererText): don't
store the attr list; it leaves us with no way to change attributes
in _render according to the render flags, and no way to implement
get_property. Instead store all the specific text attributes.
Separate whether an attribute is enabled from its value. Sync all
properties with GtkTextTag, make them all consistent, etc.
* gtk/gtkcellrenderer.h: Add a flag GTK_CELL_RENDERER_SORTED so
renderers can highlight the sort row/column
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_property): use
accessor functions to get values; this has the side effect of
showing up which accessor functions were missing. Added those.
* gtk/gtktreeviewcolumn.h: Replace set_justification with
set_alignment, to be consistent with GtkLabel, GtkMisc
* gtk/gtktreeviewcolumn.c: Added code to display sort indicator
arrow.
* gtk/Makefile.am (gtk_public_h_sources): add gtktreesortable.h
* gtk/gtktreesortable.h: updates in here
2001-02-08 23:36:53 +00:00
|
|
|
|
|
|
|
/* Child trees */
|
2000-10-05 01:04:57 +00:00
|
|
|
GtkRBTree *children;
|
|
|
|
};
|
|
|
|
|
2001-12-04 23:49:57 +00:00
|
|
|
|
2000-10-05 01:04:57 +00:00
|
|
|
#define GTK_RBNODE_GET_COLOR(node) (node?(((node->flags>K_RBNODE_RED)==GTK_RBNODE_RED)?GTK_RBNODE_RED:GTK_RBNODE_BLACK):GTK_RBNODE_BLACK)
|
|
|
|
#define GTK_RBNODE_SET_COLOR(node,color) if((node->flags&color)!=color)node->flags=node->flags^(GTK_RBNODE_RED|GTK_RBNODE_BLACK)
|
|
|
|
#define GTK_RBNODE_GET_HEIGHT(node) (node->offset-(node->left->offset+node->right->offset+(node->children?node->children->root->offset:0)))
|
|
|
|
#define GTK_RBNODE_SET_FLAG(node, flag) G_STMT_START{ (node->flags|=flag); }G_STMT_END
|
|
|
|
#define GTK_RBNODE_UNSET_FLAG(node, flag) G_STMT_START{ (node->flags&=~(flag)); }G_STMT_END
|
|
|
|
#define GTK_RBNODE_FLAG_SET(node, flag) (node?(((node->flags&flag)==flag)?TRUE:FALSE):FALSE)
|
|
|
|
|
|
|
|
|
|
|
|
GtkRBTree *_gtk_rbtree_new (void);
|
|
|
|
void _gtk_rbtree_free (GtkRBTree *tree);
|
|
|
|
void _gtk_rbtree_remove (GtkRBTree *tree);
|
|
|
|
void _gtk_rbtree_destroy (GtkRBTree *tree);
|
|
|
|
GtkRBNode *_gtk_rbtree_insert_before (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node,
|
2001-12-04 23:49:57 +00:00
|
|
|
gint height,
|
|
|
|
gboolean valid);
|
2000-10-05 01:04:57 +00:00
|
|
|
GtkRBNode *_gtk_rbtree_insert_after (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node,
|
2001-12-04 23:49:57 +00:00
|
|
|
gint height,
|
|
|
|
gboolean valid);
|
2000-10-05 01:04:57 +00:00
|
|
|
void _gtk_rbtree_remove_node (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node);
|
2011-11-22 01:17:05 +00:00
|
|
|
gboolean _gtk_rbtree_is_nil (GtkRBNode *node);
|
2001-03-28 22:27:20 +00:00
|
|
|
void _gtk_rbtree_reorder (GtkRBTree *tree,
|
|
|
|
gint *new_order,
|
|
|
|
gint length);
|
2000-10-05 01:04:57 +00:00
|
|
|
GtkRBNode *_gtk_rbtree_find_count (GtkRBTree *tree,
|
|
|
|
gint count);
|
|
|
|
void _gtk_rbtree_node_set_height (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node,
|
|
|
|
gint height);
|
2001-10-25 20:32:40 +00:00
|
|
|
void _gtk_rbtree_node_mark_invalid(GtkRBTree *tree,
|
|
|
|
GtkRBNode *node);
|
|
|
|
void _gtk_rbtree_node_mark_valid (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node);
|
2001-12-04 23:49:57 +00:00
|
|
|
void _gtk_rbtree_column_invalid (GtkRBTree *tree);
|
2002-01-27 22:21:27 +00:00
|
|
|
void _gtk_rbtree_mark_invalid (GtkRBTree *tree);
|
2002-03-20 22:06:05 +00:00
|
|
|
void _gtk_rbtree_set_fixed_height (GtkRBTree *tree,
|
2005-07-08 19:17:10 +00:00
|
|
|
gint height,
|
|
|
|
gboolean mark_valid);
|
2000-10-05 01:04:57 +00:00
|
|
|
gint _gtk_rbtree_node_find_offset (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node);
|
2011-11-12 04:15:53 +00:00
|
|
|
guint _gtk_rbtree_node_get_index (GtkRBTree *tree,
|
remove validation idle
2001-02-08 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_destroy_layout): remove
validation idle
* demos/gtk-demo/main.c (create_tree): adjust to changes in text
cell renderer
* demos/pixbuf-demo.c (timeout): remove deprecated
gtk_widget_draw
* demos/testpixbuf-save.c (main): remove deprecated
gtk_drawing_area_size
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): allocate
buttons even if the model isn't setup. gtk_tree_view_check_dirty()
at the start of the allocation.
(gtk_tree_view_check_dirty): handle column->button == NULL, handle
unsetup or NULL model.
* gtk/gtkstyle.c (gtk_default_draw_flat_box): drawing for the
even/odd/sorted cells in the tree view.
* gtk/gtktreeselection.c (gtk_tree_selection_real_unselect_all):
bugfixes
* gtk/gtktreeview.c: assorted bugfixy stuff. Draw the row
backgrounds with draw_flat_box using different detail for even/odd
rows.
* gtk/gtkrbtree.c, gtkrbtree.h: Keep track of the parity of each
row, so we can draw the alternating colors thing
* gtk/gtktexttag.c (gtk_text_tag_set_property): if we change a
property from a synonym property, notify for the synonym.
Also, nuke the background_gdk_set and foreground_gdk_set synonyms
(gtk_text_tag_get_property): Always return the font, even if
all its fields aren't set
* gtk/gtkcellrenderertext.h (struct _GtkCellRendererText): don't
store the attr list; it leaves us with no way to change attributes
in _render according to the render flags, and no way to implement
get_property. Instead store all the specific text attributes.
Separate whether an attribute is enabled from its value. Sync all
properties with GtkTextTag, make them all consistent, etc.
* gtk/gtkcellrenderer.h: Add a flag GTK_CELL_RENDERER_SORTED so
renderers can highlight the sort row/column
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_property): use
accessor functions to get values; this has the side effect of
showing up which accessor functions were missing. Added those.
* gtk/gtktreeviewcolumn.h: Replace set_justification with
set_alignment, to be consistent with GtkLabel, GtkMisc
* gtk/gtktreeviewcolumn.c: Added code to display sort indicator
arrow.
* gtk/Makefile.am (gtk_public_h_sources): add gtktreesortable.h
* gtk/gtktreesortable.h: updates in here
2001-02-08 23:36:53 +00:00
|
|
|
GtkRBNode *node);
|
2011-07-07 07:52:24 +00:00
|
|
|
gboolean _gtk_rbtree_find_index (GtkRBTree *tree,
|
|
|
|
guint index,
|
|
|
|
GtkRBTree **new_tree,
|
|
|
|
GtkRBNode **new_node);
|
2000-10-05 01:04:57 +00:00
|
|
|
gint _gtk_rbtree_find_offset (GtkRBTree *tree,
|
|
|
|
gint offset,
|
|
|
|
GtkRBTree **new_tree,
|
|
|
|
GtkRBNode **new_node);
|
|
|
|
void _gtk_rbtree_traverse (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node,
|
|
|
|
GTraverseType order,
|
|
|
|
GtkRBTreeTraverseFunc func,
|
|
|
|
gpointer data);
|
2011-11-22 01:58:05 +00:00
|
|
|
GtkRBNode *_gtk_rbtree_first (GtkRBTree *tree);
|
2000-10-05 01:04:57 +00:00
|
|
|
GtkRBNode *_gtk_rbtree_next (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node);
|
|
|
|
GtkRBNode *_gtk_rbtree_prev (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node);
|
|
|
|
void _gtk_rbtree_next_full (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node,
|
|
|
|
GtkRBTree **new_tree,
|
|
|
|
GtkRBNode **new_node);
|
|
|
|
void _gtk_rbtree_prev_full (GtkRBTree *tree,
|
|
|
|
GtkRBNode *node,
|
|
|
|
GtkRBTree **new_tree,
|
|
|
|
GtkRBNode **new_node);
|
|
|
|
|
adapt to handle PangoColor
2001-01-26 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (convert_color): adapt to handle PangoColor
* gtk/gtktreeview.c (gtk_tree_view_widget_to_tree_coords): fix to
not offset by TREE_VIEW_HEADER_HEIGHT
(gtk_tree_view_tree_to_widget_coords): fix to not offset by
TREE_VIEW_HEADER_HEIGHT
* configure.in (included_loaders): for me, --with-included-loaders
generates the error "the specified loader yes does not exist",
i.e. the arg defaults to "yes", so change test for value ""
to test for value "yes", and include all loaders in that case.
* gtk/gtkrbtree.c (_gtk_rbtree_get_depth): new function
* gtk/gtktreeview.c (gtk_tree_view_get_cell_rect): fix to properly
handle TREE_VIEW_VERTICAL_SEPARATOR
(gtk_tree_view_bin_expose): fix to consider the row offset as
pointing halfway into vertical separator.
(gtk_tree_view_draw_node_focus_rect): ditto
* gtk/gtkdebug.h, gtk/gtkmain.c (gtk_init_check): Add
--gtk-debug=updates, which causes gdk_window_set_debug_updates
(TRUE) to be called.
* gdk/gdkwindow.c (gdk_window_set_debug_updates): Allow enabling a
debug mode where the invalid region is colored in on invalidate,
so you can see the flicker and know whether your redraw code is
doing a good job.
* gtk/gtktreeview.c (gtk_tree_view_queue_draw_node): Work in
tree window coordinates (clip rect is in tree window coords)
* gtk/Makefile.am: add gtktreednd.[hc]
* gtk/gtkliststore.c: implement gtktreednd interfaces.
* gtk/gtktreednd.c, gtk/gtktreednd.h: New interface to support
drag-and-drop data operations on a model (so we can set up tree
drag-and-drop automatically)
* gtk/testgtk.c: Add a window to change sensitivity in the
GtkLabel test; add a way to change the entry frame in GtkEntry
test
* gtk/gtkentry.c (gtk_entry_set_has_frame):
(gtk_entry_get_has_frame): new functions to remove the frame
around an entry
(gtk_entry_size_request): shrink requisition if no frame
(gtk_entry_draw_focus): don't draw frame if no frame
* gtk/gtkstyle.c (gtk_default_draw_check): draw custom look for
checks inside a cell renderer
(gtk_default_draw_option): ditto for options
* gtk/gtktreeviewcolumn.c (update_button_contents): add/remove
children from the alignment, not the button
(gtk_tree_view_column_init): ref/sink the column, to emulate
GObject refcounting.
* gtk/gtkcellrenderer.c (gtk_cell_renderer_init): ref/sink
* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
Use theme functions to draw the toggles
* gdk/gdkpango.c (gdk_pango_get_gc): use GdkRGB to alloc colors
* gdk/gdkpango.h, gdk/gdkpango.c: Add GdkPangoAttrStipple and
GdkPangoAttrEmbossed to use in rendering insensitive text
* gdk/gdkpango.c (gdk_draw_layout_line): render new properties
* gtk/gtkstyle.c (gtk_default_draw_layout): handle sensitivity
using new GDK features
2001-01-26 21:12:05 +00:00
|
|
|
gint _gtk_rbtree_get_depth (GtkRBTree *tree);
|
2000-10-05 01:04:57 +00:00
|
|
|
|
2005-06-21 05:35:43 +00:00
|
|
|
|
|
|
|
G_END_DECLS
|
|
|
|
|
2000-10-05 01:04:57 +00:00
|
|
|
|
|
|
|
#endif /* __GTK_RBTREE_H__ */
|