2010-03-25 [paul] 3.7.5cvs39
[claws.git] / src / gtk / gtkcmclist.c
index 61ec7fb29b434e6c041138371639dc426a9ab141..cc15b0e001c6089767a4c0651670d0499fd14502 100644 (file)
 #include "claws-marshal.h"
 #include "gtkcmclist.h"
 #include <gdk/gdkkeysyms.h>
+#include "utils.h"
+#include "gtkutils.h"
 
 /* length of button_actions array */
 #define MAX_BUTTON 5
 
+/* the number rows memchunk expands at a time */
+#define CMCLIST_OPTIMUM_SIZE 64
+
 /* the width of the column resize windows */
 #define DRAG_WIDTH  6
 
@@ -375,11 +380,10 @@ static void get_cell_style   (GtkCMCList      *clist,
                              GtkStyle     **style,
                              GdkGC        **fg_gc,
                              GdkGC        **bg_gc);
-static gint draw_cell_pixmap (GdkWindow     *window,
+static gint draw_cell_pixbuf (GdkWindow     *window,
                              GdkRectangle  *clip_rectangle,
                              GdkGC         *fg_gc,
-                             GdkPixmap     *pixmap,
-                             GdkBitmap     *mask,
+                             GdkPixbuf     *pixbuf,
                              gint           x,
                              gint           y,
                              gint           width,
@@ -417,8 +421,7 @@ static void set_cell_contents      (GtkCMCList      *clist,
                                    GtkCMCellType    type,
                                    const gchar   *text,
                                    guint8         spacing,
-                                   GdkPixmap     *pixmap,
-                                   GdkBitmap     *mask);
+                                   GdkPixbuf     *pixbuf);
 static gint real_insert_row        (GtkCMCList      *clist,
                                    gint           row,
                                    gchar         *text[]);
@@ -504,7 +507,7 @@ gtk_cmclist_class_init (GtkCMCListClass *klass)
   widget_class = (GtkWidgetClass *) klass;
   container_class = (GtkContainerClass *) klass;
 
-  parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
+  parent_class = g_type_class_peek (GTK_TYPE_CONTAINER);
 
   object_class->finalize = gtk_cmclist_finalize;
   gtk_object_class->destroy = gtk_cmclist_destroy;
@@ -1026,7 +1029,7 @@ gtk_cmclist_get_arg (GObject *object,
       g_value_set_boolean(value, TRUE);
       for (i = 0; i < clist->columns; i++)
        if (clist->column[i].button &&
-           !GTK_WIDGET_SENSITIVE (clist->column[i].button))
+           !gtkut_widget_get_sensitive (clist->column[i].button))
          {
            g_value_set_boolean(value, FALSE);
            break;
@@ -1054,6 +1057,12 @@ gtk_cmclist_init (GtkCMCList *clist)
   GTK_CMCLIST_SET_FLAG (clist, CMCLIST_DRAW_DRAG_LINE);
   GTK_CMCLIST_SET_FLAG (clist, CMCLIST_USE_DRAG_ICONS);
 
+
+#if !GLIB_CHECK_VERSION(2,10,0)
+  clist->row_mem_chunk = NULL;
+  clist->cell_mem_chunk = NULL;
+#endif
+
   clist->freeze_count = 0;
 
   clist->rows = 0;
@@ -1129,6 +1138,22 @@ gtk_cmclist_constructor (GType                  type,
                                                                construct_properties);
   GtkCMCList *clist = GTK_CMCLIST (object);
   
+#if !GLIB_CHECK_VERSION(2,10,0)
+  if (!clist->row_mem_chunk)
+    clist->row_mem_chunk = g_mem_chunk_new ("clist row mem chunk",
+                                           sizeof (GtkCMCListRow),
+                                           sizeof (GtkCMCListRow) *
+                                           CMCLIST_OPTIMUM_SIZE, 
+                                           G_ALLOC_AND_FREE);
+  
+  if (!clist->cell_mem_chunk)
+    clist->cell_mem_chunk = g_mem_chunk_new ("clist cell mem chunk",
+                                            sizeof (GtkCMCell) * clist->columns,
+                                            sizeof (GtkCMCell) * clist->columns *
+                                            CMCLIST_OPTIMUM_SIZE, 
+                                            G_ALLOC_AND_FREE);
+#endif
+
   /* allocate memory for columns */
   clist->column = columns_new (clist);
   
@@ -1188,9 +1213,9 @@ gtk_cmclist_set_hadjustment (GtkCMCList      *clist,
 {
   GtkAdjustment *old_adjustment;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   if (adjustment)
-    g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
+    cm_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
   
   if (clist->hadjustment == adjustment)
     return;
@@ -1199,18 +1224,22 @@ gtk_cmclist_set_hadjustment (GtkCMCList      *clist,
 
   if (clist->hadjustment)
     {
-      g_signal_handlers_disconnect_matched(GTK_OBJECT (clist->hadjustment), G_SIGNAL_MATCH_DATA,
+      g_signal_handlers_disconnect_matched(G_OBJECT (clist->hadjustment), G_SIGNAL_MATCH_DATA,
                        0, 0, 0, 0, clist);
 
-      g_object_unref (GTK_OBJECT (clist->hadjustment));
+      g_object_unref (G_OBJECT (clist->hadjustment));
     }
 
   clist->hadjustment = adjustment;
 
   if (clist->hadjustment)
     {
+#if GLIB_CHECK_VERSION(2,10,0)
       g_object_ref_sink (clist->hadjustment);
-
+#else
+      gtk_object_ref (G_OBJECT (clist->hadjustment));
+      gtk_object_sink (G_OBJECT (clist->hadjustment));
+#endif
       g_signal_connect (G_OBJECT (clist->hadjustment), "changed",
                          G_CALLBACK( hadjustment_changed),
                          (gpointer) clist);
@@ -1226,7 +1255,7 @@ gtk_cmclist_set_hadjustment (GtkCMCList      *clist,
 GtkAdjustment *
 gtk_cmclist_get_hadjustment (GtkCMCList *clist)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   return clist->hadjustment;
 }
@@ -1237,9 +1266,9 @@ gtk_cmclist_set_vadjustment (GtkCMCList      *clist,
 {
   GtkAdjustment *old_adjustment;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   if (adjustment)
-    g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
+    cm_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
 
   if (clist->vadjustment == adjustment)
     return;
@@ -1248,21 +1277,26 @@ gtk_cmclist_set_vadjustment (GtkCMCList      *clist,
 
   if (clist->vadjustment)
     {
-      g_signal_handlers_disconnect_matched(GTK_OBJECT (clist->vadjustment), G_SIGNAL_MATCH_DATA,
+      g_signal_handlers_disconnect_matched(G_OBJECT (clist->vadjustment), G_SIGNAL_MATCH_DATA,
                        0, 0, 0, 0, clist);
-      g_object_unref (GTK_OBJECT (clist->vadjustment));
+      g_object_unref (G_OBJECT (clist->vadjustment));
     }
 
   clist->vadjustment = adjustment;
 
   if (clist->vadjustment)
     {
+#if GLIB_CHECK_VERSION(2,10,0)
       g_object_ref_sink (clist->vadjustment);
+#else
+      gtk_object_ref (G_OBJECT (clist->vadjustment));
+      gtk_object_sink (G_OBJECT (clist->vadjustment));
+#endif
 
-      g_signal_connect (GTK_OBJECT (clist->vadjustment), "changed",
+      g_signal_connect (G_OBJECT (clist->vadjustment), "changed",
                          G_CALLBACK(vadjustment_changed),
                          (gpointer) clist);
-      g_signal_connect (GTK_OBJECT (clist->vadjustment), "value_changed",
+      g_signal_connect (G_OBJECT (clist->vadjustment), "value_changed",
                          G_CALLBACK(vadjustment_value_changed),
                          (gpointer) clist);
     }
@@ -1274,7 +1308,7 @@ gtk_cmclist_set_vadjustment (GtkCMCList      *clist,
 GtkAdjustment *
 gtk_cmclist_get_vadjustment (GtkCMCList *clist)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   return clist->vadjustment;
 }
@@ -1294,11 +1328,11 @@ void
 gtk_cmclist_set_shadow_type (GtkCMCList      *clist,
                           GtkShadowType  type)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   clist->shadow_type = type;
 
-  if (GTK_WIDGET_VISIBLE (clist))
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)))
     gtk_widget_queue_resize (GTK_WIDGET (clist));
 }
 
@@ -1306,8 +1340,8 @@ void
 gtk_cmclist_set_selection_mode (GtkCMCList         *clist,
                              GtkSelectionMode  mode)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
-  g_return_if_fail (mode != GTK_SELECTION_NONE);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (mode != GTK_SELECTION_NONE);
 
   if (mode == clist->selection_mode)
     return;
@@ -1340,7 +1374,7 @@ gtk_cmclist_set_selection_mode (GtkCMCList         *clist,
 void
 gtk_cmclist_freeze (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   clist->freeze_count++;
 }
@@ -1348,7 +1382,7 @@ gtk_cmclist_freeze (GtkCMCList *clist)
 void
 gtk_cmclist_thaw (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist->freeze_count)
     {
@@ -1379,7 +1413,7 @@ gtk_cmclist_thaw (GtkCMCList *clist)
 void
 gtk_cmclist_column_titles_show (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (!GTK_CMCLIST_SHOW_TITLES(clist))
     {
@@ -1393,7 +1427,7 @@ gtk_cmclist_column_titles_show (GtkCMCList *clist)
 void 
 gtk_cmclist_column_titles_hide (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (GTK_CMCLIST_SHOW_TITLES(clist))
     {
@@ -1408,7 +1442,7 @@ void
 gtk_cmclist_column_title_active (GtkCMCList *clist,
                               gint      column)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1417,11 +1451,11 @@ gtk_cmclist_column_title_active (GtkCMCList *clist,
 
   clist->column[column].button_passive = FALSE;
 
-  g_signal_handlers_disconnect_matched(GTK_OBJECT (clist->column[column].button), G_SIGNAL_MATCH_FUNC,
+  g_signal_handlers_disconnect_matched(G_OBJECT (clist->column[column].button), G_SIGNAL_MATCH_FUNC,
                    0, 0, 0, column_title_passive_func, 0);
 
   GTK_WIDGET_SET_FLAGS (clist->column[column].button, GTK_CAN_FOCUS);
-  if (GTK_WIDGET_VISIBLE (clist))
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)))
     gtk_widget_queue_draw (clist->column[column].button);
 }
 
@@ -1431,7 +1465,7 @@ gtk_cmclist_column_title_passive (GtkCMCList *clist,
 {
   GtkButton *button;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1443,15 +1477,21 @@ gtk_cmclist_column_title_passive (GtkCMCList *clist,
   clist->column[column].button_passive = TRUE;
 
   if (button->button_down)
-    gtk_button_released (button);
+       g_signal_connect(G_OBJECT (clist->column[column].button),
+                        "button-release-event",
+                        G_CALLBACK(column_title_passive_func),
+                        NULL);
   if (button->in_button)
-    gtk_button_leave (button);
+       g_signal_connect(G_OBJECT (clist->column[column].button),
+                        "leave-notify-event",
+                        G_CALLBACK(column_title_passive_func),
+                        NULL);
 
   g_signal_connect (G_OBJECT (clist->column[column].button), "event",
                      G_CALLBACK(column_title_passive_func), NULL);
 
   GTK_WIDGET_UNSET_FLAGS (clist->column[column].button, GTK_CAN_FOCUS);
-  if (GTK_WIDGET_VISIBLE (clist))
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)))
     gtk_widget_queue_draw (clist->column[column].button);
 }
 
@@ -1460,7 +1500,7 @@ gtk_cmclist_column_titles_active (GtkCMCList *clist)
 {
   gint i;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   for (i = 0; i < clist->columns; i++)
     gtk_cmclist_column_title_active (clist, i);
@@ -1471,7 +1511,7 @@ gtk_cmclist_column_titles_passive (GtkCMCList *clist)
 {
   gint i;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   for (i = 0; i < clist->columns; i++)
     gtk_cmclist_column_title_passive (clist, i);
@@ -1487,7 +1527,7 @@ gtk_cmclist_set_column_title (GtkCMCList    *clist,
   GtkWidget *alignment = NULL;
   GtkWidget *label;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1537,7 +1577,7 @@ gtk_cmclist_set_column_title (GtkCMCList    *clist,
 
   /* if this button didn't previously exist, then the
    * column button positions have to be re-computed */
-  if (GTK_WIDGET_VISIBLE (clist) && new_button)
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)) && new_button)
     size_allocate_title_buttons (clist);
 }
 
@@ -1545,7 +1585,7 @@ gchar *
 gtk_cmclist_get_column_title (GtkCMCList *clist,
                            gint      column)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   if (column < 0 || column >= clist->columns)
     return NULL;
@@ -1561,7 +1601,7 @@ gtk_cmclist_set_column_widget (GtkCMCList  *clist,
   gint new_button = 0;
   GtkWidget *old_widget;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1591,7 +1631,7 @@ gtk_cmclist_set_column_widget (GtkCMCList  *clist,
 
   /* if this button didn't previously exist, then the
    * column button positions have to be re-computed */
-  if (GTK_WIDGET_VISIBLE (clist) && new_button)
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)) && new_button)
     size_allocate_title_buttons (clist);
 }
 
@@ -1599,7 +1639,7 @@ GtkWidget *
 gtk_cmclist_get_column_widget (GtkCMCList *clist,
                             gint      column)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   if (column < 0 || column >= clist->columns)
     return NULL;
@@ -1617,7 +1657,7 @@ gtk_cmclist_set_column_justification (GtkCMCList         *clist,
 {
   GtkWidget *alignment;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1662,7 +1702,7 @@ gtk_cmclist_set_column_visibility (GtkCMCList *clist,
                                 gint      column,
                                 gboolean  visible)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1701,7 +1741,7 @@ gtk_cmclist_set_column_resizeable (GtkCMCList *clist,
                                 gint      column,
                                 gboolean  resizeable)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1712,7 +1752,7 @@ gtk_cmclist_set_column_resizeable (GtkCMCList *clist,
   if (resizeable)
     clist->column[column].auto_resize = FALSE;
 
-  if (GTK_WIDGET_VISIBLE (clist))
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)))
     size_allocate_title_buttons (clist);
 }
 
@@ -1721,7 +1761,7 @@ gtk_cmclist_set_column_auto_resize (GtkCMCList *clist,
                                  gint      column,
                                  gboolean  auto_resize)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1741,7 +1781,7 @@ gtk_cmclist_set_column_auto_resize (GtkCMCList *clist,
        }
     }
 
-  if (GTK_WIDGET_VISIBLE (clist))
+  if (gtkut_widget_get_visible (GTK_WIDGET(clist)))
     size_allocate_title_buttons (clist);
 }
 
@@ -1751,7 +1791,7 @@ gtk_cmclist_columns_autosize (GtkCMCList *clist)
   gint i;
   gint width;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
 
   gtk_cmclist_freeze (clist);
   width = 0;
@@ -1775,7 +1815,7 @@ gtk_cmclist_optimal_column_width (GtkCMCList *clist,
   GList *list;
   gint width;
 
-  g_return_val_if_fail (GTK_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_CMCLIST (clist), 0);
 
   if (column < 0 || column >= clist->columns)
     return 0;
@@ -1804,12 +1844,12 @@ gtk_cmclist_set_column_width (GtkCMCList *clist,
                            gint      column,
                            gint      width)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
 
-  g_signal_emit (GTK_OBJECT (clist), clist_signals[RESIZE_COLUMN], 0,
+  g_signal_emit (G_OBJECT (clist), clist_signals[RESIZE_COLUMN], 0,
                   column, width);
 }
 
@@ -1818,7 +1858,7 @@ gtk_cmclist_set_column_min_width (GtkCMCList *clist,
                                gint      column,
                                gint      min_width)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1840,7 +1880,7 @@ gtk_cmclist_set_column_max_width (GtkCMCList *clist,
                                gint      column,
                                gint      max_width)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1923,7 +1963,7 @@ real_resize_column (GtkCMCList *clist,
                    gint      column,
                    gint      width)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1950,7 +1990,7 @@ real_resize_column (GtkCMCList *clist,
 static void
 abort_column_resize (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (!GTK_CMCLIST_IN_DRAG(clist))
     return;
@@ -1979,7 +2019,7 @@ size_allocate_title_buttons (GtkCMCList *clist)
   gint last_button = 0;
   gint i;
 
-  if (!GTK_WIDGET_REALIZED (clist))
+  if (!gtkut_widget_get_realized (GTK_WIDGET(clist)))
     return;
 
   button_allocation.x = clist->hoffset;
@@ -2172,15 +2212,19 @@ column_button_create (GtkCMCList *clist,
 
   gtk_widget_push_composite_child ();
   button = clist->column[column].button = gtk_button_new ();
+  GtkRcStyle *style = gtk_rc_style_new();
+  style->ythickness = 0;
+  gtk_widget_modify_style(clist->column[column].button, style);
+  g_object_unref(style);
   gtk_container_set_border_width(GTK_CONTAINER(button), 0);
   gtk_widget_pop_composite_child ();
 
-  if (GTK_WIDGET_REALIZED (clist) && clist->title_window)
+  if (gtkut_widget_get_realized (GTK_WIDGET(clist)) && clist->title_window)
     gtk_widget_set_parent_window (clist->column[column].button,
                                  clist->title_window);
   gtk_widget_set_parent (button, GTK_WIDGET (clist));
 
-  g_signal_connect (GTK_OBJECT (button), "clicked",
+  g_signal_connect (G_OBJECT (button), "clicked",
                      G_CALLBACK(column_button_clicked),
                      (gpointer) clist);
   gtk_widget_show (button);
@@ -2193,8 +2237,8 @@ column_button_clicked (GtkWidget *widget,
   gint i;
   GtkCMCList *clist;
 
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CMCLIST (data));
+  cm_return_if_fail (widget != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (data));
 
   clist = GTK_CMCLIST (data);
 
@@ -2203,7 +2247,7 @@ column_button_clicked (GtkWidget *widget,
     if (clist->column[i].button == widget)
       break;
 
-  g_signal_emit (GTK_OBJECT (clist), clist_signals[CLICK_COLUMN], 0, i);
+  g_signal_emit (G_OBJECT (clist), clist_signals[CLICK_COLUMN], 0, i);
 }
 
 static gint
@@ -2211,7 +2255,7 @@ column_title_passive_func (GtkWidget *widget,
                           GdkEvent  *event,
                           gpointer   data)
 {
-  g_return_val_if_fail (event != NULL, FALSE);
+  cm_return_val_if_fail (event != NULL, FALSE);
   
   switch (event->type)
     {
@@ -2234,8 +2278,8 @@ column_title_passive_func (GtkWidget *widget,
  *   gtk_cmclist_get_cell_type
  *   gtk_cmclist_set_text
  *   gtk_cmclist_get_text
- *   gtk_cmclist_set_pixmap
- *   gtk_cmclist_get_pixmap
+ *   gtk_cmclist_set_pixbuf
+ *   gtk_cmclist_get_pixbuf
  *   gtk_cmclist_set_pixtext
  *   gtk_cmclist_get_pixtext
  *   gtk_cmclist_set_shift
@@ -2247,7 +2291,7 @@ gtk_cmclist_get_cell_type (GtkCMCList *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
 
   if (row < 0 || row >= clist->rows)
     return -1;
@@ -2267,7 +2311,7 @@ gtk_cmclist_set_text (GtkCMCList    *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2278,7 +2322,7 @@ gtk_cmclist_set_text (GtkCMCList    *clist,
 
   /* if text is null, then the cell is empty */
   GTK_CMCLIST_GET_CLASS (clist)->set_cell_contents
-    (clist, clist_row, column, GTK_CMCELL_TEXT, text, 0, NULL, NULL);
+    (clist, clist_row, column, GTK_CMCELL_TEXT, text, 0, NULL);
 
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
@@ -2296,7 +2340,7 @@ gtk_cmclist_get_text (GtkCMCList  *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return 0;
@@ -2315,15 +2359,14 @@ gtk_cmclist_get_text (GtkCMCList  *clist,
 }
 
 void
-gtk_cmclist_set_pixmap (GtkCMCList  *clist,
+gtk_cmclist_set_pixbuf (GtkCMCList  *clist,
                      gint       row,
                      gint       column,
-                     GdkPixmap *pixmap,
-                     GdkBitmap *mask)
+                     GdkPixbuf *pixbuf)
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2332,12 +2375,10 @@ gtk_cmclist_set_pixmap (GtkCMCList  *clist,
 
   clist_row = ROW_ELEMENT (clist, row)->data;
   
-  g_object_ref (pixmap);
-  
-  if (mask) g_object_ref (mask);
+  g_object_ref (pixbuf);
   
   GTK_CMCLIST_GET_CLASS (clist)->set_cell_contents
-    (clist, clist_row, column, GTK_CMCELL_PIXMAP, NULL, 0, pixmap, mask);
+    (clist, clist_row, column, GTK_CMCELL_PIXBUF, NULL, 0, pixbuf);
 
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
@@ -2348,15 +2389,14 @@ gtk_cmclist_set_pixmap (GtkCMCList  *clist,
 }
 
 gint
-gtk_cmclist_get_pixmap (GtkCMCList   *clist,
+gtk_cmclist_get_pixbuf (GtkCMCList   *clist,
                      gint        row,
                      gint        column,
-                     GdkPixmap **pixmap,
-                     GdkBitmap **mask)
+                     GdkPixbuf **pixbuf)
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return 0;
@@ -2365,14 +2405,12 @@ gtk_cmclist_get_pixmap (GtkCMCList   *clist,
 
   clist_row = ROW_ELEMENT (clist, row)->data;
 
-  if (clist_row->cell[column].type != GTK_CMCELL_PIXMAP)
+  if (clist_row->cell[column].type != GTK_CMCELL_PIXBUF)
     return 0;
 
-  if (pixmap)
+  if (pixbuf)
   {
-    *pixmap = GTK_CMCELL_PIXMAP (clist_row->cell[column])->pixmap;
-    /* mask can be NULL */
-    *mask = GTK_CMCELL_PIXMAP (clist_row->cell[column])->mask;
+    *pixbuf = GTK_CMCELL_PIXBUF (clist_row->cell[column])->pixbuf;
   }
 
   return 1;
@@ -2384,12 +2422,11 @@ gtk_cmclist_set_pixtext (GtkCMCList    *clist,
                       gint         column,
                       const gchar *text,
                       guint8       spacing,
-                      GdkPixmap   *pixmap,
-                      GdkBitmap   *mask)
+                      GdkPixbuf   *pixbuf)
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2398,10 +2435,9 @@ gtk_cmclist_set_pixtext (GtkCMCList    *clist,
 
   clist_row = ROW_ELEMENT (clist, row)->data;
   
-  g_object_ref (pixmap);
-  if (mask) g_object_ref (mask);
+  g_object_ref (pixbuf);
   GTK_CMCLIST_GET_CLASS (clist)->set_cell_contents
-    (clist, clist_row, column, GTK_CMCELL_PIXTEXT, text, spacing, pixmap, mask);
+    (clist, clist_row, column, GTK_CMCELL_PIXTEXT, text, spacing, pixbuf);
 
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
@@ -2417,12 +2453,11 @@ gtk_cmclist_get_pixtext (GtkCMCList   *clist,
                       gint        column,
                       gchar     **text,
                       guint8     *spacing,
-                      GdkPixmap **pixmap,
-                      GdkBitmap **mask)
+                      GdkPixbuf **pixbuf)
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return 0;
@@ -2438,12 +2473,8 @@ gtk_cmclist_get_pixtext (GtkCMCList   *clist,
     *text = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->text;
   if (spacing)
     *spacing = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->spacing;
-  if (pixmap)
-    *pixmap = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixmap;
-
-  /* mask can be NULL */
-  if (mask)
-    *mask = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->mask;
+  if (pixbuf)
+    *pixbuf = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixbuf;
 
   return 1;
 }
@@ -2458,7 +2489,7 @@ gtk_cmclist_set_shift (GtkCMCList *clist,
   GtkRequisition requisition = { 0 };
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2492,16 +2523,14 @@ set_cell_contents (GtkCMCList    *clist,
                   GtkCMCellType  type,
                   const gchar *text,
                   guint8       spacing,
-                  GdkPixmap   *pixmap,
-                  GdkBitmap   *mask)
+                  GdkPixbuf   *pixbuf)
 {
   GtkRequisition requisition;
   gchar *old_text = NULL;
-  GdkPixmap *old_pixmap = NULL;
-  GdkBitmap *old_mask = NULL;
+  GdkPixbuf *old_pixbuf = NULL;
   
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
-  g_return_if_fail (clist_row != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (clist_row != NULL);
 
   if (clist->column[column].auto_resize &&
       !GTK_CMCLIST_AUTO_RESIZE_BLOCKED (clist))
@@ -2515,14 +2544,12 @@ set_cell_contents (GtkCMCList    *clist,
     case GTK_CMCELL_TEXT:
       old_text = GTK_CMCELL_TEXT (clist_row->cell[column])->text;
       break;
-    case GTK_CMCELL_PIXMAP:
-      old_pixmap = GTK_CMCELL_PIXMAP (clist_row->cell[column])->pixmap;
-      old_mask = GTK_CMCELL_PIXMAP (clist_row->cell[column])->mask;
+    case GTK_CMCELL_PIXBUF:
+      old_pixbuf = GTK_CMCELL_PIXBUF (clist_row->cell[column])->pixbuf;
       break;
     case GTK_CMCELL_PIXTEXT:
       old_text = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->text;
-      old_pixmap = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixmap;
-      old_mask = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->mask;
+      old_pixbuf = GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixbuf;
       break;
     case GTK_CMCELL_WIDGET:
       /* unimplemented */
@@ -2533,7 +2560,7 @@ set_cell_contents (GtkCMCList    *clist,
 
   clist_row->cell[column].type = GTK_CMCELL_EMPTY;
 
-  /* Note that pixmap and mask were already ref'ed by the caller
+  /* Note that pixbuf and mask were already ref'ed by the caller
    */
   switch (type)
     {
@@ -2544,23 +2571,20 @@ set_cell_contents (GtkCMCList    *clist,
          GTK_CMCELL_TEXT (clist_row->cell[column])->text = g_strdup (text);
        }
       break;
-    case GTK_CMCELL_PIXMAP:
-      if (pixmap)
+    case GTK_CMCELL_PIXBUF:
+      if (pixbuf)
        {
-         clist_row->cell[column].type = GTK_CMCELL_PIXMAP;
-         GTK_CMCELL_PIXMAP (clist_row->cell[column])->pixmap = pixmap;
-         /* We set the mask even if it is NULL */
-         GTK_CMCELL_PIXMAP (clist_row->cell[column])->mask = mask;
+         clist_row->cell[column].type = GTK_CMCELL_PIXBUF;
+         GTK_CMCELL_PIXBUF (clist_row->cell[column])->pixbuf = pixbuf;
        }
       break;
     case GTK_CMCELL_PIXTEXT:
-      if (text && pixmap)
+      if (text && pixbuf)
        {
          clist_row->cell[column].type = GTK_CMCELL_PIXTEXT;
          GTK_CMCELL_PIXTEXT (clist_row->cell[column])->text = g_strdup (text);
          GTK_CMCELL_PIXTEXT (clist_row->cell[column])->spacing = spacing;
-         GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixmap = pixmap;
-         GTK_CMCELL_PIXTEXT (clist_row->cell[column])->mask = mask;
+         GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixbuf = pixbuf;
        }
       break;
     default:
@@ -2572,10 +2596,8 @@ set_cell_contents (GtkCMCList    *clist,
     column_auto_resize (clist, clist_row, column, requisition.width);
 
   g_free (old_text);
-  if (old_pixmap)
-    g_object_unref (old_pixmap);
-  if (old_mask)
-    g_object_unref (old_mask);
+  if (old_pixbuf)
+    g_object_unref (old_pixbuf);
 }
 
 PangoLayout *
@@ -2628,8 +2650,8 @@ cell_size_request (GtkCMCList       *clist,
   PangoLayout *layout;
   PangoRectangle logical_rect;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
-  g_return_if_fail (requisition != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (requisition != NULL);
 
   layout = _gtk_cmclist_create_cell_layout (clist, clist_row, column);
   if (layout)
@@ -2653,14 +2675,14 @@ cell_size_request (GtkCMCList       *clist,
   switch (clist_row->cell[column].type)
     {
     case GTK_CMCELL_PIXTEXT:
-      gdk_drawable_get_size (GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixmap,
-                          &width, &height);
+      width = gdk_pixbuf_get_width(GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixbuf);
+      height = gdk_pixbuf_get_height(GTK_CMCELL_PIXTEXT (clist_row->cell[column])->pixbuf);
       requisition->width += width;
       requisition->height = MAX (requisition->height, height);      
       break;
-    case GTK_CMCELL_PIXMAP:
-      gdk_drawable_get_size (GTK_CMCELL_PIXMAP (clist_row->cell[column])->pixmap,
-                          &width, &height);
+    case GTK_CMCELL_PIXBUF:
+      width = gdk_pixbuf_get_width(GTK_CMCELL_PIXBUF (clist_row->cell[column])->pixbuf);
+      height = gdk_pixbuf_get_height(GTK_CMCELL_PIXBUF (clist_row->cell[column])->pixbuf);
       requisition->width += width;
       requisition->height = MAX (requisition->height, height);
       break;
@@ -2684,8 +2706,8 @@ gint
 gtk_cmclist_prepend (GtkCMCList    *clist,
                   gchar       *text[])
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
-  g_return_val_if_fail (text != NULL, -1);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
+  cm_return_val_if_fail (text != NULL, -1);
 
   return GTK_CMCLIST_GET_CLASS (clist)->insert_row (clist, 0, text);
 }
@@ -2694,8 +2716,8 @@ gint
 gtk_cmclist_append (GtkCMCList    *clist,
                  gchar       *text[])
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
-  g_return_val_if_fail (text != NULL, -1);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
+  cm_return_val_if_fail (text != NULL, -1);
 
   return GTK_CMCLIST_GET_CLASS (clist)->insert_row (clist, clist->rows, text);
 }
@@ -2705,8 +2727,8 @@ gtk_cmclist_insert (GtkCMCList    *clist,
                  gint         row,
                  gchar       *text[])
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
-  g_return_val_if_fail (text != NULL, -1);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
+  cm_return_val_if_fail (text != NULL, -1);
 
   if (row < 0 || row > clist->rows)
     row = clist->rows;
@@ -2724,7 +2746,7 @@ gtk_cmclist_remove (GtkCMCList *clist,
 void
 gtk_cmclist_clear (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   GTK_CMCLIST_GET_CLASS (clist)->clear (clist);
 }
@@ -2743,8 +2765,8 @@ real_insert_row (GtkCMCList *clist,
   gint i;
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
-  g_return_val_if_fail (text != NULL, -1);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
+  cm_return_val_if_fail (text != NULL, -1);
 
   /* return if out of bounds */
   if (row < 0 || row > clist->rows)
@@ -2757,7 +2779,7 @@ real_insert_row (GtkCMCList *clist,
   for (i = 0; i < clist->columns; i++)
     if (text[i])
       GTK_CMCLIST_GET_CLASS (clist)->set_cell_contents
-       (clist, clist_row, i, GTK_CMCELL_TEXT, text[i], 0, NULL ,NULL);
+       (clist, clist_row, i, GTK_CMCELL_TEXT, text[i], 0, NULL);
 
   if (!clist->rows)
     {
@@ -2838,7 +2860,7 @@ real_remove_row (GtkCMCList *clist,
   GList *list;
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   /* return if out of bounds */
   if (row < 0 || row > (clist->rows - 1))
@@ -2856,7 +2878,7 @@ real_remove_row (GtkCMCList *clist,
    * list to reflect the deincrimented indexies of rows after the
    * removal */
   if (clist_row->state == GTK_STATE_SELECTED)
-    g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+    g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                     row, -1, NULL);
 
   sync_selection (clist, row, SYNC_REMOVE);
@@ -2874,7 +2896,7 @@ real_remove_row (GtkCMCList *clist,
 
   if (clist->selection_mode == GTK_SELECTION_BROWSE && !clist->selection &&
       clist->focus_row >= 0)
-    g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+    g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                     clist->focus_row, -1, NULL);
 
   /* toast the row */
@@ -2897,7 +2919,7 @@ real_clear (GtkCMCList *clist)
   GList *free_list;
   gint i;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   /* free up the selection list */
   g_list_free (clist->selection);
@@ -2955,7 +2977,7 @@ real_row_move (GtkCMCList *clist,
   gint first, last;
   gint d;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (GTK_CMCLIST_AUTO_SORT(clist))
     return;
@@ -3031,7 +3053,7 @@ gtk_cmclist_moveto (GtkCMCList *clist,
                  gfloat    row_align,
                  gfloat    col_align)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < -1 || row >= clist->rows)
     return;
@@ -3069,7 +3091,7 @@ gtk_cmclist_set_row_height (GtkCMCList *clist,
 {
   GtkWidget *widget;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   widget = GTK_WIDGET (clist);
 
@@ -3118,11 +3140,11 @@ void
 gtk_cmclist_set_row_data_full (GtkCMCList         *clist,
                             gint              row,
                             gpointer          data,
-                            GtkDestroyNotify  destroy)
+                            GDestroyNotify  destroy)
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row > (clist->rows - 1))
     return;
@@ -3142,7 +3164,7 @@ gtk_cmclist_get_row_data (GtkCMCList *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   if (row < 0 || row > (clist->rows - 1))
     return NULL;
@@ -3158,7 +3180,7 @@ gtk_cmclist_find_row_from_data (GtkCMCList *clist,
   GList *list;
   gint n;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), -1);
 
   for (n = 0, list = clist->row_list; list; n++, list = list->next)
     if (GTK_CMCLIST_ROW (list)->data == data)
@@ -3174,8 +3196,8 @@ gtk_cmclist_swap_rows (GtkCMCList *clist,
 {
   gint first, last;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
-  g_return_if_fail (row1 != row2);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (row1 != row2);
 
   if (GTK_CMCLIST_AUTO_SORT(clist))
     return;
@@ -3196,7 +3218,7 @@ gtk_cmclist_row_move (GtkCMCList *clist,
                    gint      source_row,
                    gint      dest_row)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (GTK_CMCLIST_AUTO_SORT(clist))
     return;
@@ -3206,7 +3228,7 @@ gtk_cmclist_row_move (GtkCMCList *clist,
       source_row == dest_row)
     return;
 
-  g_signal_emit (GTK_OBJECT (clist), clist_signals[ROW_MOVE], 0,
+  g_signal_emit (G_OBJECT (clist), clist_signals[ROW_MOVE], 0,
                   source_row, dest_row);
 }
 
@@ -3216,7 +3238,7 @@ gtk_cmclist_row_is_visible (GtkCMCList *clist,
 {
   gint top;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return GTK_VISIBILITY_NONE;
@@ -3246,7 +3268,7 @@ gtk_cmclist_set_foreground (GtkCMCList       *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3257,7 +3279,7 @@ gtk_cmclist_set_foreground (GtkCMCList       *clist,
     {
       clist_row->foreground = *color;
       clist_row->fg_set = TRUE;
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
        gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (clist)),
                         &clist_row->foreground, TRUE, TRUE);
     }
@@ -3275,7 +3297,7 @@ gtk_cmclist_set_background (GtkCMCList       *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3286,7 +3308,7 @@ gtk_cmclist_set_background (GtkCMCList       *clist,
     {
       clist_row->background = *color;
       clist_row->bg_set = TRUE;
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
        gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (clist)),
                         &clist_row->background, TRUE, TRUE);
     }
@@ -3313,7 +3335,7 @@ gtk_cmclist_set_cell_style (GtkCMCList *clist,
   GtkRequisition requisition = { 0 };
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3332,7 +3354,7 @@ gtk_cmclist_set_cell_style (GtkCMCList *clist,
 
   if (clist_row->cell[column].style)
     {
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
         gtk_style_detach (clist_row->cell[column].style);
       g_object_unref (clist_row->cell[column].style);
     }
@@ -3343,7 +3365,7 @@ gtk_cmclist_set_cell_style (GtkCMCList *clist,
     {
       g_object_ref (clist_row->cell[column].style);
       
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
         clist_row->cell[column].style =
          gtk_style_attach (clist_row->cell[column].style,
                            clist->clist_window);
@@ -3366,7 +3388,7 @@ gtk_cmclist_get_cell_style (GtkCMCList *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   if (row < 0 || row >= clist->rows || column < 0 || column >= clist->columns)
     return NULL;
@@ -3386,7 +3408,7 @@ gtk_cmclist_set_row_style (GtkCMCList *clist,
   gint *old_width;
   gint i;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3411,7 +3433,7 @@ gtk_cmclist_set_row_style (GtkCMCList *clist,
 
   if (clist_row->style)
     {
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
         gtk_style_detach (clist_row->style);
       g_object_unref (clist_row->style);
     }
@@ -3422,7 +3444,7 @@ gtk_cmclist_set_row_style (GtkCMCList *clist,
     {
       g_object_ref (clist_row->style);
       
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
         clist_row->style = gtk_style_attach (clist_row->style,
                                             clist->clist_window);
     }
@@ -3447,7 +3469,7 @@ gtk_cmclist_get_row_style (GtkCMCList *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), NULL);
 
   if (row < 0 || row >= clist->rows)
     return NULL;
@@ -3473,7 +3495,7 @@ gtk_cmclist_set_selectable (GtkCMCList *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3494,7 +3516,7 @@ gtk_cmclist_set_selectable (GtkCMCList *clist,
          remove_grab (clist);
          GTK_CMCLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
        }
-      g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+      g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                       row, -1, NULL);
     }      
 }
@@ -3503,7 +3525,7 @@ gboolean
 gtk_cmclist_get_selectable (GtkCMCList *clist,
                          gint      row)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), FALSE);
 
   if (row < 0 || row >= clist->rows)
     return FALSE;
@@ -3516,14 +3538,14 @@ gtk_cmclist_select_row (GtkCMCList *clist,
                      gint      row,
                      gint      column)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
   if (column < -1 || column >= clist->columns)
     return;
 
-  g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+  g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                   row, column, NULL);
 }
 
@@ -3532,21 +3554,21 @@ gtk_cmclist_unselect_row (GtkCMCList *clist,
                        gint      row,
                        gint      column)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
   if (column < -1 || column >= clist->columns)
     return;
 
-  g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+  g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                   row, column, NULL);
 }
 
 void
 gtk_cmclist_select_all (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   GTK_CMCLIST_GET_CLASS (clist)->select_all (clist);
 }
@@ -3554,7 +3576,7 @@ gtk_cmclist_select_all (GtkCMCList *clist)
 void
 gtk_cmclist_unselect_all (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   GTK_CMCLIST_GET_CLASS (clist)->unselect_all (clist);
 }
@@ -3562,11 +3584,11 @@ gtk_cmclist_unselect_all (GtkCMCList *clist)
 void
 gtk_cmclist_undo_selection (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist->selection_mode == GTK_SELECTION_MULTIPLE &&
       (clist->undo_selection || clist->undo_unselection))
-    g_signal_emit (GTK_OBJECT (clist), clist_signals[UNDO_SELECTION], 0);
+    g_signal_emit (G_OBJECT (clist), clist_signals[UNDO_SELECTION], 0);
 }
 
 /* PRIVATE SELECTION FUNCTIONS
@@ -3616,12 +3638,12 @@ toggle_row (GtkCMCList *clist,
 
       if (clist_row->state == GTK_STATE_SELECTED)
        {
-         g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+         g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                           row, column, event);
          return;
        }
     case GTK_SELECTION_BROWSE:
-      g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+      g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                       row, column, event);
       break;
     default:
@@ -3654,15 +3676,15 @@ fake_toggle_row (GtkCMCList *clist,
 static gboolean
 clist_has_grab (GtkCMCList *clist)
 {
-  return (GTK_WIDGET_HAS_GRAB (clist) &&
+  return (gtkut_widget_has_grab (GTK_WIDGET(clist)) &&
          gdk_display_pointer_is_grabbed (gtk_widget_get_display (GTK_WIDGET (clist))));
 }
 
 static void
 toggle_focus_row (GtkCMCList *clist)
 {
-  g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (clist != 0);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist) ||
       clist->focus_row < 0 || clist->focus_row >= clist->rows)
@@ -3698,8 +3720,8 @@ toggle_focus_row (GtkCMCList *clist)
 static void
 toggle_add_mode (GtkCMCList *clist)
 {
-  g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (clist != 0);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   if (clist_has_grab (clist) ||
       clist->selection_mode != GTK_SELECTION_MULTIPLE)
@@ -3733,7 +3755,7 @@ real_select_row (GtkCMCList *clist,
   gint sel_row;
   gboolean row_selected;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row > (clist->rows - 1))
     return;
@@ -3754,7 +3776,7 @@ real_select_row (GtkCMCList *clist,
          if (row == sel_row)
            row_selected = TRUE;
          else
-           g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+           g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                             sel_row, column, event);
        }
 
@@ -3794,7 +3816,7 @@ real_unselect_row (GtkCMCList *clist,
 {
   GtkCMCListRow *clist_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (row < 0 || row > (clist->rows - 1))
     return;
@@ -3821,7 +3843,7 @@ real_unselect_row (GtkCMCList *clist,
 static void
 real_select_all (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist))
     return;
@@ -3861,7 +3883,7 @@ real_unselect_all (GtkCMCList *clist)
   GList *list;
   gint i;
  
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist))
     return;
@@ -3871,7 +3893,7 @@ real_unselect_all (GtkCMCList *clist)
     case GTK_SELECTION_BROWSE:
       if (clist->focus_row >= 0)
        {
-         g_signal_emit (GTK_OBJECT (clist),
+         g_signal_emit (G_OBJECT (clist),
                           clist_signals[SELECT_ROW], 0,
                           clist->focus_row, -1, NULL);
          return;
@@ -3896,7 +3918,7 @@ real_unselect_all (GtkCMCList *clist)
     {
       i = GPOINTER_TO_INT (list->data);
       list = list->next;
-      g_signal_emit (GTK_OBJECT (clist),
+      g_signal_emit (G_OBJECT (clist),
                       clist_signals[UNSELECT_ROW], 0, i, -1, NULL);
     }
 }
@@ -3946,7 +3968,7 @@ real_undo_selection (GtkCMCList *clist)
 {
   GList *work;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist) ||
       clist->selection_mode != GTK_SELECTION_MULTIPLE)
@@ -3961,17 +3983,17 @@ real_undo_selection (GtkCMCList *clist)
     }
 
   for (work = clist->undo_selection; work; work = work->next)
-    g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+    g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                     GPOINTER_TO_INT (work->data), -1, NULL);
 
   for (work = clist->undo_unselection; work; work = work->next)
     {
       /* g_print ("unselect %d\n",GPOINTER_TO_INT (work->data)); */
-      g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+      g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                       GPOINTER_TO_INT (work->data), -1, NULL);
     }
 
-  if (GTK_WIDGET_HAS_FOCUS(clist) && clist->focus_row != clist->undo_anchor)
+  if (gtkut_widget_has_focus(GTK_WIDGET(clist)) && clist->focus_row != clist->undo_anchor)
     {
       gtk_cmclist_draw_focus (GTK_WIDGET (clist));
       clist->focus_row = clist->undo_anchor;
@@ -4000,7 +4022,7 @@ set_anchor (GtkCMCList *clist,
            gint      anchor,
            gint      undo_anchor)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   if (clist->selection_mode != GTK_SELECTION_MULTIPLE || clist->anchor >= 0)
     return;
@@ -4061,7 +4083,7 @@ resync_selection (GtkCMCList *clist,
              if (clist_row->selectable)
                {
                  clist_row->state = GTK_STATE_SELECTED;
-                 g_signal_emit (GTK_OBJECT (clist),
+                 g_signal_emit (G_OBJECT (clist),
                                   clist_signals[UNSELECT_ROW], 0,
                                   row, -1, event);
                  clist->undo_selection = g_list_prepend
@@ -4082,7 +4104,7 @@ resync_selection (GtkCMCList *clist,
                if (GTK_CMCLIST_ROW (list)->state == GTK_STATE_NORMAL)
                  {
                    GTK_CMCLIST_ROW (list)->state = GTK_STATE_SELECTED;
-                   g_signal_emit (GTK_OBJECT (clist),
+                   g_signal_emit (G_OBJECT (clist),
                                     clist_signals[UNSELECT_ROW], 0,
                                     i, -1, event);
                    clist->undo_selection =
@@ -4110,7 +4132,7 @@ resync_selection (GtkCMCList *clist,
                if (GTK_CMCLIST_ROW (list)->state == GTK_STATE_NORMAL)
                  {
                    GTK_CMCLIST_ROW (list)->state = GTK_STATE_SELECTED;
-                   g_signal_emit (GTK_OBJECT (clist),
+                   g_signal_emit (G_OBJECT (clist),
                                     clist_signals[UNSELECT_ROW], 0,
                                     e, -1, event);
                    clist->undo_selection =
@@ -4130,7 +4152,7 @@ resync_selection (GtkCMCList *clist,
   
   clist->undo_unselection = g_list_reverse (clist->undo_unselection);
   for (list = clist->undo_unselection; list; list = list->next)
-    g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+    g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                     GPOINTER_TO_INT (list->data), -1, event);
 
   clist->anchor = -1;
@@ -4298,7 +4320,7 @@ update_extended_selection (GtkCMCList *clist,
 static void
 start_selection (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist))
     return;
@@ -4310,10 +4332,10 @@ start_selection (GtkCMCList *clist)
 static void
 end_selection (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (gdk_display_pointer_is_grabbed (gtk_widget_get_display (GTK_WIDGET (clist))) &&
-      GTK_WIDGET_HAS_FOCUS (clist))
+      gtkut_widget_has_focus (GTK_WIDGET(clist)))
     return;
 
   GTK_CMCLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
@@ -4325,7 +4347,7 @@ extend_selection (GtkCMCList      *clist,
                  gfloat         position,
                  gboolean       auto_start_selection)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist) ||
       clist->selection_mode != GTK_SELECTION_MULTIPLE)
@@ -4404,7 +4426,7 @@ gtk_cmclist_destroy (GtkObject *object)
   gint i;
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (object));
+  cm_return_if_fail (GTK_IS_CMCLIST (object));
 
   clist = GTK_CMCLIST (object);
 
@@ -4424,16 +4446,16 @@ gtk_cmclist_destroy (GtkObject *object)
   /* unref adjustments */
   if (clist->hadjustment)
     {
-      g_signal_handlers_disconnect_matched(GTK_OBJECT (clist->hadjustment), G_SIGNAL_MATCH_DATA,
+      g_signal_handlers_disconnect_matched(G_OBJECT (clist->hadjustment), G_SIGNAL_MATCH_DATA,
                        0, 0, 0, 0, clist);
-      g_object_unref (GTK_OBJECT (clist->hadjustment));
+      g_object_unref (G_OBJECT (clist->hadjustment));
       clist->hadjustment = NULL;
     }
   if (clist->vadjustment)
     {
-      g_signal_handlers_disconnect_matched(GTK_OBJECT (clist->vadjustment), G_SIGNAL_MATCH_DATA,
+      g_signal_handlers_disconnect_matched(G_OBJECT (clist->vadjustment), G_SIGNAL_MATCH_DATA,
                        0, 0, 0, 0, clist);
-      g_object_unref (GTK_OBJECT (clist->vadjustment));
+      g_object_unref (G_OBJECT (clist->vadjustment));
       clist->vadjustment = NULL;
     }
 
@@ -4456,12 +4478,16 @@ gtk_cmclist_finalize (GObject *object)
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (object));
+  cm_return_if_fail (GTK_IS_CMCLIST (object));
 
   clist = GTK_CMCLIST (object);
 
   columns_delete (clist);
 
+#if !GLIB_CHECK_VERSION(2,10,0)
+  g_mem_chunk_destroy (clist->cell_mem_chunk);
+  g_mem_chunk_destroy (clist->row_mem_chunk);
+#endif
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -4491,7 +4517,7 @@ gtk_cmclist_realize (GtkWidget *widget)
   gint i;
   gint j;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
 
   clist = GTK_CMCLIST (widget);
 
@@ -4643,20 +4669,20 @@ gtk_cmclist_unrealize (GtkWidget *widget)
   gint i;
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
 
   clist = GTK_CMCLIST (widget);
 
   /* freeze the list */
   clist->freeze_count++;
 
-  if (GTK_WIDGET_MAPPED (widget))
+  if (gtkut_widget_get_mapped (widget))
     gtk_cmclist_unmap (widget);
 
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
 
   /* detach optional row/cell styles */
-  if (GTK_WIDGET_REALIZED (widget))
+  if (gtkut_widget_get_realized (widget))
     {
       GtkCMCListRow *clist_row;
       GList *list;
@@ -4716,11 +4742,11 @@ gtk_cmclist_map (GtkWidget *widget)
   gint i;
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
 
   clist = GTK_CMCLIST (widget);
 
-  if (!GTK_WIDGET_MAPPED (widget))
+  if (!gtkut_widget_get_mapped (widget))
     {
       GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
 
@@ -4728,8 +4754,8 @@ gtk_cmclist_map (GtkWidget *widget)
       for (i = 0; i < clist->columns; i++)
        {
          if (clist->column[i].button &&
-             GTK_WIDGET_VISIBLE (clist->column[i].button) &&
-             !GTK_WIDGET_MAPPED (clist->column[i].button))
+             gtkut_widget_get_visible (clist->column[i].button) &&
+             !gtkut_widget_get_mapped (clist->column[i].button))
            gtk_widget_map (clist->column[i].button);
        }
       
@@ -4755,11 +4781,11 @@ gtk_cmclist_unmap (GtkWidget *widget)
   gint i;
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
 
   clist = GTK_CMCLIST (widget);
 
-  if (GTK_WIDGET_MAPPED (widget))
+  if (gtkut_widget_get_mapped (widget))
     {
       GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
 
@@ -4797,7 +4823,7 @@ gtk_cmclist_unmap (GtkWidget *widget)
       /* unmap column buttons */
       for (i = 0; i < clist->columns; i++)
        if (clist->column[i].button &&
-           GTK_WIDGET_MAPPED (clist->column[i].button))
+           gtkut_widget_get_mapped (clist->column[i].button))
          gtk_widget_unmap (clist->column[i].button);
 
       /* freeze the list */
@@ -4811,10 +4837,10 @@ gtk_cmclist_expose (GtkWidget      *widget,
 {
   GtkCMCList *clist;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
+  cm_return_val_if_fail (event != NULL, FALSE);
 
-  if (GTK_WIDGET_DRAWABLE (widget))
+  if (gtkut_widget_is_drawable (widget))
     {
       clist = GTK_CMCLIST (widget);
 
@@ -4847,10 +4873,11 @@ gtk_cmclist_expose (GtkWidget      *widget,
          
          for (i = 0; i < clist->columns; i++)
            {
-             if (clist->column[i].button)
+             if (clist->column[i].button) {
                gtk_container_propagate_expose (GTK_CONTAINER (clist),
                                                clist->column[i].button,
                                                event);
+             }
            }
        }
     }
@@ -4864,14 +4891,14 @@ gtk_cmclist_style_set (GtkWidget *widget,
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
 
   if (GTK_WIDGET_CLASS (parent_class)->style_set)
     (*GTK_WIDGET_CLASS (parent_class)->style_set) (widget, previous_style);
 
   clist = GTK_CMCLIST (widget);
 
-  if (GTK_WIDGET_REALIZED (widget))
+  if (gtkut_widget_get_realized (widget))
     {
       gtk_style_set_background (widget->style, widget->window, widget->state);
       gtk_style_set_background (widget->style, clist->title_window, GTK_STATE_NORMAL);
@@ -4913,8 +4940,8 @@ gtk_cmclist_button_press (GtkWidget      *widget,
   gint column;
   gint button_actions;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
+  cm_return_val_if_fail (event != NULL, FALSE);
 
   clist = GTK_CMCLIST (widget);
 
@@ -4965,7 +4992,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
              if (GTK_CMCLIST_ADD_MODE(clist))
                {
                  GTK_CMCLIST_UNSET_FLAG (clist, CMCLIST_ADD_MODE);
-                 if (GTK_WIDGET_HAS_FOCUS(widget))
+                 if (gtkut_widget_has_focus(widget))
                    {
                      gtk_cmclist_draw_focus (widget);
                      gdk_gc_set_line_attributes (clist->xor_gc, 1,
@@ -4982,7 +5009,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
                }
              else if (row != clist->focus_row)
                {
-                 if (GTK_WIDGET_HAS_FOCUS(widget))
+                 if (gtkut_widget_has_focus(widget))
                    {
                      gtk_cmclist_draw_focus (widget);
                      clist->focus_row = row;
@@ -4993,7 +5020,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
                }
            }
 
-         if (!GTK_WIDGET_HAS_FOCUS(widget))
+         if (!gtkut_widget_has_focus(widget))
            gtk_widget_grab_focus (widget);
 
          if (button_actions & GTK_CMBUTTON_SELECTS)
@@ -5003,7 +5030,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
                case GTK_SELECTION_SINGLE:
                  if (event->type != GDK_BUTTON_PRESS)
                    {
-                     g_signal_emit (GTK_OBJECT (clist),
+                     g_signal_emit (G_OBJECT (clist),
                                       clist_signals[SELECT_ROW], 0,
                                       row, column, event);
                      clist->anchor = -1;
@@ -5012,7 +5039,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
                    clist->anchor = row;
                  break;
                case GTK_SELECTION_BROWSE:
-                 g_signal_emit (GTK_OBJECT (clist),
+                 g_signal_emit (G_OBJECT (clist),
                                   clist_signals[SELECT_ROW], 0,
                                   row, column, event);
                  break;
@@ -5025,7 +5052,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
                          GTK_CMCLIST_GET_CLASS (clist)->resync_selection
                            (clist, (GdkEvent *) event);
                        }
-                     g_signal_emit (GTK_OBJECT (clist),
+                     g_signal_emit (G_OBJECT (clist),
                                       clist_signals[SELECT_ROW], 0,
                                       row, column, event);
                      break;
@@ -5101,7 +5128,7 @@ gtk_cmclist_button_press (GtkWidget      *widget,
                g_signal_handlers_block_matched(G_OBJECT(clist), G_SIGNAL_MATCH_DATA,
                                        0, 0, 0, 0, drag_data);
 
-       if (!GTK_WIDGET_HAS_FOCUS(widget))
+       if (!gtkut_widget_has_focus(widget))
          gtk_widget_grab_focus (widget);
 
        clist->drag_pos = i;
@@ -5125,8 +5152,8 @@ gtk_cmclist_button_release (GtkWidget      *widget,
   GtkCMCList *clist;
   gint button_actions;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
+  cm_return_val_if_fail (event != NULL, FALSE);
 
   clist = GTK_CMCLIST (widget);
 
@@ -5189,7 +5216,7 @@ gtk_cmclist_button_release (GtkWidget      *widget,
            {
            case GTK_SELECTION_MULTIPLE:
              if (!(event->state & GDK_SHIFT_MASK) ||
-                 !GTK_WIDGET_CAN_FOCUS (widget) ||
+                 !gtkut_widget_get_can_focus (widget) ||
                  event->x < 0 || event->x >= clist->clist_window_width ||
                  event->y < 0 || event->y >= clist->clist_window_height)
                GTK_CMCLIST_GET_CLASS (clist)->resync_selection
@@ -5226,7 +5253,7 @@ gtk_cmclist_motion (GtkWidget      *widget,
   gint new_width;
   gint button_actions = 0;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
 
   clist = GTK_CMCLIST (widget);
   if (!clist_has_grab (clist))
@@ -5378,7 +5405,7 @@ gtk_cmclist_motion (GtkWidget      *widget,
       switch (clist->selection_mode)
        {
        case GTK_SELECTION_BROWSE:
-         g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+         g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                           clist->focus_row, -1, event);
          break;
        case GTK_SELECTION_MULTIPLE:
@@ -5405,8 +5432,8 @@ gtk_cmclist_size_request (GtkWidget      *widget,
   GtkCMCList *clist;
   gint i;
   gint font_height = 0;
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (requisition != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (requisition != NULL);
 
   clist = GTK_CMCLIST (widget);
 
@@ -5426,9 +5453,9 @@ gtk_cmclist_size_request (GtkWidget      *widget,
                                   &child_requisition);
          clist->column_title_area.height =
            MAX (clist->column_title_area.height,
-                child_requisition.height - 2);
+                child_requisition.height);
        }
-    clist->column_title_area.height = font_height;
+    //clist->column_title_area.height = font_height;
   }
   requisition->width += (widget->style->xthickness +
                         GTK_CONTAINER (widget)->border_width) * 2;
@@ -5450,14 +5477,14 @@ gtk_cmclist_size_allocate (GtkWidget     *widget,
   GtkAllocation clist_allocation;
   gint border_width;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (allocation != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (allocation != NULL);
 
   clist = GTK_CMCLIST (widget);
   widget->allocation = *allocation;
   border_width = GTK_CONTAINER (widget)->border_width;
 
-  if (GTK_WIDGET_REALIZED (widget))
+  if (gtkut_widget_get_realized (widget))
     {
       gdk_window_move_resize (widget->window,
                              allocation->x + border_width,
@@ -5491,7 +5518,7 @@ gtk_cmclist_size_allocate (GtkWidget     *widget,
   clist->clist_window_width = clist_allocation.width;
   clist->clist_window_height = clist_allocation.height;
   
-  if (GTK_WIDGET_REALIZED (widget))
+  if (gtkut_widget_get_realized (widget))
     {
       gdk_window_move_resize (clist->clist_window,
                              clist_allocation.x,
@@ -5505,7 +5532,7 @@ gtk_cmclist_size_allocate (GtkWidget     *widget,
   clist->column_title_area.y = widget->style->ythickness;
   clist->column_title_area.width = clist_allocation.width;
   
-  if (GTK_WIDGET_REALIZED (widget))
+  if (gtkut_widget_get_realized (widget))
     {
       gdk_window_move_resize (clist->title_window,
                              clist->column_title_area.x,
@@ -5533,8 +5560,8 @@ gtk_cmclist_forall (GtkContainer *container,
   GtkCMCList *clist;
   guint i;
 
-  g_return_if_fail (GTK_IS_CMCLIST (container));
-  g_return_if_fail (callback != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (container));
+  cm_return_if_fail (callback != NULL);
 
   if (!include_internals)
     return;
@@ -5549,7 +5576,7 @@ gtk_cmclist_forall (GtkContainer *container,
 
 /* PRIVATE DRAWING FUNCTIONS
  *   get_cell_style
- *   draw_cell_pixmap
+ *   draw_cell_pixbuf
  *   draw_row
  *   draw_rows
  *   draw_xor_line
@@ -5622,11 +5649,10 @@ get_cell_style (GtkCMCList     *clist,
 }
 
 static gint
-draw_cell_pixmap (GdkWindow    *window,
+draw_cell_pixbuf (GdkWindow    *window,
                  GdkRectangle *clip_rectangle,
                  GdkGC        *fg_gc,
-                 GdkPixmap    *pixmap,
-                 GdkBitmap    *mask,
+                 GdkPixbuf    *pixbuf,
                  gint          x,
                  gint          y,
                  gint          width,
@@ -5635,11 +5661,7 @@ draw_cell_pixmap (GdkWindow    *window,
   gint xsrc = 0;
   gint ysrc = 0;
 
-  if (mask)
-    {
-      gdk_gc_set_clip_mask (fg_gc, mask);
-      gdk_gc_set_clip_origin (fg_gc, x, y);
-    }
+  gdk_gc_set_clip_origin (fg_gc, x, y);
 
   if (x < clip_rectangle->x)
     {
@@ -5659,10 +5681,8 @@ draw_cell_pixmap (GdkWindow    *window,
   if (y + height > clip_rectangle->y + clip_rectangle->height)
     height = clip_rectangle->y + clip_rectangle->height - y;
 
-  gdk_draw_drawable (window, fg_gc, pixmap, xsrc, ysrc, x, y, width, height);
+  gdk_draw_pixbuf (window, fg_gc, pixbuf, xsrc, ysrc, x, y, width, height, GDK_RGB_DITHER_NONE, 0, 0);
   gdk_gc_set_clip_origin (fg_gc, 0, 0);
-  if (mask)
-    gdk_gc_set_clip_mask (fg_gc, NULL);
 
   return x + MAX (width, 0);
 }
@@ -5683,10 +5703,10 @@ draw_row (GtkCMCList     *clist,
   gint state;
   gint i;
 
-  g_return_if_fail (clist != NULL);
+  cm_return_if_fail (clist != NULL);
 
   /* bail now if we arn't drawable yet */
-  if (!GTK_WIDGET_DRAWABLE (clist) || row < 0 || row >= clist->rows)
+  if (!gtkut_widget_is_drawable (GTK_WIDGET(clist)) || row < 0 || row >= clist->rows)
     return;
 
   widget = GTK_WIDGET (clist);
@@ -5800,7 +5820,7 @@ draw_row (GtkCMCList     *clist,
 
       gint width;
       gint height;
-      gint pixmap_width;
+      gint pixbuf_width;
       gint offset = 0;
 
       if (!clist->column[i].visible)
@@ -5839,19 +5859,20 @@ draw_row (GtkCMCList     *clist,
       else
        width = 0;
 
-      pixmap_width = 0;
+      pixbuf_width = 0;
+      height = 0;
       offset = 0;
       switch (clist_row->cell[i].type)
        {
-       case GTK_CMCELL_PIXMAP:
-         gdk_drawable_get_size (GTK_CMCELL_PIXMAP (clist_row->cell[i])->pixmap,
-                              &pixmap_width, &height);
-         width += pixmap_width;
+       case GTK_CMCELL_PIXBUF:
+         pixbuf_width = gdk_pixbuf_get_width(GTK_CMCELL_PIXBUF (clist_row->cell[i])->pixbuf);
+         height = gdk_pixbuf_get_height(GTK_CMCELL_PIXBUF (clist_row->cell[i])->pixbuf);
+         width += pixbuf_width;
          break;
        case GTK_CMCELL_PIXTEXT:
-         gdk_drawable_get_size (GTK_CMCELL_PIXTEXT (clist_row->cell[i])->pixmap,
-                              &pixmap_width, &height);
-         width += pixmap_width + GTK_CMCELL_PIXTEXT (clist_row->cell[i])->spacing;
+         pixbuf_width = gdk_pixbuf_get_width(GTK_CMCELL_PIXTEXT (clist_row->cell[i])->pixbuf);
+         height = gdk_pixbuf_get_height(GTK_CMCELL_PIXTEXT (clist_row->cell[i])->pixbuf);
+         width += pixbuf_width + GTK_CMCELL_PIXTEXT (clist_row->cell[i])->spacing;
          break;
        default:
          break;
@@ -5873,27 +5894,25 @@ draw_row (GtkCMCList     *clist,
          break;
        };
 
-      /* Draw Text and/or Pixmap */
+      /* Draw Text and/or Pixbuf */
       switch (clist_row->cell[i].type)
        {
-       case GTK_CMCELL_PIXMAP:
-         draw_cell_pixmap (clist->clist_window, &clip_rectangle, fg_gc,
-                           GTK_CMCELL_PIXMAP (clist_row->cell[i])->pixmap,
-                           GTK_CMCELL_PIXMAP (clist_row->cell[i])->mask,
+       case GTK_CMCELL_PIXBUF:
+         draw_cell_pixbuf (clist->clist_window, &clip_rectangle, fg_gc,
+                           GTK_CMCELL_PIXBUF (clist_row->cell[i])->pixbuf,
                            offset,
                            clip_rectangle.y + clist_row->cell[i].vertical +
                            (clip_rectangle.height - height) / 2,
-                           pixmap_width, height);
+                           pixbuf_width, height);
          break;
        case GTK_CMCELL_PIXTEXT:
          offset =
-           draw_cell_pixmap (clist->clist_window, &clip_rectangle, fg_gc,
-                             GTK_CMCELL_PIXTEXT (clist_row->cell[i])->pixmap,
-                             GTK_CMCELL_PIXTEXT (clist_row->cell[i])->mask,
+           draw_cell_pixbuf (clist->clist_window, &clip_rectangle, fg_gc,
+                             GTK_CMCELL_PIXTEXT (clist_row->cell[i])->pixbuf,
                              offset,
                              clip_rectangle.y + clist_row->cell[i].vertical+
                              (clip_rectangle.height - height) / 2,
-                             pixmap_width, height);
+                             pixbuf_width, height);
          offset += GTK_CMCELL_PIXTEXT (clist_row->cell[i])->spacing;
 
          /* Fall through */
@@ -5918,7 +5937,7 @@ draw_row (GtkCMCList     *clist,
 
   /* draw focus rectangle */
   if (clist->focus_row == row &&
-      GTK_WIDGET_CAN_FOCUS (widget) && GTK_WIDGET_HAS_FOCUS(widget))
+      gtkut_widget_get_can_focus (widget) && gtkut_widget_has_focus(widget))
     {
       if (!area)
        gdk_draw_rectangle (clist->clist_window, clist->xor_gc, FALSE,
@@ -5947,10 +5966,10 @@ draw_rows (GtkCMCList     *clist,
   gint first_row;
   gint last_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist->row_height == 0 ||
-      !GTK_WIDGET_DRAWABLE (clist))
+      !gtkut_widget_is_drawable (GTK_WIDGET(clist)))
     return;
 
   if (area)
@@ -5985,9 +6004,14 @@ draw_rows (GtkCMCList     *clist,
       i++;
     }
 
-  if (!area)
-    gdk_window_clear_area (clist->clist_window, 0,
-                          ROW_TOP_YPIXEL (clist, i), 0, 0);
+  if (!area) {
+    int w, h, y;
+    gdk_drawable_get_size (GDK_DRAWABLE (clist->clist_window), &w, &h);
+    y = ROW_TOP_YPIXEL (clist, i);
+    gdk_window_clear_area (clist->clist_window,
+                           0, y,
+                           w, h - y);
+  }
 }
 
 static void                          
@@ -5995,7 +6019,7 @@ draw_xor_line (GtkCMCList *clist)
 {
   GtkWidget *widget;
 
-  g_return_if_fail (clist != NULL);
+  cm_return_if_fail (clist != NULL);
 
   widget = GTK_WIDGET (clist);
 
@@ -6010,7 +6034,7 @@ draw_xor_line (GtkCMCList *clist)
 static void
 clist_refresh (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   if (CLIST_UNFROZEN (clist))
     { 
@@ -6032,7 +6056,7 @@ get_selection_info (GtkCMCList *clist,
 {
   gint trow, tcol;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
 
   /* bounds checking, return false if the user clicked 
    * on a blank area */
@@ -6060,7 +6084,7 @@ gtk_cmclist_get_selection_info (GtkCMCList *clist,
                              gint     *row, 
                              gint     *column)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (clist), 0);
   return get_selection_info (clist, x, y, row, column);
 }
 
@@ -6091,10 +6115,10 @@ adjust_adjustments (GtkCMCList *clist,
        {
          clist->vadjustment->value = MAX (0, (LIST_HEIGHT (clist) -
                                               clist->clist_window_height));
-         g_signal_emit_by_name (GTK_OBJECT (clist->vadjustment),
+         g_signal_emit_by_name (G_OBJECT (clist->vadjustment),
                                   "value_changed");
        }
-      g_signal_emit_by_name (GTK_OBJECT (clist->vadjustment), "changed");
+      g_signal_emit_by_name (G_OBJECT (clist->vadjustment), "changed");
     }
 
   if (clist->hadjustment)
@@ -6112,10 +6136,10 @@ adjust_adjustments (GtkCMCList *clist,
        {
          clist->hadjustment->value = MAX (0, (LIST_WIDTH (clist) -
                                               clist->clist_window_width));
-         g_signal_emit_by_name (GTK_OBJECT (clist->hadjustment),
+         g_signal_emit_by_name (G_OBJECT (clist->hadjustment),
                                   "value_changed");
        }
-      g_signal_emit_by_name (GTK_OBJECT (clist->hadjustment), "changed");
+      g_signal_emit_by_name (G_OBJECT (clist->hadjustment), "changed");
     }
 
   if (!block_resize && (!clist->vadjustment || !clist->hadjustment))
@@ -6140,8 +6164,8 @@ vadjustment_changed (GtkAdjustment *adjustment,
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (adjustment != NULL);
-  g_return_if_fail (data != NULL);
+  cm_return_if_fail (adjustment != NULL);
+  cm_return_if_fail (data != NULL);
 
   clist = GTK_CMCLIST (data);
 }
@@ -6152,8 +6176,8 @@ hadjustment_changed (GtkAdjustment *adjustment,
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (adjustment != NULL);
-  g_return_if_fail (data != NULL);
+  cm_return_if_fail (adjustment != NULL);
+  cm_return_if_fail (data != NULL);
 
   clist = GTK_CMCLIST (data);
 }
@@ -6165,8 +6189,8 @@ vadjustment_value_changed (GtkAdjustment *adjustment,
   GtkCMCList *clist;
   gint dy, value;
 
-  g_return_if_fail (adjustment != NULL);
-  g_return_if_fail (GTK_IS_CMCLIST (data));
+  cm_return_if_fail (adjustment != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (data));
 
   clist = GTK_CMCLIST (data);
 
@@ -6177,7 +6201,7 @@ vadjustment_value_changed (GtkAdjustment *adjustment,
   dy = value - clist->voffset;
   clist->voffset = value;
 
-  if (GTK_WIDGET_DRAWABLE (clist))
+  if (gtkut_widget_is_drawable (GTK_WIDGET(clist)))
     {
       gdk_window_scroll (clist->clist_window, 0, dy);
       gdk_window_process_updates (clist->clist_window, FALSE);
@@ -6194,7 +6218,7 @@ typedef struct
 
 /* The window to which widget->window is relative */
 #define ALLOCATION_WINDOW(widget)              \
-   (GTK_WIDGET_NO_WINDOW (widget) ?            \
+   (!gtkut_widget_get_has_window (widget) ?            \
     (widget)->window :                          \
      gdk_window_get_parent ((widget)->window))
 
@@ -6204,9 +6228,9 @@ adjust_allocation_recurse (GtkWidget *widget,
 {
   ScrollData *scroll_data = data;
   
-  if (!GTK_WIDGET_REALIZED (widget))
+  if (!gtkut_widget_get_realized (widget))
     {
-      if (GTK_WIDGET_VISIBLE (widget))
+      if (gtkut_widget_get_visible (widget))
        {
          GdkRectangle tmp_rectangle = widget->allocation;
          tmp_rectangle.x += scroll_data->dx;
@@ -6234,7 +6258,7 @@ adjust_allocation (GtkWidget *widget,
 {
   ScrollData scroll_data;
 
-  if (GTK_WIDGET_REALIZED (widget))
+  if (gtkut_widget_get_realized (widget))
     scroll_data.window = ALLOCATION_WINDOW (widget);
   else
     scroll_data.window = NULL;
@@ -6256,8 +6280,8 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
   gint value;
   gint dx;
 
-  g_return_if_fail (adjustment != NULL);
-  g_return_if_fail (GTK_IS_CMCLIST (data));
+  cm_return_if_fail (adjustment != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (data));
 
   clist = GTK_CMCLIST (data);
   container = GTK_CONTAINER (data);
@@ -6269,7 +6293,7 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
 
   dx = -value - clist->hoffset;
 
-  if (GTK_WIDGET_REALIZED (clist))
+  if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
     gdk_window_scroll (clist->title_window, dx, 0);
 
   /* adjust the column button's allocations */
@@ -6279,9 +6303,10 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
 
   clist->hoffset = -value;
 
-  if (GTK_WIDGET_DRAWABLE (clist))
+  if (gtkut_widget_is_drawable (GTK_WIDGET(clist)))
     {
-      if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
+      if (gtkut_widget_get_can_focus(GTK_WIDGET(clist)) && 
+          gtkut_widget_has_focus(GTK_WIDGET(clist)) &&
           !container->focus_child && GTK_CMCLIST_ADD_MODE(clist))
         {
           y = ROW_TOP_YPIXEL (clist, clist->focus_row);
@@ -6294,7 +6319,8 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
       gdk_window_scroll (clist->clist_window, dx, 0);
       gdk_window_process_updates (clist->clist_window, FALSE);
 
-      if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
+      if (gtkut_widget_get_can_focus(GTK_WIDGET(clist)) && 
+          gtkut_widget_has_focus(GTK_WIDGET(clist)) &&
           !container->focus_child)
         {
           if (GTK_CMCLIST_ADD_MODE(clist))
@@ -6405,8 +6431,13 @@ row_new (GtkCMCList *clist)
   int i;
   GtkCMCListRow *clist_row;
 
+#if GLIB_CHECK_VERSION(2,10,0)
   clist_row = g_slice_new (GtkCMCListRow);
   clist_row->cell = g_slice_alloc (sizeof (GtkCMCell) * clist->columns);
+#else
+  clist_row = g_chunk_new (GtkCMCListRow, (GMemChunk *)clist->row_mem_chunk);
+  clist_row->cell = g_chunk_new (GtkCMCell, (GMemChunk *)clist->cell_mem_chunk);
+#endif
 
   for (i = 0; i < clist->columns; i++)
     {
@@ -6436,10 +6467,10 @@ row_delete (GtkCMCList    *clist,
   for (i = 0; i < clist->columns; i++)
     {
       GTK_CMCLIST_GET_CLASS (clist)->set_cell_contents
-       (clist, clist_row, i, GTK_CMCELL_EMPTY, NULL, 0, NULL, NULL);
+       (clist, clist_row, i, GTK_CMCELL_EMPTY, NULL, 0, NULL);
       if (clist_row->cell[i].style)
        {
-         if (GTK_WIDGET_REALIZED (clist))
+         if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
            gtk_style_detach (clist_row->cell[i].style);
          g_object_unref (clist_row->cell[i].style);
        }
@@ -6447,7 +6478,7 @@ row_delete (GtkCMCList    *clist,
 
   if (clist_row->style)
     {
-      if (GTK_WIDGET_REALIZED (clist))
+      if (gtkut_widget_get_realized (GTK_WIDGET(clist)))
         gtk_style_detach (clist_row->style);
       g_object_unref (clist_row->style);
     }
@@ -6455,8 +6486,13 @@ row_delete (GtkCMCList    *clist,
   if (clist_row->destroy)
     clist_row->destroy (clist_row->data);
 
+#if GLIB_CHECK_VERSION(2,10,0)  
   g_slice_free1 (sizeof (GtkCMCell) * clist->columns, clist_row->cell);
   g_slice_free (GtkCMCListRow, clist_row);
+#else
+  g_mem_chunk_free ((GMemChunk *)clist->cell_mem_chunk, clist_row->cell);
+  g_mem_chunk_free ((GMemChunk *)clist->row_mem_chunk, clist_row);
+#endif
 }
 
 /* FOCUS FUNCTIONS
@@ -6477,7 +6513,7 @@ gtk_cmclist_focus_content_area (GtkCMCList *clist)
       if ((clist->selection_mode == GTK_SELECTION_BROWSE ||
           clist->selection_mode == GTK_SELECTION_MULTIPLE) &&
          !clist->selection)
-       g_signal_emit (GTK_OBJECT (clist),
+       g_signal_emit (G_OBJECT (clist),
                         clist_signals[SELECT_ROW], 0,
                         clist->focus_row, -1, NULL);
     }
@@ -6492,7 +6528,7 @@ gtk_cmclist_focus (GtkWidget        *widget,
   GtkWidget *focus_child;
   gboolean is_current_focus;
 
-  if (!GTK_WIDGET_IS_SENSITIVE (widget))
+  if (!gtkut_widget_is_sensitive (widget))
     return FALSE;
 
   focus_child = GTK_CONTAINER (widget)->focus_child;
@@ -6572,9 +6608,9 @@ gtk_cmclist_draw_focus (GtkWidget *widget)
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
 
-  if (!GTK_WIDGET_DRAWABLE (widget) || !GTK_WIDGET_CAN_FOCUS (widget))
+  if (!gtkut_widget_is_drawable (widget) || !gtkut_widget_get_can_focus (widget))
     return;
 
   clist = GTK_CMCLIST (widget);
@@ -6598,7 +6634,7 @@ gtk_cmclist_focus_in (GtkWidget     *widget,
 
       list = g_list_nth (clist->row_list, clist->focus_row);
       if (list && GTK_CMCLIST_ROW (list)->selectable)
-       g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+       g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                         clist->focus_row, -1, event);
       else
        gtk_cmclist_draw_focus (widget);
@@ -6631,7 +6667,7 @@ focus_column (GtkCMCList *clist, gint column, gint dir)
     {
       return TRUE;
     }
-  else if (GTK_WIDGET_CAN_FOCUS (child))
+  else if (gtkut_widget_get_can_focus (child))
     {
       gtk_widget_grab_focus (child);
       return TRUE;
@@ -6738,7 +6774,7 @@ title_focus_move (GtkCMCList *clist,
   while (!return_val && j >= 0 && j < clist->columns)
     {
       if (clist->column[j].button &&
-         GTK_WIDGET_VISIBLE (clist->column[j].button))
+         gtkut_widget_get_visible (clist->column[j].button))
        {
          if (focus_column (clist, j, dir))
            {
@@ -6758,7 +6794,7 @@ title_focus_move (GtkCMCList *clist,
       while (!return_val && j != i)
        {
          if (clist->column[j].button &&
-             GTK_WIDGET_VISIBLE (clist->column[j].button))
+             gtkut_widget_get_visible (clist->column[j].button))
            {
              if (focus_column (clist, j, dir))
                {
@@ -6812,8 +6848,8 @@ move_focus_row (GtkCMCList      *clist,
 {
   GtkWidget *widget;
 
-  g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (clist != 0);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   widget = GTK_WIDGET (clist);
 
@@ -6879,8 +6915,8 @@ scroll_horizontal (GtkCMCList      *clist,
   gint column = 0;
   gint last_column;
 
-  g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (clist != 0);
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist))
     return;
@@ -6954,7 +6990,7 @@ scroll_vertical (GtkCMCList      *clist,
 {
   gint old_focus_row;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist_has_grab (clist))
     return;
@@ -6972,7 +7008,7 @@ scroll_vertical (GtkCMCList      *clist,
       if (old_focus_row != clist->focus_row)
        {
          if (clist->selection_mode == GTK_SELECTION_BROWSE)
-           g_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
+           g_signal_emit (G_OBJECT (clist), clist_signals[UNSELECT_ROW], 0,
                             old_focus_row, -1, NULL);
          else if (!GTK_CMCLIST_ADD_MODE(clist))
            {
@@ -6987,7 +7023,7 @@ scroll_vertical (GtkCMCList      *clist,
          if (old_focus_row != clist->focus_row &&
              !(clist->selection_mode == GTK_SELECTION_MULTIPLE &&
                GTK_CMCLIST_ADD_MODE(clist)))
-           g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+           g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                             clist->focus_row, -1, NULL);
          switch (scroll_type)
            {
@@ -7031,7 +7067,7 @@ scroll_vertical (GtkCMCList      *clist,
          if (old_focus_row != clist->focus_row &&
              !(clist->selection_mode == GTK_SELECTION_MULTIPLE &&
                GTK_CMCLIST_ADD_MODE(clist)))
-           g_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], 0,
+           g_signal_emit (G_OBJECT (clist), clist_signals[SELECT_ROW], 0,
                             clist->focus_row, -1, NULL);
          break;
        }
@@ -7116,7 +7152,7 @@ remove_grab (GtkCMCList *clist)
 {
   GtkWidget *widget = GTK_WIDGET (clist);
   
-  if (GTK_WIDGET_HAS_GRAB (clist))
+  if (gtkut_widget_has_grab (widget))
     {
       GdkDisplay *display = gtk_widget_get_display (widget);
       
@@ -7148,7 +7184,7 @@ remove_grab (GtkCMCList *clist)
 void
 gtk_cmclist_sort (GtkCMCList *clist)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   GTK_CMCLIST_GET_CLASS (clist)->sort_list (clist);
 }
@@ -7157,7 +7193,7 @@ void
 gtk_cmclist_set_compare_func (GtkCMCList            *clist,
                            GtkCMCListCompareFunc  cmp_func)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   clist->compare = (cmp_func) ? cmp_func : default_compare;
 }
@@ -7166,7 +7202,7 @@ void
 gtk_cmclist_set_auto_sort (GtkCMCList *clist,
                         gboolean  auto_sort)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   if (GTK_CMCLIST_AUTO_SORT(clist) && !auto_sort)
     GTK_CMCLIST_UNSET_FLAG (clist, CMCLIST_AUTO_SORT);
@@ -7181,7 +7217,7 @@ void
 gtk_cmclist_set_sort_type (GtkCMCList    *clist,
                         GtkSortType  sort_type)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   clist->sort_type = sort_type;
 }
@@ -7190,7 +7226,7 @@ void
 gtk_cmclist_set_sort_column (GtkCMCList *clist,
                           gint      column)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -7255,7 +7291,7 @@ real_sort_list (GtkCMCList *clist)
   GList *work;
   gint i;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (clist->rows <= 1)
     return;
@@ -7460,8 +7496,8 @@ gtk_cmclist_drag_begin (GtkWidget      *widget,
   GtkCMCList *clist;
   GtkCMCListCellInfo *info;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (context != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (context != NULL);
 
   clist = GTK_CMCLIST (widget);
 
@@ -7509,8 +7545,8 @@ gtk_cmclist_drag_end (GtkWidget      *widget,
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (context != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (context != NULL);
 
   clist = GTK_CMCLIST (widget);
 
@@ -7526,8 +7562,8 @@ gtk_cmclist_drag_leave (GtkWidget      *widget,
   GtkCMCList *clist;
   GtkCMCListDestInfo *dest_info;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (context != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (context != NULL);
 
   clist = GTK_CMCLIST (widget);
 
@@ -7572,7 +7608,7 @@ gtk_cmclist_drag_motion (GtkWidget      *widget,
   GtkCMCListDestInfo new_info;
   GtkCMCListDestInfo *dest_info;
 
-  g_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
 
   clist = GTK_CMCLIST (widget);
 
@@ -7664,8 +7700,8 @@ gtk_cmclist_drag_drop (GtkWidget      *widget,
                     gint            y,
                     guint           time)
 {
-  g_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
-  g_return_val_if_fail (context != NULL, FALSE);
+  cm_return_val_if_fail (GTK_IS_CMCLIST (widget), FALSE);
+  cm_return_val_if_fail (context != NULL, FALSE);
 
   if (GTK_CMCLIST_REORDERABLE (widget) &&
       gtk_drag_get_source_widget (context) == widget)
@@ -7695,9 +7731,9 @@ gtk_cmclist_drag_data_received (GtkWidget        *widget,
 {
   GtkCMCList *clist;
 
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (context != NULL);
-  g_return_if_fail (selection_data != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (context != NULL);
+  cm_return_if_fail (selection_data != NULL);
 
   clist = GTK_CMCLIST (widget);
 
@@ -7736,9 +7772,9 @@ gtk_cmclist_drag_data_get (GtkWidget        *widget,
                         guint             info,
                         guint             time)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (widget));
-  g_return_if_fail (context != NULL);
-  g_return_if_fail (selection_data != NULL);
+  cm_return_if_fail (GTK_IS_CMCLIST (widget));
+  cm_return_if_fail (context != NULL);
+  cm_return_if_fail (selection_data != NULL);
 
   if (selection_data->target == gdk_atom_intern_static_string ("gtk-clist-drag-reorder"))
     {
@@ -7793,7 +7829,7 @@ gtk_cmclist_set_reorderable (GtkCMCList *clist,
 {
   GtkWidget *widget;
 
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if ((GTK_CMCLIST_REORDERABLE(clist) != 0) == reorderable)
     return;
@@ -7818,7 +7854,7 @@ void
 gtk_cmclist_set_use_drag_icons (GtkCMCList *clist,
                              gboolean  use_icons)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
 
   if (use_icons != 0)
     GTK_CMCLIST_SET_FLAG (clist, CMCLIST_USE_DRAG_ICONS);
@@ -7831,12 +7867,12 @@ gtk_cmclist_set_button_actions (GtkCMCList *clist,
                              guint     button,
                              guint8    button_actions)
 {
-  g_return_if_fail (GTK_IS_CMCLIST (clist));
+  cm_return_if_fail (GTK_IS_CMCLIST (clist));
   
   if (button < MAX_BUTTON)
     {
       if (gdk_display_pointer_is_grabbed (gtk_widget_get_display (GTK_WIDGET (clist))) || 
-         GTK_WIDGET_HAS_GRAB (clist))
+         gtkut_widget_has_grab (GTK_WIDGET(clist)))
        {
          remove_grab (clist);
          clist->drag_button = 0;