]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreeitem.c
Deprecate flag macros for toplevel, state, no window and composite child
[~andy/gtk] / gtk / gtktreeitem.c
index 9a8894d39988ab214a074508bc954ed8199a99f5..7b2ae9cea97b8929b9a72d436885c97e81daa974 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#undef GTK_DISABLE_DEPRECATED
+
+#include "config.h"
+
 #include "gtklabel.h"
 #include "gtkeventbox.h"
 #include "gtkpixmap.h"
 #include "gtkmain.h"
+#include "gtkmarshalers.h"
 #include "gtksignal.h"
 #define GTK_ENABLE_BROKEN
 #include "gtktree.h"
 #include "gtktreeitem.h"
+#include "gtkintl.h"
+
+#include "gtkalias.h"
 
 #include "tree_plus.xpm"
 #include "tree_minus.xpm"
@@ -81,10 +89,8 @@ static void gtk_real_tree_item_deselect (GtkItem          *item);
 static void gtk_real_tree_item_toggle   (GtkItem          *item);
 static void gtk_real_tree_item_expand   (GtkTreeItem      *item);
 static void gtk_real_tree_item_collapse (GtkTreeItem      *item);
-static void gtk_real_tree_item_expand   (GtkTreeItem      *item);
-static void gtk_real_tree_item_collapse (GtkTreeItem      *item);
 static void gtk_tree_item_destroy        (GtkObject *object);
-static void gtk_tree_item_subtree_button_click (GtkWidget *widget);
+static gint gtk_tree_item_subtree_button_click (GtkWidget *widget);
 static void gtk_tree_item_subtree_button_changed_state (GtkWidget *widget);
 
 static void gtk_tree_item_map(GtkWidget*);
@@ -115,6 +121,7 @@ gtk_tree_item_get_type (void)
         (GtkClassInitFunc) NULL,
       };
 
+      I_("GtkTreeItem");
       tree_item_type = gtk_type_unique (gtk_item_get_type (), &tree_item_info);
     }
 
@@ -156,45 +163,45 @@ gtk_tree_item_class_init (GtkTreeItemClass *class)
   class->collapse = gtk_real_tree_item_collapse;
 
   tree_item_signals[EXPAND_TREE] =
-    gtk_signal_new ("expand",
+    gtk_signal_new (I_("expand"),
                    GTK_RUN_FIRST,
                    GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkTreeItemClass, expand),
-                   gtk_marshal_VOID__VOID,
+                   _gtk_marshal_VOID__VOID,
                    GTK_TYPE_NONE, 0);
   tree_item_signals[COLLAPSE_TREE] =
-    gtk_signal_new ("collapse",
+    gtk_signal_new (I_("collapse"),
                    GTK_RUN_FIRST,
                    GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkTreeItemClass, collapse),
-                   gtk_marshal_VOID__VOID,
+                   _gtk_marshal_VOID__VOID,
                    GTK_TYPE_NONE, 0);
 }
 
 /* callback for event box mouse event */
-static void 
+static gint
 gtk_tree_item_subtree_button_click (GtkWidget *widget)
 {
   GtkTreeItem* item;
   
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_EVENT_BOX (widget));
+  g_return_val_if_fail (GTK_IS_EVENT_BOX (widget), FALSE);
   
   item = (GtkTreeItem*) gtk_object_get_user_data (GTK_OBJECT (widget));
   if (!GTK_WIDGET_IS_SENSITIVE (item))
-    return;
+    return FALSE;
   
   if (item->expanded)
     gtk_tree_item_collapse (item);
   else
     gtk_tree_item_expand (item);
+
+  return TRUE;
 }
 
 /* callback for event box state changed */
 static void
 gtk_tree_item_subtree_button_changed_state (GtkWidget *widget)
 {
-  g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_EVENT_BOX (widget));
   
   if (GTK_WIDGET_VISIBLE (widget))
