-static void
-gtk_tree_draw (GtkWidget *widget,
- GdkRectangle *area)
-{
- GtkTree *tree;
- GtkWidget *subtree;
- GtkWidget *child;
- GdkRectangle child_area;
- GList *children;
-
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_TREE (widget));
- g_return_if_fail (area != NULL);
-
- if (GTK_WIDGET_DRAWABLE (widget))
- {
- tree = GTK_TREE (widget);
-
- children = tree->children;
- while (children)
- {
- child = children->data;
- children = children->next;
-
- if (gtk_widget_intersect (child, area, &child_area))
- gtk_widget_draw (child, &child_area);
-
- if((subtree = GTK_TREE_ITEM(child)->subtree) &&
- GTK_WIDGET_VISIBLE(subtree) &&
- gtk_widget_intersect (subtree, area, &child_area))
- gtk_widget_draw (subtree, &child_area);
- }
- }
-
-}
-
-static gint
-gtk_tree_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- GtkTree *tree;
- GtkWidget *child;
- GdkEventExpose child_event;
- GList *children;
-
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_TREE (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- if (GTK_WIDGET_DRAWABLE (widget))
- {
- tree = GTK_TREE (widget);
-
- child_event = *event;
-
- children = tree->children;
- while (children)
- {
- child = children->data;
- children = children->next;
-
- if (GTK_WIDGET_NO_WINDOW (child) &&
- gtk_widget_intersect (child, &event->area, &child_event.area))
- gtk_widget_event (child, (GdkEvent*) &child_event);
- }
- }
-
-
- return FALSE;