]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkiconview.c
Unify handling of GtkWindow::resizable property
[~andy/gtk] / gtk / gtkiconview.c
index efa7ae54a0f09508c25b50b9c9f94ea8d82ae1fa..f8f830ae02ebb0c44dc7d1c92e7f4c90068045e9 100644 (file)
@@ -29,7 +29,6 @@
 #include "gtkcellrenderer.h"
 #include "gtkcellrenderertext.h"
 #include "gtkcellrendererpixbuf.h"
-#include "gtkcellsizerequest.h"
 #include "gtkmarshalers.h"
 #include "gtkbindings.h"
 #include "gtkdnd.h"
@@ -246,11 +245,8 @@ static void             gtk_icon_view_get_property              (GObject
                                                                 guint               prop_id,
                                                                 GValue             *value,
                                                                 GParamSpec         *pspec);
-
-/* GtkObject vfuncs */
-static void             gtk_icon_view_destroy                   (GtkObject          *object);
-
 /* GtkWidget vfuncs */
+static void             gtk_icon_view_destroy                   (GtkWidget          *widget);
 static void             gtk_icon_view_realize                   (GtkWidget          *widget);
 static void             gtk_icon_view_unrealize                 (GtkWidget          *widget);
 static void             gtk_icon_view_style_set                 (GtkWidget        *widget,
@@ -488,7 +484,6 @@ static void
 gtk_icon_view_class_init (GtkIconViewClass *klass)
 {
   GObjectClass *gobject_class;
-  GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
   GtkContainerClass *container_class;
   GtkBindingSet *binding_set;
@@ -498,7 +493,6 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
   g_type_class_add_private (klass, sizeof (GtkIconViewPrivate));
 
   gobject_class = (GObjectClass *) klass;
-  object_class = (GtkObjectClass *) klass;
   widget_class = (GtkWidgetClass *) klass;
   container_class = (GtkContainerClass *) klass;
 
@@ -506,8 +500,7 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
   gobject_class->set_property = gtk_icon_view_set_property;
   gobject_class->get_property = gtk_icon_view_get_property;
 
-  object_class->destroy = gtk_icon_view_destroy;
-  
+  widget_class->destroy = gtk_icon_view_destroy;
   widget_class->realize = gtk_icon_view_realize;
   widget_class->unrealize = gtk_icon_view_unrealize;
   widget_class->style_set = gtk_icon_view_style_set;
@@ -1137,46 +1130,6 @@ gtk_icon_view_init (GtkIconView *icon_view)
   icon_view->priv->draw_focus = TRUE;
 }
 
-static void
-gtk_icon_view_destroy (GtkObject *object)
-{
-  GtkIconView *icon_view;
-
-  icon_view = GTK_ICON_VIEW (object);
-  
-  gtk_icon_view_stop_editing (icon_view, TRUE);
-
-  gtk_icon_view_set_model (icon_view, NULL);
-  
-  if (icon_view->priv->layout_idle_id != 0)
-    {
-      g_source_remove (icon_view->priv->layout_idle_id);
-      icon_view->priv->layout_idle_id = 0;
-    }
-
-  if (icon_view->priv->scroll_to_path != NULL)
-    {
-      gtk_tree_row_reference_free (icon_view->priv->scroll_to_path);
-      icon_view->priv->scroll_to_path = NULL;
-    }
-
-  remove_scroll_timeout (icon_view);
-
-  if (icon_view->priv->hadjustment != NULL)
-    {
-      g_object_unref (icon_view->priv->hadjustment);
-      icon_view->priv->hadjustment = NULL;
-    }
-
-  if (icon_view->priv->vadjustment != NULL)
-    {
-      g_object_unref (icon_view->priv->vadjustment);
-      icon_view->priv->vadjustment = NULL;
-    }
-  
-  GTK_OBJECT_CLASS (gtk_icon_view_parent_class)->destroy (object);
-}
-
 /* GObject methods */
 static void
 gtk_icon_view_finalize (GObject *object)
@@ -1318,7 +1271,45 @@ gtk_icon_view_get_property (GObject      *object,
     }
 }
 