@@ -215,9 +222,6 @@ static void
 gtk_tree_item_init (GtkTreeItem *tree_item)
 {
   GtkWidget *eventbox, *pixmapwid;
-  
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   tree_item->expanded = FALSE;
   tree_item->subtree = NULL;
@@ -226,14 +230,14 @@ gtk_tree_item_init (GtkTreeItem *tree_item)
   /* create an event box containing one pixmaps */
   eventbox = gtk_event_box_new();
   gtk_widget_set_events (eventbox, GDK_BUTTON_PRESS_MASK);
-  gtk_signal_connect(GTK_OBJECT(eventbox), "state_changed",
-                    (GtkSignalFunc)gtk_tree_item_subtree_button_changed_state, 
+  gtk_signal_connect(GTK_OBJECT(eventbox), "state-changed",
+                    G_CALLBACK (gtk_tree_item_subtree_button_changed_state),
                     (gpointer)NULL);
   gtk_signal_connect(GTK_OBJECT(eventbox), "realize",
-                    (GtkSignalFunc)gtk_tree_item_subtree_button_changed_state, 
+                    G_CALLBACK (gtk_tree_item_subtree_button_changed_state),
                     (gpointer)NULL);
-  gtk_signal_connect(GTK_OBJECT(eventbox), "button_press_event",
-                    (GtkSignalFunc)gtk_tree_item_subtree_button_click,
+  gtk_signal_connect(GTK_OBJECT(eventbox), "button-press-event",
+                    G_CALLBACK (gtk_tree_item_subtree_button_click),
                     (gpointer)NULL);
   gtk_object_set_user_data(GTK_OBJECT(eventbox), tree_item);
   tree_item->pixmaps_box = eventbox;
@@ -244,8 +248,7 @@ gtk_tree_item_init (GtkTreeItem *tree_item)
     gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid);
   gtk_widget_show (pixmapwid);
   tree_item->plus_pix_widget = pixmapwid;
-  gtk_widget_ref (tree_item->plus_pix_widget);
-  gtk_object_sink (GTK_OBJECT (tree_item->plus_pix_widget));
+  g_object_ref_sink (tree_item->plus_pix_widget);
   
   /* create pixmap for button '-' */
   pixmapwid = gtk_type_new (gtk_pixmap_get_type ());
@@ -253,8 +256,7 @@ gtk_tree_item_init (GtkTreeItem *tree_item)
     gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid);
   gtk_widget_show (pixmapwid);
   tree_item->minus_pix_widget = pixmapwid;
-  gtk_widget_ref (tree_item->minus_pix_widget);
-  gtk_object_sink (GTK_OBJECT (tree_item->minus_pix_widget));
+  g_object_ref_sink (tree_item->minus_pix_widget);
   
   gtk_widget_set_parent (eventbox, GTK_WIDGET (tree_item));
 }
@@ -291,9 +293,7 @@ void
 gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
                           GtkWidget   *subtree)
 {
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
-  g_return_if_fail (subtree != NULL);
   g_return_if_fail (GTK_IS_TREE (subtree));
 
   if (tree_item->subtree)
@@ -315,23 +315,11 @@ gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
     gtk_widget_hide (subtree);
 
   gtk_widget_set_parent (subtree, GTK_WIDGET (tree_item)->parent);
-
-  if (GTK_WIDGET_REALIZED (subtree->parent))
-    gtk_widget_realize (subtree);
-
-  if (GTK_WIDGET_VISIBLE (subtree->parent) && GTK_WIDGET_VISIBLE (subtree))
-    {
-      if (GTK_WIDGET_MAPPED (subtree->parent))
-       gtk_widget_map (subtree);
-
-      gtk_widget_queue_resize (subtree);
-    }
 }
 
 void
 gtk_tree_item_select (GtkTreeItem *tree_item)
 {
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   gtk_item_select (GTK_ITEM (tree_item));
@@ -340,7 +328,6 @@ gtk_tree_item_select (GtkTreeItem *tree_item)
 void
 gtk_tree_item_deselect (GtkTreeItem *tree_item)
 {
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   gtk_item_deselect (GTK_ITEM (tree_item));
@@ -349,7 +336,6 @@ gtk_tree_item_deselect (GtkTreeItem *tree_item)
 void
 gtk_tree_item_expand (GtkTreeItem *tree_item)
 {
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[EXPAND_TREE], NULL);
@@ -358,7 +344,6 @@ gtk_tree_item_expand (GtkTreeItem *tree_item)
 void
 gtk_tree_item_collapse (GtkTreeItem *tree_item)
 {
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[COLLAPSE_TREE], NULL);
@@ -371,7 +356,6 @@ gtk_tree_item_add_pixmaps (GtkTreeItem *tree_item)
   GdkColormap *colormap;
   GtkTreePixmaps *pixmap_node = NULL;
 
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   if (tree_item->pixmaps)
@@ -400,7 +384,7 @@ gtk_tree_item_add_pixmaps (GtkTreeItem *tree_item)
       pixmap_node = g_new (GtkTreePixmaps, 1);
 
       pixmap_node->colormap = colormap;
-      gdk_colormap_ref (colormap);
+      g_object_ref (colormap);
 
       pixmap_node->refcount = 1;
 
@@ -409,14 +393,14 @@ gtk_tree_item_add_pixmaps (GtkTreeItem *tree_item)
        gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window,
                                      &pixmap_node->mask_plus,
                                      NULL,
-                                     tree_plus);
+                                     (gchar **)tree_plus);
       
       /* create pixmaps for minus icon */
       pixmap_node->pixmap_minus = 
        gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window,
                                      &pixmap_node->mask_minus,
                                      NULL,
