diff options
author | Havoc Pennington <hp@redhat.com> | 2001-02-08 23:36:53 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-02-08 23:36:53 +0000 |
commit | 4a3c8a367a012a1e098934585d46db8611e12420 (patch) | |
tree | 8d94100a2edcec233c24665e82b906f222a97c46 /gtk/gtkrbtree.h | |
parent | ea6096cc53f3e23dbe3d9adf33486126077ea94e (diff) | |
download | gtk+-4a3c8a367a012a1e098934585d46db8611e12420.tar.gz |
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
Diffstat (limited to 'gtk/gtkrbtree.h')
-rw-r--r-- | gtk/gtkrbtree.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/gtk/gtkrbtree.h b/gtk/gtkrbtree.h index 40c779320c..eea9160b62 100644 --- a/gtk/gtkrbtree.h +++ b/gtk/gtkrbtree.h @@ -33,6 +33,7 @@ typedef enum GTK_RBNODE_IS_SELECTED = 1 << 3, GTK_RBNODE_IS_PRELIT = 1 << 4, GTK_RBNODE_IS_VIEW = 1 << 5 + } GtkRBNodeColor; typedef struct _GtkRBTree GtkRBTree; @@ -53,7 +54,20 @@ struct _GtkRBTree struct _GtkRBNode { - guint flags; + guint flags : 14; + + /* We keep track of whether the aggregate count of children plus 1 + * for the node itself comes to an even number. The parity flag is + * the total count of children mod 2, where the total count of + * children gets computed in the same way that the total offset gets + * computed. i.e. not the same as the "count" field below which + * doesn't include children. We could replace parity with a + * full-size int field here, and then take % 2 to get the parity flag, + * but that would use extra memory. + */ + + guint parity : 1; + GtkRBNode *left; GtkRBNode *right; GtkRBNode *parent; @@ -62,13 +76,15 @@ struct _GtkRBNode * i.e. node->left->count + node->right->count + 1 */ gint count; - + /* 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. */ gint offset; + + /* Child trees */ GtkRBTree *children; }; @@ -101,6 +117,8 @@ void _gtk_rbtree_node_set_height (GtkRBTree *tree, gint height); gint _gtk_rbtree_node_find_offset (GtkRBTree *tree, GtkRBNode *node); +gint _gtk_rbtree_node_find_parity (GtkRBTree *tree, + GtkRBNode *node); gint _gtk_rbtree_find_offset (GtkRBTree *tree, gint offset, GtkRBTree **new_tree, @@ -127,7 +145,8 @@ gint _gtk_rbtree_get_depth (GtkRBTree *tree); /* This func just checks the integrity of the tree */ /* It will go away later. */ -void _gtk_rbtree_test (GtkRBTree *tree); +void _gtk_rbtree_test (const gchar *where, + GtkRBTree *tree); #ifdef __cplusplus |