]> 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 e944a7c4a6236a730749fa055755425fc7533b07..7b2ae9cea97b8929b9a72d436885c97e81daa974 100644 (file)
@@ -26,7 +26,8 @@
 
 #undef GTK_DISABLE_DEPRECATED
 
-#include <config.h>
+#include "config.h"
+
 #include "gtklabel.h"
 #include "gtkeventbox.h"
 #include "gtkpixmap.h"
@@ -36,6 +37,8 @@
 #define GTK_ENABLE_BROKEN
 #include "gtktree.h"
 #include "gtktreeitem.h"
+#include "gtkintl.h"
+
 #include "gtkalias.h"
 
 #include "tree_plus.xpm"
@@ -118,7 +121,7 @@ gtk_tree_item_get_type (void)
         (GtkClassInitFunc) NULL,
       };
 
-      g_intern_static_string ("GtkTreeItem");
+      I_("GtkTreeItem");
       tree_item_type = gtk_type_unique (gtk_item_get_type (), &tree_item_info);
     }
 
@@ -160,14 +163,14 @@ 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_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),
@@ -219,8 +222,6 @@ static void
 gtk_tree_item_init (GtkTreeItem *tree_item)
 {
   GtkWidget *eventbox, *pixmapwid;
-  
-  g_return_if_fail (GTK_IS_TREE_ITEM (tree_item));
 
   tree_item->expanded = FALSE;
   tree_item->subtree = NULL;
@@ -229,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;
@@ -247,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 ());
@@ -256,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));
 }
@@ -442,12 +441,9 @@ gtk_tree_item_remove_pixmaps (GtkTreeItem *tree_item)
 
 static void
 gtk_tree_item_realize (GtkWidget *widget)
-{    
-  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]);
 
@@ -458,16 +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 (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;
@@ -494,24 +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 (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 +
@@ -610,13 +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 (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
@@ -625,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)
@@ -663,7 +642,12 @@ 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))
@@ -680,10 +664,6 @@ static gint
 gtk_tree_item_button_press (GtkWidget      *widget,
                            GdkEventButton *event)
 {
-
-  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))
@@ -702,7 +682,7 @@ gtk_tree_item_expose_child (GtkWidget *child,
   } *data = client_data;
 
   if (GTK_WIDGET_DRAWABLE (child) &&
-      GTK_WIDGET_NO_WINDOW (child) &&
+      !gtk_widget_get_has_window (child) &&
       (child->window == data->event->window))
     {
       GdkEvent *child_event = gdk_event_new (GDK_EXPOSE);
@@ -728,9 +708,6 @@ gtk_tree_item_expose (GtkWidget      *widget,
     GtkWidget *container;
     GdkEventExpose *event;
   } data;
-  
-  g_return_val_if_fail (GTK_IS_TREE_ITEM (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
 
   if (GTK_WIDGET_DRAWABLE (widget))
     {
@@ -749,13 +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 (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);
@@ -789,7 +764,7 @@ gtk_real_tree_item_toggle (GtkItem *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
@@ -865,25 +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 (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;
     }
   
@@ -891,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;
     }
   
@@ -903,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;
     }
   
@@ -911,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;
     }
   
@@ -969,13 +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 (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);
 
@@ -995,14 +961,10 @@ gtk_tree_item_map (GtkWidget *widget)
 static void
 gtk_tree_item_unmap (GtkWidget *widget)
 {
-  GtkBin *bin;
-  GtkTreeItem* item;
-
-  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);
 
@@ -1023,14 +985,8 @@ gtk_tree_item_forall (GtkContainer *container,
                      GtkCallback   callback,
                      gpointer      callback_data)
 {
-  GtkBin *bin;
-  GtkTreeItem *tree_item;
-
-  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);