-                                     tree_minus);
+                                     (gchar **)tree_minus);
 
       tree_item->pixmaps = pixmaps = g_list_prepend (pixmaps, pixmap_node);
     }
@@ -430,7 +414,6 @@ gtk_tree_item_add_pixmaps (GtkTreeItem *tree_item)
 static void
 gtk_tree_item_remove_pixmaps (GtkTreeItem *tree_item)
 {
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   if (tree_item->pixmaps)
@@ -441,11 +424,11 @@ gtk_tree_item_remove_pixmaps (GtkTreeItem *tree_item)
       
       if (--pixmap_node->refcount == 0)
        {
-         gdk_colormap_unref (pixmap_node->colormap);
-         gdk_pixmap_unref (pixmap_node->pixmap_plus);
-         gdk_bitmap_unref (pixmap_node->mask_plus);
-         gdk_pixmap_unref (pixmap_node->pixmap_minus);
-         gdk_bitmap_unref (pixmap_node->mask_minus);
+         g_object_unref (pixmap_node->colormap);
+         g_object_unref (pixmap_node->pixmap_plus);
+         g_object_unref (pixmap_node->mask_plus);
+         g_object_unref (pixmap_node->pixmap_minus);
+         g_object_unref (pixmap_node->mask_minus);
          
          pixmaps = g_list_remove_link (pixmaps, tree_item->pixmaps);
          g_list_free_1 (tree_item->pixmaps);
@@ -458,13 +441,9 @@ gtk_tree_item_remove_pixmaps (GtkTreeItem *tree_item)
 
 static void
 gtk_tree_item_realize (GtkWidget *widget)
-{    
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (widget));
+{
+  GTK_WIDGET_CLASS (parent_class)->realize (widget);
 
-  if (GTK_WIDGET_CLASS (parent_class)->realize)
-    (* GTK_WIDGET_CLASS (parent_class)->realize) (widget);
-  
   gdk_window_set_background (widget->window, 
                             &widget->style->base[GTK_STATE_NORMAL]);
 
@@ -475,17 +454,10 @@ static void
 gtk_tree_item_size_request (GtkWidget      *widget,
                            GtkRequisition *requisition)
 {
-  GtkBin *bin;
-  GtkTreeItem* item;
+  GtkBin *bin = GTK_BIN (widget);
+  GtkTreeItem *item = GTK_TREE_ITEM (widget);
   GtkRequisition child_requisition;
 
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (widget));
-  g_return_if_fail (requisition != NULL);
-
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM(widget);
-
   requisition->width = (GTK_CONTAINER (widget)->border_width +
                        widget->style->xthickness) * 2;
   requisition->height = GTK_CONTAINER (widget)->border_width * 2;
@@ -512,25 +484,18 @@ static void
 gtk_tree_item_size_allocate (GtkWidget     *widget,
                             GtkAllocation *allocation)
 {
-  GtkBin *bin;
-  GtkTreeItem* item;
+  GtkBin *bin = GTK_BIN (widget);
+  GtkTreeItem *item = GTK_TREE_ITEM (widget);
   GtkAllocation child_allocation;
   gint border_width;
   int temp;
 
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (widget));
-  g_return_if_fail (allocation != NULL);
-
   widget->allocation = *allocation;
   if (GTK_WIDGET_REALIZED (widget))
     gdk_window_move_resize (widget->window,
                            allocation->x, allocation->y,
                            allocation->width, allocation->height);
 
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM(widget);
-
   if (bin->child)
     {
       border_width = (GTK_CONTAINER (widget)->border_width +
@@ -566,7 +531,6 @@ gtk_tree_item_draw_lines (GtkWidget *widget)
   guint lx1, ly1, lx2, ly2;
   GdkGC* gc;
 
-  g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (widget));
 
   item = GTK_TREE_ITEM(widget);
@@ -630,14 +594,9 @@ static void
 gtk_tree_item_paint (GtkWidget    *widget,
                     GdkRectangle *area)
 {
-  GtkBin *bin;
   GdkRectangle child_area, item_area;
   GtkTreeItem* tree_item;
 
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (widget));
-  g_return_if_fail (area != NULL);
-
   /* FIXME: We should honor tree->view_mode, here - I think
    * the desired effect is that when the mode is VIEW_ITEM,
    * only the subitem is drawn as selected, not the entire
@@ -646,7 +605,6 @@ gtk_tree_item_paint (GtkWidget    *widget,
    */
   if (GTK_WIDGET_DRAWABLE (widget))
     {
-      bin = GTK_BIN (widget);
       tree_item = GTK_TREE_ITEM(widget);
 
       if (widget->state == GTK_STATE_NORMAL)
@@ -658,7 +616,7 @@ gtk_tree_item_paint (GtkWidget    *widget,
        {
          if (!GTK_WIDGET_IS_SENSITIVE (widget)) 
            gtk_paint_flat_box(widget->style, widget->window,
-                              widget->state, GTK_STATE_INSENSITIVE,
+                              widget->state, GTK_SHADOW_NONE,
                               area, widget, "treeitem",
                               0, 0, -1, -1);
          else
@@ -684,15 +642,20 @@ gtk_tree_item_paint (GtkWidget    *widget,
          if (tree_item->pixmaps_box && 
              GTK_WIDGET_VISIBLE(tree_item->pixmaps_box) &&
              gtk_widget_intersect (tree_item->pixmaps_box, area, &child_area))
-           gtk_widget_draw (tree_item->pixmaps_box, &child_area);
+            {
+              gtk_widget_queue_draw_area (tree_item->pixmaps_box,
+                                          child_area.x, child_area.y,
+                                          child_area.width, child_area.height);
+              gdk_window_process_updates (tree_item->pixmaps_box->window, TRUE);
+            }
        }
 
       if (GTK_WIDGET_HAS_FOCUS (widget))
-       gtk_paint_focus (widget->style, widget->window,
+       gtk_paint_focus (widget->style, widget->window, GTK_WIDGET_STATE (widget),
                         NULL, widget, "treeitem",
                         0, 0,
-                        widget->allocation.width - 1,
-                        widget->allocation.height - 1);
+                        widget->allocation.width,
+                        widget->allocation.height);
       
     }
 }
@@ -701,40 +664,61 @@ static gint
 gtk_tree_item_button_press (GtkWidget      *widget,
                            GdkEventButton *event)
 {
-
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE_ITEM (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
   if (event->type == GDK_BUTTON_PRESS
        && GTK_WIDGET_IS_SENSITIVE(widget)
        && !GTK_WIDGET_HAS_FOCUS (widget))
       gtk_widget_grab_focus (widget);
 
-  return FALSE;
+  return (event->type == GDK_BUTTON_PRESS && GTK_WIDGET_IS_SENSITIVE(widget));
+}
+
+static void
+gtk_tree_item_expose_child (GtkWidget *child,
+                            gpointer   client_data)
+{
+  struct {
+    GtkWidget *container;
+    GdkEventExpose *event;
+  } *data = client_data;
+
+  if (GTK_WIDGET_DRAWABLE (child) &&
+      !gtk_widget_get_has_window (child) &&
+      (child->window == data->event->window))
+    {
+      GdkEvent *child_event = gdk_event_new (GDK_EXPOSE);
+      child_event->expose = *data->event;
+      g_object_ref (child_event->expose.window);
+
+      child_event->expose.region = gtk_widget_region_intersect (child,
+                                                               data->event->region);
+      if (!gdk_region_empty (child_event->expose.region))
+        {
+          gdk_region_get_clipbox (child_event->expose.region, &child_event->expose.area);
+          gtk_widget_send_expose (child, child_event);
+       }
+      gdk_event_free (child_event);
+    }
 }
 
 static gint
 gtk_tree_item_expose (GtkWidget      *widget,
                      GdkEventExpose *event)
 {
-  GdkEventExpose child_event;
-  GtkBin *bin;
-
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE_ITEM (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
+  struct {
+    GtkWidget *container;
+    GdkEventExpose *event;
+  } data;
 
   if (GTK_WIDGET_DRAWABLE (widget))
     {
-      bin = GTK_BIN (widget);
-      
       gtk_tree_item_paint (widget, &event->area);
 
-      child_event = *event;
-      if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) &&
-         gtk_widget_intersect (bin->child, &event->area, &child_event.area))
-       gtk_widget_event (bin->child, (GdkEvent*) &child_event);
+      data.container = widget;
+      data.event = event;
+
+      gtk_container_forall (GTK_CONTAINER (widget),
+                            gtk_tree_item_expose_child,
+                            &data);
    }
 
   return FALSE;
@@ -742,14 +726,11 @@ gtk_tree_item_expose (GtkWidget      *widget,
 
 static void
 gtk_real_tree_item_select (GtkItem *item)
-{    
-  GtkTreeItem *tree_item;
+{
   GtkWidget *widget;
 
-  g_return_if_fail (item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (item));
 
-  tree_item = GTK_TREE_ITEM (item);
   widget = GTK_WIDGET (item);
 
   gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED);
@@ -764,7 +745,6 @@ gtk_real_tree_item_deselect (GtkItem *item)
   GtkTreeItem *tree_item;
   GtkWidget *widget;
 
-  g_return_if_fail (item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (item));
 
   tree_item = GTK_TREE_ITEM (item);
@@ -779,13 +759,12 @@ gtk_real_tree_item_deselect (GtkItem *item)
 static void
 gtk_real_tree_item_toggle (GtkItem *item)
 {
-  g_return_if_fail (item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (item));
 
   if(!GTK_WIDGET_IS_SENSITIVE(item))
     return;
 
-  if (GTK_WIDGET (item)->parent && GTK_IS_TREE (GTK_WIDGET (item)->parent))
+  if (GTK_IS_TREE (GTK_WIDGET (item)->parent))
     gtk_tree_select_child (GTK_TREE (GTK_WIDGET (item)->parent),
                           GTK_WIDGET (item));
   else
@@ -807,7 +786,6 @@ gtk_real_tree_item_expand (GtkTreeItem *tree_item)
 {
   GtkTree* tree;
   
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
   
   if (tree_item->subtree && !tree_item->expanded)
@@ -836,7 +814,6 @@ gtk_real_tree_item_collapse (GtkTreeItem *tree_item)
 {
   GtkTree* tree;
   
-  g_return_if_fail (tree_item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
   
   if (tree_item->subtree && tree_item->expanded) 
@@ -863,26 +840,21 @@ gtk_real_tree_item_collapse (GtkTreeItem *tree_item)
 static void
 gtk_tree_item_destroy (GtkObject *object)
 {
-  GtkTreeItem* item;
+  GtkTreeItem* item = GTK_TREE_ITEM(object);
   GtkWidget* child;
 
-  g_return_if_fail (object != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (object));
-
 #ifdef TREE_DEBUG
   g_message("+ gtk_tree_item_destroy [object %#x]\n", (int)object);
 #endif /* TREE_DEBUG */
 
-  item = GTK_TREE_ITEM(object);
-
   /* free sub tree if it exist */
   child = item->subtree;
   if (child)
     {
-      gtk_widget_ref (child);
+      g_object_ref (child);
       gtk_widget_unparent (child);
       gtk_widget_destroy (child);
-      gtk_widget_unref (child);
+      g_object_unref (child);
       item->subtree = NULL;
     }
   
@@ -890,10 +862,10 @@ gtk_tree_item_destroy (GtkObject *object)
   child = item->pixmaps_box;
   if (child)
     {
-      gtk_widget_ref (child);
+      g_object_ref (child);
       gtk_widget_unparent (child);
       gtk_widget_destroy (child);
-      gtk_widget_unref (child);
+      g_object_unref (child);
       item->pixmaps_box = NULL;
     }
   
@@ -902,7 +874,7 @@ gtk_tree_item_destroy (GtkObject *object)
   if (item->plus_pix_widget)
     {
       gtk_widget_destroy (item->plus_pix_widget);
-      gtk_widget_unref (item->plus_pix_widget);
+      g_object_unref (item->plus_pix_widget);
       item->plus_pix_widget = NULL;
     }
   
@@ -910,7 +882,7 @@ gtk_tree_item_destroy (GtkObject *object)
   if (item->minus_pix_widget)
     {
       gtk_widget_destroy (item->minus_pix_widget);
-      gtk_widget_unref (item->minus_pix_widget);
+      g_object_unref (item->minus_pix_widget);
       item->minus_pix_widget = NULL;
     }
   
@@ -929,7 +901,6 @@ gtk_tree_item_destroy (GtkObject *object)
 void
 gtk_tree_item_remove_subtree (GtkTreeItem* item) 
 {
-  g_return_if_fail (item != NULL);
   g_return_if_fail (GTK_IS_TREE_ITEM(item));
   g_return_if_fail (item->subtree != NULL);
   
@@ -969,14 +940,8 @@ gtk_tree_item_remove_subtree (GtkTreeItem* item)
 static void
 gtk_tree_item_map (GtkWidget *widget)
 {
-  GtkBin *bin;
-  GtkTreeItem* item;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (widget));
-
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM(widget);
+  GtkBin *bin = GTK_BIN (widget);
+  GtkTreeItem* item = GTK_TREE_ITEM(widget);
 
   GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
 
@@ -996,15 +961,10 @@ gtk_tree_item_map (GtkWidget *widget)
 static void
 gtk_tree_item_unmap (GtkWidget *widget)
 {
-  GtkBin *bin;
-  GtkTreeItem* item;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (widget));
+  GtkBin *bin = GTK_BIN (widget);
+  GtkTreeItem* item = GTK_TREE_ITEM(widget);
 
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM(widget);
 
   gdk_window_hide (widget->window);
 
@@ -1025,18 +985,16 @@ gtk_tree_item_forall (GtkContainer *container,
                      GtkCallback   callback,
                      gpointer      callback_data)
 {
-  GtkBin *bin;
-  GtkTreeItem *tree_item;
-
-  g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM (container));
-  g_return_if_fail (callback != NULL);
-
-  bin = GTK_BIN (container);
-  tree_item = GTK_TREE_ITEM (container);
+  GtkBin *bin = GTK_BIN (container);
+  GtkTreeItem *tree_item = GTK_TREE_ITEM (container);
 
   if (bin->child)
     (* callback) (bin->child, callback_data);
   if (include_internals && tree_item->subtree)
     (* callback) (tree_item->subtree, callback_data);
+  if (include_internals && tree_item->pixmaps_box)
+    (* callback) (tree_item->pixmaps_box, callback_data);
 }
+
+#define __GTK_TREE_ITEM_C__
+#include "gtkaliasdef.c"