-/* GtkWidget signals */
+/* GtkWidget methods */
+static void
+gtk_icon_view_destroy (GtkWidget *widget)
+{
+  GtkIconView *icon_view = GTK_ICON_VIEW (widget);
+
+  gtk_icon_view_stop_editing (icon_view, TRUE);
+
+  gtk_icon_view_set_model (icon_view, NULL);
+
+  if (icon_view->priv->layout_idle_id != 0)
+    {
+      g_source_remove (icon_view->priv->layout_idle_id);
+      icon_view->priv->layout_idle_id = 0;
+    }
+
+  if (icon_view->priv->scroll_to_path != NULL)
+    {
+      gtk_tree_row_reference_free (icon_view->priv->scroll_to_path);
+      icon_view->priv->scroll_to_path = NULL;
+    }
+
+  remove_scroll_timeout (icon_view);
+
+  if (icon_view->priv->hadjustment != NULL)
+    {
+      g_object_unref (icon_view->priv->hadjustment);
+      icon_view->priv->hadjustment = NULL;
+    }
+
+  if (icon_view->priv->vadjustment != NULL)
+    {
+      g_object_unref (icon_view->priv->vadjustment);
+      icon_view->priv->vadjustment = NULL;
+    }
+
+  GTK_WIDGET_CLASS (gtk_icon_view_parent_class)->destroy (widget);
+}
+
 static void
 gtk_icon_view_realize (GtkWidget *widget)
 {
@@ -1450,8 +1441,8 @@ gtk_icon_view_size_request (GtkWidget      *widget,
       tmp_list = tmp_list->next;
 
       if (gtk_widget_get_visible (child->widget))
-        gtk_size_request_get_size (GTK_SIZE_REQUEST (child->widget),
-                                   &child_requisition, NULL);
+        gtk_widget_get_preferred_size (child->widget,
+                                       &child_requisition, NULL);
     }
 }
 
@@ -1563,7 +1554,6 @@ gtk_icon_view_draw (GtkWidget *widget,
   gint dest_index;
   GtkIconViewDropPosition dest_pos;
   GtkIconViewItem *dest_item = NULL;
-  int x, y;
 
   icon_view = GTK_ICON_VIEW (widget);
 
@@ -1572,8 +1562,7 @@ gtk_icon_view_draw (GtkWidget *widget,
 
   cairo_save (cr);
 
-  gdk_window_get_position (icon_view->priv->bin_window, &x, &y);
-  cairo_translate (cr, x, y);
+  gtk_cairo_transform_to_window (cr, widget, icon_view->priv->bin_window);
       
   /* If a layout has been scheduled, do it now so that all
    * cell view items have valid sizes before we proceed. */
@@ -2533,11 +2522,11 @@ gtk_icon_view_set_adjustments (GtkIconView   *icon_view,
   if (hadj)
     g_return_if_fail (GTK_IS_ADJUSTMENT (hadj));
   else
-    hadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
+    hadj = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
   if (vadj)
     g_return_if_fail (GTK_IS_ADJUSTMENT (vadj));
   else
-    vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
+    vadj = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
 
   if (icon_view->priv->hadjustment && (icon_view->priv->hadjustment != hadj))
     {
@@ -2969,9 +2958,9 @@ adjust_wrap_width (GtkIconView     *icon_view,
       pixbuf_info = g_list_nth_data (icon_view->priv->cell_list,
                                     icon_view->priv->pixbuf_cell);
 
-      gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (pixbuf_info->cell),
-                                      GTK_WIDGET (icon_view),
-                                      &min_size, NULL);
+      gtk_cell_renderer_get_preferred_size (pixbuf_info->cell,
+                                            GTK_WIDGET (icon_view),
+                                            &min_size, NULL);
 
       if (icon_view->priv->item_width > 0)
        item_width = icon_view->priv->item_width;
@@ -3031,9 +3020,9 @@ gtk_icon_view_calculate_item_size (GtkIconView     *icon_view,
       if (!gtk_cell_renderer_get_visible (info->cell))
        continue;
 
-      gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
-                                      GTK_WIDGET (icon_view),
-                                      &min_size, NULL);
+      gtk_cell_renderer_get_preferred_size (info->cell,
+                                            GTK_WIDGET (icon_view),
+                                            &min_size, NULL);
       item->box[info->position].width = min_size.width;
       item->box[info->position].height = min_size.height;
 
@@ -3113,9 +3102,9 @@ gtk_icon_view_calculate_item_size2 (GtkIconView     *icon_view,
            cell_area.height = max_height[i];
          }
 
-        gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
-                                        GTK_WIDGET (icon_view),
-                                        &min_size, NULL);
+        gtk_cell_renderer_get_preferred_size (info->cell,
+                                              GTK_WIDGET (icon_view),
+                                              &min_size, NULL);
         item->box[info->position].width  = min_size.width;
         item->box[info->position].height = min_size.height;