]> Pileus Git - ~andy/gtk/commitdiff
Remove GailCList completely
authorChristian Dywan <christian@twotoasts.de>
Wed, 7 Oct 2009 16:37:32 +0000 (18:37 +0200)
committerJavier Jardón <jjardon@gnome.org>
Sun, 2 May 2010 23:40:41 +0000 (01:40 +0200)
modules/other/gail/gailclist.c [deleted file]
modules/other/gail/gailclist.h [deleted file]

diff --git a/modules/other/gail/gailclist.c b/modules/other/gail/gailclist.c
deleted file mode 100644 (file)
index 6a68ffe..0000000
+++ /dev/null
@@ -1,1609 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-
-#undef GTK_DISABLE_DEPRECATED
-
-#include <gtk/gtk.h>
-#include "gailclist.h"
-#include "gailclistcell.h"
-#include "gailcellparent.h"
-
-/* Copied from gtkclist.c */
-/* this defigns the base grid spacing */
-#define CELL_SPACING 1
-
-/* added the horizontal space at the beginning and end of a row*/
-#define COLUMN_INSET 3
-
-
-/* gives the top pixel of the given row in context of
- * the clist's voffset */
-#define ROW_TOP_YPIXEL(clist, row) (((clist)->row_height * (row)) + \
-                                    (((row) + 1) * CELL_SPACING) + \
-                                    (clist)->voffset)
-
-/* returns the row index from a y pixel location in the
- * context of the clist's voffset */
-#define ROW_FROM_YPIXEL(clist, y)  (((y) - (clist)->voffset) / \
-                                    ((clist)->row_height + CELL_SPACING))
-/* gives the left pixel of the given column in context of
- * the clist's hoffset */
-#define COLUMN_LEFT_XPIXEL(clist, colnum)  ((clist)->column[(colnum)].area.x + \
-                                            (clist)->hoffset)
-
-/* returns the column index from a x pixel location in the
- * context of the clist's hoffset */
-static inline gint
-COLUMN_FROM_XPIXEL (GtkCList * clist,
-                    gint x)
-{
-  gint i, cx;
-
-  for (i = 0; i < clist->columns; i++)
-    if (clist->column[i].visible)
-      {
-        cx = clist->column[i].area.x + clist->hoffset;
-
-        if (x >= (cx - (COLUMN_INSET + CELL_SPACING)) &&
-            x <= (cx + clist->column[i].area.width + COLUMN_INSET))
-          return i;
-      }
-
-  /* no match */
-  return -1;
-}
-
-/* returns the top pixel of the given row in the context of
- * the list height */
-#define ROW_TOP(clist, row)        (((clist)->row_height + CELL_SPACING) * (row))
-
-/* returns the left pixel of the given column in the context of
- * the list width */
-#define COLUMN_LEFT(clist, colnum) ((clist)->column[(colnum)].area.x)
-
-/* returns the total height of the list */
-#define LIST_HEIGHT(clist)         (((clist)->row_height * ((clist)->rows)) + \
-                                    (CELL_SPACING * ((clist)->rows + 1)))
-
-static inline gint
-LIST_WIDTH (GtkCList * clist)
-{
-  gint last_column;
-
-  for (last_column = clist->columns - 1;
-       last_column >= 0 && !clist->column[last_column].visible; last_column--);
-
-  if (last_column >= 0)
-    return (clist->column[last_column].area.x +
-            clist->column[last_column].area.width +
-            COLUMN_INSET + CELL_SPACING);
-  return 0;
-}
-
-/* returns the GList item for the nth row */
-#define ROW_ELEMENT(clist, row) (((row) == (clist)->rows - 1) ? \
-                                 (clist)->row_list_end : \
-                                 g_list_nth ((clist)->row_list, (row)))
-
-typedef struct _GailCListRow        GailCListRow;
-typedef struct _GailCListCellData   GailCListCellData;
-
-
-static void       gail_clist_class_init            (GailCListClass    *klass);
-static void       gail_clist_init                  (GailCList         *clist);
-static void       gail_clist_real_initialize       (AtkObject         *obj,
-                                                    gpointer          data);
-static void       gail_clist_finalize              (GObject           *object);
-
-static gint       gail_clist_get_n_children        (AtkObject         *obj);
-static AtkObject* gail_clist_ref_child             (AtkObject         *obj,
-                                                    gint              i);
-static AtkStateSet* gail_clist_ref_state_set       (AtkObject         *obj);
-
-
-static void       atk_selection_interface_init     (AtkSelectionIface *iface);
-static gboolean   gail_clist_clear_selection       (AtkSelection   *selection);
-
-static AtkObject* gail_clist_ref_selection         (AtkSelection   *selection,
-                                                    gint           i);
-static gint       gail_clist_get_selection_count   (AtkSelection   *selection);
-static gboolean   gail_clist_is_child_selected     (AtkSelection   *selection,
-                                                    gint           i);
-static gboolean   gail_clist_select_all_selection  (AtkSelection   *selection);
-
-static void       atk_table_interface_init         (AtkTableIface     *iface);
-static gint       gail_clist_get_index_at          (AtkTable      *table,
-                                                    gint          row,
-                                                    gint          column);
-static gint       gail_clist_get_column_at_index   (AtkTable      *table,
-                                                    gint          index);
-static gint       gail_clist_get_row_at_index      (AtkTable      *table,
-                                                    gint          index);
-static AtkObject* gail_clist_ref_at                (AtkTable      *table,
-                                                    gint          row,
-                                                    gint          column);
-static AtkObject* gail_clist_ref_at_actual         (AtkTable      *table,
-                                                    gint          row,
-                                                    gint          column);
-static AtkObject*
-                  gail_clist_get_caption           (AtkTable      *table);
-
-static gint       gail_clist_get_n_columns         (AtkTable      *table);
-static gint       gail_clist_get_n_actual_columns  (GtkCList      *clist);
-
-static G_CONST_RETURN gchar*
-                  gail_clist_get_column_description(AtkTable      *table,
-                                                    gint          column);
-static AtkObject*  gail_clist_get_column_header     (AtkTable      *table,
-                                                    gint          column);
-static gint       gail_clist_get_n_rows            (AtkTable      *table);
-static G_CONST_RETURN gchar*
-                  gail_clist_get_row_description   (AtkTable      *table,
-                                                    gint          row);
-static AtkObject*  gail_clist_get_row_header        (AtkTable      *table,
-                                                    gint          row);
-static AtkObject* gail_clist_get_summary           (AtkTable      *table);
-static gboolean   gail_clist_add_row_selection     (AtkTable      *table,
-                                                    gint          row);
-static gboolean   gail_clist_remove_row_selection  (AtkTable      *table,
-                                                    gint          row);
-static gint       gail_clist_get_selected_rows     (AtkTable      *table,
-                                                    gint          **rows_selected);
-static gboolean   gail_clist_is_row_selected       (AtkTable      *table,
-                                                    gint          row);
-static gboolean   gail_clist_is_selected           (AtkTable      *table,
-                                                    gint          row,
-                                                    gint          column);
-static void       gail_clist_set_caption           (AtkTable      *table,
-                                                    AtkObject     *caption);
-static void       gail_clist_set_column_description(AtkTable      *table,
-                                                    gint          column,
-                                                    const gchar   *description);
-static void       gail_clist_set_column_header     (AtkTable      *table,
-                                                    gint          column,
-                                                    AtkObject     *header);
-static void       gail_clist_set_row_description   (AtkTable      *table,
-                                                    gint          row,
-                                                    const gchar   *description);
-static void       gail_clist_set_row_header        (AtkTable      *table,
-                                                    gint          row,
-                                                    AtkObject     *header);
-static void       gail_clist_set_summary           (AtkTable      *table,
-                                                    AtkObject     *accessible);
-
-/* gailcellparent.h */
-
-static void       gail_cell_parent_interface_init  (GailCellParentIface *iface);
-static void       gail_clist_get_cell_extents      (GailCellParent      *parent,
-                                                    GailCell            *cell,
-                                                    gint                *x,
-                                                    gint                *y,
-                                                    gint                *width,
-                                                    gint                *height,
-                                                    AtkCoordType        coord_type);
-
-static void       gail_clist_get_cell_area         (GailCellParent      *parent,
-                                                    GailCell            *cell,
-                                                    GdkRectangle        *cell_rect);
-
-static void       gail_clist_select_row_gtk        (GtkCList      *clist,
-                                                    int           row,
-                                                    int           column,
-                                                    GdkEvent      *event,
-                                                    gpointer      data);
-static void       gail_clist_unselect_row_gtk      (GtkCList      *clist,
-                                                    int           row,
-                                                    int           column,
-                                                    GdkEvent      *event,
-                                                    gpointer      data);
-static gint       gail_clist_get_visible_column    (AtkTable      *table,
-                                                    int           column);
-static gint       gail_clist_get_actual_column     (AtkTable      *table,
-                                                    int           visible_column);
-static void       gail_clist_set_row_data          (AtkTable      *table,
-                                                    gint          row,
-                                                    const gchar   *description,
-                                                    AtkObject     *header,
-                                                    gboolean      is_header);
-static GailCListRow*
-                  gail_clist_get_row_data          (AtkTable      *table,
-                                                    gint          row);
-static void       gail_clist_get_visible_rect      (GtkCList      *clist,
-                                                    GdkRectangle  *clist_rect);
-static gboolean   gail_clist_is_cell_visible       (GdkRectangle  *cell_rect,
-                                                    GdkRectangle  *visible_rect);
-static void       gail_clist_cell_data_new         (GailCList     *clist,
-                                                    GailCell      *cell,
-                                                    gint          column,
-                                                    gint          row);
-static void       gail_clist_cell_destroyed        (gpointer      data);
-static void       gail_clist_cell_data_remove      (GailCList     *clist,
-                                                    GailCell      *cell);
-static GailCell*  gail_clist_find_cell             (GailCList     *clist,
-                                                    gint          index);
-static void       gail_clist_adjustment_changed    (GtkAdjustment *adjustment,
-                                                    GtkCList      *clist);
-
-struct _GailCListColumn
-{
-  gchar *description;
-  AtkObject *header;
-};
-
-struct _GailCListRow
-{
-  GtkCListRow *row_data;
-  int row_number;
-  gchar *description;
-  AtkObject *header;
-};
-
-struct _GailCListCellData
-{
-  GtkCell *gtk_cell;
-  GailCell *gail_cell;
-  int row_number;
-  int column_number;
-};
-
-G_DEFINE_TYPE_WITH_CODE (GailCList, gail_clist, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TABLE, atk_table_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init)
-                         G_IMPLEMENT_INTERFACE (GAIL_TYPE_CELL_PARENT, gail_cell_parent_interface_init))
-
-static void
-gail_clist_class_init (GailCListClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-  class->get_n_children = gail_clist_get_n_children;
-  class->ref_child = gail_clist_ref_child;
-  class->ref_state_set = gail_clist_ref_state_set;
-  class->initialize = gail_clist_real_initialize;
-
-  gobject_class->finalize = gail_clist_finalize;
-}
-
-static void
-gail_clist_init (GailCList *clist)
-{
-}
-
-static void
-gail_clist_real_initialize (AtkObject *obj,
-                            gpointer  data)
-{
-  GailCList *clist;
-  GtkCList *gtk_clist;
-  gint i;
-
-  ATK_OBJECT_CLASS (gail_clist_parent_class)->initialize (obj, data);
-
-  obj->role = ATK_ROLE_TABLE;
-
-  clist = GAIL_CLIST (obj);
-
-  clist->caption = NULL;
-  clist->summary = NULL;
-  clist->row_data = NULL;
-  clist->cell_data = NULL;
-  clist->previous_selected_cell = NULL;
-
-  gtk_clist = GTK_CLIST (data);
-  clist->n_cols = gtk_clist->columns;
-  clist->columns = g_new (GailCListColumn, gtk_clist->columns);
-  for (i = 0; i < gtk_clist->columns; i++)
-    {
-      clist->columns[i].description = NULL;
-      clist->columns[i].header = NULL;
-    }
-  /*
-   * Set up signal handlers for select-row and unselect-row
-   */
-  g_signal_connect (gtk_clist,
-                    "select-row",
-                    G_CALLBACK (gail_clist_select_row_gtk),
-                    obj);
-  g_signal_connect (gtk_clist,
-                    "unselect-row",
-                    G_CALLBACK (gail_clist_unselect_row_gtk),
-                    obj);
-  /*
-   * Adjustment callbacks
-   */
-  if (gtk_clist->hadjustment)
-    {
-      g_signal_connect (gtk_clist->hadjustment,
-                        "value_changed",
-                        G_CALLBACK (gail_clist_adjustment_changed),
-                        gtk_clist);
-    }
-  if (gtk_clist->vadjustment)
-    {
-      g_signal_connect (gtk_clist->vadjustment,
-                        "value_changed",
-                        G_CALLBACK (gail_clist_adjustment_changed),
-                        gtk_clist);
-    }
-}
-
-static void
-gail_clist_finalize (GObject            *object)
-{
-  GailCList *clist = GAIL_CLIST (object);
-  gint i;
-  GArray *array;
-
-  if (clist->caption)
-    g_object_unref (clist->caption);
-  if (clist->summary)
-    g_object_unref (clist->summary);
-
-  for (i = 0; i < clist->n_cols; i++)
-    {
-      g_free (clist->columns[i].description);
-      if (clist->columns[i].header)
-        g_object_unref (clist->columns[i].header);
-    }
-  g_free (clist->columns);
-
-  array = clist->row_data;
-
-  if (clist->previous_selected_cell)
-    g_object_unref (clist->previous_selected_cell);
-
-  if (array)
-    {
-      for (i = 0; i < array->len; i++)
-        {
-          GailCListRow *row_data;
-
-          row_data = g_array_index (array, GailCListRow*, i);
-
-          if (row_data->header)
-            g_object_unref (row_data->header);
-          g_free (row_data->description);
-        }
-    }
-
-  if (clist->cell_data)
-    {
-      GList *temp_list;
-
-      for (temp_list = clist->cell_data; temp_list; temp_list = temp_list->next)
-        {
-          g_list_free (temp_list->data);
-        }
-      g_list_free (clist->cell_data);
-    }
-
-  G_OBJECT_CLASS (gail_clist_parent_class)->finalize (object);
-}
-
-static gint
-gail_clist_get_n_children (AtkObject *obj)
-{
-  GtkWidget *widget;
-  gint row, col;
-
-  g_return_val_if_fail (GAIL_IS_CLIST (obj), 0);
-
-  widget = GTK_ACCESSIBLE (obj)->widget;
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return 0;
-
-  row = gail_clist_get_n_rows (ATK_TABLE (obj));
-  col = gail_clist_get_n_actual_columns (GTK_CLIST (widget));
-  return (row * col);
-}
-
-static AtkObject*
-gail_clist_ref_child (AtkObject *obj,
-                      gint      i)
-{
-  GtkWidget *widget;
-  gint row, col;
-  gint n_columns;
-
-  g_return_val_if_fail (GAIL_IS_CLIST (obj), NULL);
-  g_return_val_if_fail (i >= 0, NULL);
-
-  widget = GTK_ACCESSIBLE (obj)->widget;
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  n_columns = gail_clist_get_n_actual_columns (GTK_CLIST (widget));
-  if (!n_columns)
-    return NULL;
-
-  row = i / n_columns;
-  col = i % n_columns;
-  return gail_clist_ref_at_actual (ATK_TABLE (obj), row, col);
-}
-
-static AtkStateSet*
-gail_clist_ref_state_set (AtkObject *obj)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_clist_parent_class)->ref_state_set (obj);
-  widget = GTK_ACCESSIBLE (obj)->widget;
-
-  if (widget != NULL)
-    atk_state_set_add_state (state_set, ATK_STATE_MANAGES_DESCENDANTS);
-
-  return state_set;
-}
-
-static void
-atk_selection_interface_init (AtkSelectionIface *iface)
-{
-  iface->clear_selection = gail_clist_clear_selection;
-  iface->ref_selection = gail_clist_ref_selection;
-  iface->get_selection_count = gail_clist_get_selection_count;
-  iface->is_child_selected = gail_clist_is_child_selected;
-  iface->select_all_selection = gail_clist_select_all_selection;
-}
-
-static gboolean
-gail_clist_clear_selection (AtkSelection   *selection)
-{
-  GtkCList *clist;
-  GtkWidget *widget;
-  
-  widget = GTK_ACCESSIBLE (selection)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-  
-  clist = GTK_CLIST (widget);
-  gtk_clist_unselect_all(clist);
-  return TRUE;
-}
-
-static AtkObject*
-gail_clist_ref_selection (AtkSelection   *selection,
-                          gint           i)
-{
-  gint visible_columns;
-  gint selected_row;
-  gint selected_column;
-  gint *selected_rows;
-
-  if ( i < 0 && i >= gail_clist_get_selection_count (selection))
-    return NULL;
-
-  visible_columns = gail_clist_get_n_columns (ATK_TABLE (selection));
-  gail_clist_get_selected_rows (ATK_TABLE (selection), &selected_rows);
-  selected_row = selected_rows[i / visible_columns];
-  g_free (selected_rows);
-  selected_column = gail_clist_get_actual_column (ATK_TABLE (selection), 
-                                                  i % visible_columns);
-
-  return gail_clist_ref_at (ATK_TABLE (selection), selected_row, 
-                            selected_column);
-}
-
-static gint
-gail_clist_get_selection_count (AtkSelection   *selection)
-{
-  gint n_rows_selected;
-
-  n_rows_selected = gail_clist_get_selected_rows (ATK_TABLE (selection), NULL);
-
-  if (n_rows_selected > 0)
-    /*
-     * The number of cells selected is the number of columns
-     * times the number of selected rows
-     */
-    return gail_clist_get_n_columns (ATK_TABLE (selection)) * n_rows_selected;
-  return 0;
-}
-
-static gboolean
-gail_clist_is_child_selected (AtkSelection   *selection,
-                              gint           i)
-{
-  gint row;
-
-  row = atk_table_get_row_at_index (ATK_TABLE (selection), i);
-
-  if (row == 0 && i >= gail_clist_get_n_columns (ATK_TABLE (selection)))
-    return FALSE;
-  return gail_clist_is_row_selected (ATK_TABLE (selection), row);
-}
-
-static gboolean
-gail_clist_select_all_selection (AtkSelection   *selection)
-{
-  GtkCList *clist;
-  GtkWidget *widget;
-  /* GtkArg arg; */
-  
-  widget = GTK_ACCESSIBLE (selection)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  clist = GTK_CLIST (widget);
-  gtk_clist_select_all(clist);
-
-  return TRUE;
-}
-
-static void
-atk_table_interface_init (AtkTableIface *iface)
-{
-  iface->ref_at = gail_clist_ref_at;
-  iface->get_index_at = gail_clist_get_index_at;
-  iface->get_column_at_index = gail_clist_get_column_at_index;
-  iface->get_row_at_index = gail_clist_get_row_at_index;
-  iface->get_caption = gail_clist_get_caption;
-  iface->get_n_columns = gail_clist_get_n_columns;
-  iface->get_column_description = gail_clist_get_column_description;
-  iface->get_column_header = gail_clist_get_column_header;
-  iface->get_n_rows = gail_clist_get_n_rows;
-  iface->get_row_description = gail_clist_get_row_description;
-  iface->get_row_header = gail_clist_get_row_header;
-  iface->get_summary = gail_clist_get_summary;
-  iface->add_row_selection = gail_clist_add_row_selection;
-  iface->remove_row_selection = gail_clist_remove_row_selection;
-  iface->get_selected_rows = gail_clist_get_selected_rows;
-  iface->is_row_selected = gail_clist_is_row_selected;
-  iface->is_selected = gail_clist_is_selected;
-  iface->set_caption = gail_clist_set_caption;
-  iface->set_column_description = gail_clist_set_column_description;
-  iface->set_column_header = gail_clist_set_column_header;
-  iface->set_row_description = gail_clist_set_row_description;
-  iface->set_row_header = gail_clist_set_row_header;
-  iface->set_summary = gail_clist_set_summary;
-}
-
-static AtkObject*
-gail_clist_ref_at (AtkTable *table,
-                   gint     row,
-                   gint     column)
-{
-  GtkWidget *widget;
-  gint actual_column;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  actual_column = gail_clist_get_actual_column (table, column);
-  return gail_clist_ref_at_actual (table, row, actual_column);
-}
-
-
-static AtkObject*
-gail_clist_ref_at_actual (AtkTable      *table,
-                          gint          row,
-                          gint          column)
-{
-  /*
-   * The column number pased to this function is the actual column number
-   * whereas the column number passed to gail_clist_ref_at is the
-   * visible column number
-   */
-  GtkCList *clist;
-  GtkWidget *widget;
-  GtkCellType cellType;
-  AtkObject *return_object;
-  gint n_rows, n_columns;
-  gint index;
-  GailCell *cell;
-
-  g_return_val_if_fail (GTK_IS_ACCESSIBLE (table), NULL);
-  
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  clist = GTK_CLIST (widget);
-  n_rows = gail_clist_get_n_rows (table); 
-  n_columns = gail_clist_get_n_actual_columns (clist); 
-
-  if (row < 0 || row >= n_rows)
-    return NULL;
-  if (column < 0 || column >= n_columns)
-    return NULL;
-
-  /*
-   * Check whether the child is cached
-   */
-  index =  column + row * n_columns;
-  cell = gail_clist_find_cell (GAIL_CLIST (table), index);
-  if (cell)
-    {
-      g_object_ref (cell);
-      return ATK_OBJECT (cell);
-    }
-  cellType = gtk_clist_get_cell_type(clist, row, column);
-  switch (cellType) 
-    {
-    case GTK_CELL_TEXT:
-    case GTK_CELL_PIXTEXT:
-      return_object = gail_clist_cell_new ();
-      break;
-    case GTK_CELL_PIXMAP:
-      return_object = NULL;
-      break;
-    default:
-      /* Don't handle GTK_CELL_EMPTY or GTK_CELL_WIDGET, return NULL */
-      return_object = NULL;
-      break;
-    }
-  if (return_object)
-    {
-      cell = GAIL_CELL (return_object);
-
-      g_return_val_if_fail (ATK_IS_OBJECT (table), NULL);
-
-      gail_cell_initialise (cell, widget, ATK_OBJECT (table),
-                            index);
-      /*
-       * Store the cell in a cache
-       */
-      gail_clist_cell_data_new (GAIL_CLIST (table), cell, column, row);
-      /*
-       * If the column is visible, sets the cell's state
-       */
-      if (clist->column[column].visible)
-        {
-          GdkRectangle cell_rect, visible_rect;
-  
-          gail_clist_get_cell_area (GAIL_CELL_PARENT (table), cell, &cell_rect);
-          gail_clist_get_visible_rect (clist, &visible_rect);
-          gail_cell_add_state (cell, ATK_STATE_VISIBLE, FALSE);
-          if (gail_clist_is_cell_visible (&cell_rect, &visible_rect))
-            gail_cell_add_state (cell, ATK_STATE_SHOWING, FALSE);
-        }
-      /*
-       * If a row is selected, all cells in the row are selected
-       */
-      if (gail_clist_is_row_selected (table, row))
-        {
-          gail_cell_add_state (cell, ATK_STATE_SELECTED, FALSE);
-          if (clist->columns == 1)
-            gail_cell_add_state (cell, ATK_STATE_FOCUSED, FALSE);
-        }
-    }
-
-  return return_object; 
-}
-
-static gint
-gail_clist_get_index_at (AtkTable *table,
-                         gint     row,
-                         gint     column)
-{
-  gint n_cols, n_rows;
-
-  n_cols = atk_table_get_n_columns (table);
-  n_rows = atk_table_get_n_rows (table);
-
-  g_return_val_if_fail (row < n_rows, 0);
-  g_return_val_if_fail (column < n_cols, 0);
-
-  return row * n_cols + column;
-}
-
-static gint
-gail_clist_get_column_at_index (AtkTable *table,
-                                gint     index)
-{
-  gint n_cols;
-
-  n_cols = atk_table_get_n_columns (table);
-
-  if (n_cols == 0)
-    return 0;
-  else
-    return (gint) (index % n_cols);
-}
-
-static gint
-gail_clist_get_row_at_index (AtkTable *table,
-                             gint     index)
-{
-  gint n_cols;
-
-  n_cols = atk_table_get_n_columns (table);
-
-  if (n_cols == 0)
-    return 0;
-  else
-    return (gint) (index / n_cols);
-}
-
-static AtkObject*
-gail_clist_get_caption (AtkTable      *table)
-{
-  GailCList* obj = GAIL_CLIST (table);
-
-  return obj->caption;
-}
-
-static gint
-gail_clist_get_n_columns (AtkTable      *table)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-
-  return gail_clist_get_visible_column (table, 
-                                  gail_clist_get_n_actual_columns (clist)); 
-}
-
-static gint
-gail_clist_get_n_actual_columns (GtkCList *clist)
-{
-  return clist->columns;
-}
-
-static G_CONST_RETURN gchar*
-gail_clist_get_column_description (AtkTable      *table,
-                                   gint          column)
-{
-  GailCList *clist = GAIL_CLIST (table);
-  GtkWidget *widget;
-  gint actual_column;
-
-  if (column < 0 || column >= gail_clist_get_n_columns (table))
-    return NULL;
-
-  actual_column = gail_clist_get_actual_column (table, column);
-  if (clist->columns[actual_column].description)
-    return (clist->columns[actual_column].description);
-
-  widget = GTK_ACCESSIBLE (clist)->widget;
-  if (widget == NULL)
-    return NULL;
-
-  return gtk_clist_get_column_title (GTK_CLIST (widget), actual_column);
-}
-
-static AtkObject*
-gail_clist_get_column_header (AtkTable      *table,
-                              gint          column)
-{
-  GailCList *clist = GAIL_CLIST (table);
-  GtkWidget *widget;
-  GtkWidget *return_widget;
-  gint actual_column;
-
-  if (column < 0 || column >= gail_clist_get_n_columns (table))
-    return NULL;
-
-  actual_column = gail_clist_get_actual_column (table, column);
-
-  if (clist->columns[actual_column].header)
-    return (clist->columns[actual_column].header);
-
-  widget = GTK_ACCESSIBLE (clist)->widget;
-  if (widget == NULL)
-    return NULL;
-
-  return_widget = gtk_clist_get_column_widget (GTK_CLIST (widget), 
-                                               actual_column);
-  if (return_widget == NULL)
-    return NULL;
-
-  g_return_val_if_fail (GTK_IS_BIN (return_widget), NULL);
-  return_widget = gtk_bin_get_child (GTK_BIN(return_widget));
-
-  return gtk_widget_get_accessible (return_widget);
-}
-
-static gint
-gail_clist_get_n_rows (AtkTable      *table)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-  return clist->rows;
-}
-
-static G_CONST_RETURN gchar*
-gail_clist_get_row_description (AtkTable      *table,
-                                gint          row)
-{
-  GailCListRow* row_data;
-
-  row_data = gail_clist_get_row_data (table, row);
-  if (row_data == NULL)
-    return NULL;
-  return row_data->description;
-}
-
-static AtkObject*
-gail_clist_get_row_header (AtkTable      *table,
-                           gint          row)
-{
-  GailCListRow* row_data;
-
-  row_data = gail_clist_get_row_data (table, row);
-  if (row_data == NULL)
-    return NULL;
-  return row_data->header;
-}
-
-static AtkObject*
-gail_clist_get_summary (AtkTable      *table)
-{
-  GailCList* obj = GAIL_CLIST (table);
-
-  return obj->summary;
-}
-
-static gboolean
-gail_clist_add_row_selection (AtkTable      *table,
-                              gint          row)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-  gtk_clist_select_row (clist, row, -1);
-  if (gail_clist_is_row_selected (table, row))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-gail_clist_remove_row_selection (AtkTable      *table,
-                                 gint          row)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-  if (gail_clist_is_row_selected (table, row))
-  {
-    gtk_clist_select_row (clist, row, -1);
-    return TRUE;
-  }
-  return FALSE;
-}
-
-static gint
-gail_clist_get_selected_rows (AtkTable *table,
-                              gint     **rows_selected)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-  GList *list;
-  gint n_selected;
-  gint i;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-  n_selected = g_list_length (clist->selection);
-
-  if (n_selected == 0) 
-    return 0;
-
-  if (rows_selected)
-    {
-      gint *selected_rows;
-
-      selected_rows = (gint*) g_malloc (sizeof (gint) * n_selected);
-      list = clist->selection;
-
-      i = 0;
-      while (list)
-        {
-          selected_rows[i++] = GPOINTER_TO_INT (list->data);
-          list = list->next;
-        }
-      *rows_selected = selected_rows;
-    }
-  return n_selected;
-}
-
-static gboolean
-gail_clist_is_row_selected (AtkTable      *table,
-                            gint          row)
-{
-  GList *elem;
-  GtkWidget *widget;
-  GtkCList *clist;
-  GtkCListRow *clist_row;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-       return FALSE;
-
-  clist = GTK_CLIST (widget);
-      
-  if (row < 0 || row >= clist->rows)
-    return FALSE;
-
-  elem = ROW_ELEMENT (clist, row);
-  if (!elem)
-    return FALSE;
-  clist_row = elem->data;
-
-  return (clist_row->state == GTK_STATE_SELECTED);
-}
-
-static gboolean
-gail_clist_is_selected (AtkTable      *table,
-                        gint          row,
-                        gint          column)
-{
-  return gail_clist_is_row_selected (table, row);
-}
-
-static void
-gail_clist_set_caption (AtkTable      *table,
-                        AtkObject     *caption)
-{
-  GailCList* obj = GAIL_CLIST (table);
-  AtkPropertyValues values = { NULL };
-  AtkObject *old_caption;
-
-  old_caption = obj->caption;
-  obj->caption = caption;
-  if (obj->caption)
-    g_object_ref (obj->caption);
-
-  g_value_init (&values.old_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.old_value, old_caption);
-  g_value_init (&values.new_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.new_value, obj->caption);
-
-  values.property_name = "accessible-table-caption";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-caption", 
-                         &values, NULL);
-  if (old_caption)
-    g_object_unref (old_caption);
-}
-
-static void
-gail_clist_set_column_description (AtkTable      *table,
-                                   gint          column,
-                                   const gchar   *description)
-{
-  GailCList *clist = GAIL_CLIST (table);
-  AtkPropertyValues values = { NULL };
-  gint actual_column;
-
-  if (column < 0 || column >= gail_clist_get_n_columns (table))
-    return;
-
-  if (description == NULL)
-    return;
-
-  actual_column = gail_clist_get_actual_column (table, column);
-  g_free (clist->columns[actual_column].description);
-  clist->columns[actual_column].description = g_strdup (description);
-
-  g_value_init (&values.new_value, G_TYPE_INT);
-  g_value_set_int (&values.new_value, column);
-
-  values.property_name = "accessible-table-column-description";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-column-description",
-                          &values, NULL);
-
-}
-
-static void
-gail_clist_set_column_header (AtkTable      *table,
-                              gint          column,
-                              AtkObject     *header)
-{
-  GailCList *clist = GAIL_CLIST (table);
-  AtkPropertyValues values = { NULL };
-  gint actual_column;
-
-  if (column < 0 || column >= gail_clist_get_n_columns (table))
-    return;
-
-  actual_column = gail_clist_get_actual_column (table, column);
-  if (clist->columns[actual_column].header)
-    g_object_unref (clist->columns[actual_column].header);
-  if (header)
-    g_object_ref (header);
-  clist->columns[actual_column].header = header;
-
-  g_value_init (&values.new_value, G_TYPE_INT);
-  g_value_set_int (&values.new_value, column);
-
-  values.property_name = "accessible-table-column-header";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-column-header",
-                         &values, NULL);
-}
-
-static void
-gail_clist_set_row_description (AtkTable      *table,
-                                gint          row,
-                                const gchar   *description)
-{
-  gail_clist_set_row_data (table, row, description, NULL, FALSE);
-}
-
-static void
-gail_clist_set_row_header (AtkTable      *table,
-                           gint          row,
-                           AtkObject     *header)
-{
-  gail_clist_set_row_data (table, row, NULL, header, TRUE);
-}
-
-static void
-gail_clist_set_summary (AtkTable      *table,
-                        AtkObject     *accessible)
-{
-  GailCList* obj = GAIL_CLIST (table);
-  AtkPropertyValues values = { 0, };
-  AtkObject *old_summary;
-
-  old_summary = obj->summary;
-  obj->summary = accessible;
-  if (obj->summary)
-    g_object_ref (obj->summary);
-
-  g_value_init (&values.old_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.old_value, old_summary);
-  g_value_init (&values.new_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.new_value, obj->summary);
-
-  values.property_name = "accessible-table-summary";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-summary", 
-                         &values, NULL);
-  if (old_summary)
-    g_object_unref (old_summary);
-}
-
-
-static void gail_cell_parent_interface_init (GailCellParentIface *iface)
-{
-  iface->get_cell_extents = gail_clist_get_cell_extents;
-  iface->get_cell_area = gail_clist_get_cell_area;
-}
-
-static void
-gail_clist_get_cell_extents (GailCellParent *parent,
-                             GailCell       *cell,
-                             gint           *x,
-                             gint           *y,
-                             gint           *width,
-                             gint           *height,
-                             AtkCoordType   coord_type)
-{
-  GtkWidget* widget;
-  GtkCList *clist;
-  gint widget_x, widget_y, widget_width, widget_height;
-  GdkRectangle cell_rect;
-  GdkRectangle visible_rect;
-
-  widget = GTK_ACCESSIBLE (parent)->widget;
-  if (widget == NULL)
-    return;
-  clist = GTK_CLIST (widget);
-
-  atk_component_get_extents (ATK_COMPONENT (parent), &widget_x, &widget_y,
-                             &widget_width, &widget_height,
-                             coord_type);
-
-  gail_clist_get_cell_area (parent, cell, &cell_rect);
-  *width = cell_rect.width;
-  *height = cell_rect.height;
-  gail_clist_get_visible_rect (clist, &visible_rect);
-  if (gail_clist_is_cell_visible (&cell_rect, &visible_rect))
-    {
-      *x = cell_rect.x + widget_x;
-      *y = cell_rect.y + widget_y;
-    }
-  else
-    {
-      *x = G_MININT;
-      *y = G_MININT;
-    }
-}
-
-static void
-gail_clist_get_cell_area (GailCellParent *parent,
-                          GailCell       *cell,
-                          GdkRectangle   *cell_rect)
-{
-  GtkWidget* widget;
-  GtkCList *clist;
-  gint column, row, n_columns;
-
-  widget = GTK_ACCESSIBLE (parent)->widget;
-  if (widget == NULL)
-    return;
-  clist = GTK_CLIST (widget);
-
-  n_columns = gail_clist_get_n_actual_columns (clist);
-  g_return_if_fail (n_columns > 0);
-  column = cell->index % n_columns;
-  row = cell->index / n_columns; 
-  cell_rect->x = COLUMN_LEFT (clist, column);
-  cell_rect->y = ROW_TOP (clist, row);
-  cell_rect->width = clist->column[column].area.width;
-  cell_rect->height = clist->row_height;
-}
-
-static void
-gail_clist_select_row_gtk (GtkCList *clist,
-                           gint      row,
-                           gint      column,
-                           GdkEvent *event,
-                           gpointer data)
-{
-  GailCList *gail_clist;
-  GList *temp_list;
-  AtkObject *selected_cell;
-
-  gail_clist = GAIL_CLIST (data);
-
-  for (temp_list = gail_clist->cell_data; temp_list; temp_list = temp_list->next)
-    {
-      GailCListCellData *cell_data;
-
-      cell_data = (GailCListCellData *) (temp_list->data);
-
-      if (row == cell_data->row_number)
-        {
-          /*
-           * Row is selected
-           */
-          gail_cell_add_state (cell_data->gail_cell, ATK_STATE_SELECTED, TRUE);
-        }
-    }
-  if (clist->columns == 1)
-    {
-      selected_cell = gail_clist_ref_at (ATK_TABLE (data), row, 1);
-      if (selected_cell)
-        {
-          if (gail_clist->previous_selected_cell)
-            g_object_unref (gail_clist->previous_selected_cell);
-          gail_clist->previous_selected_cell = selected_cell;
-          gail_cell_add_state (GAIL_CELL (selected_cell), ATK_STATE_FOCUSED, FALSE);
-          g_signal_emit_by_name (gail_clist,
-                                 "active-descendant-changed",
-                                  selected_cell);
-       }
-    }
-
-  g_signal_emit_by_name (gail_clist, "selection_changed");
-}
-
-static void
-gail_clist_unselect_row_gtk (GtkCList *clist,
-                             gint      row,
-                             gint      column,
-                             GdkEvent *event,
-                             gpointer data)
-{
-  GailCList *gail_clist;
-  GList *temp_list;
-
-  gail_clist = GAIL_CLIST (data);
-
-  for (temp_list = gail_clist->cell_data; temp_list; temp_list = temp_list->next)
-    {
-      GailCListCellData *cell_data;
-
-      cell_data = (GailCListCellData *) (temp_list->data);
-
-      if (row == cell_data->row_number)
-        {
-          /*
-           * Row is unselected
-           */
-          gail_cell_add_state (cell_data->gail_cell, ATK_STATE_FOCUSED, FALSE);
-          gail_cell_remove_state (cell_data->gail_cell, ATK_STATE_SELECTED, TRUE);
-       }
-    }
-
-  g_signal_emit_by_name (gail_clist, "selection_changed");
-}
-
-/*
- * This function determines the number of visible columns
- * up to and including the specified column
- */
-static gint
-gail_clist_get_visible_column (AtkTable *table,
-                               int      column)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-  gint i;
-  gint vis_columns;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-  for (i = 0, vis_columns = 0; i < column; i++)
-    if (clist->column[i].visible)
-      vis_columns++;
-
-  return vis_columns;  
-}
-
-static gint
-gail_clist_get_actual_column (AtkTable *table,
-                              int      visible_column)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-  gint i;
-  gint vis_columns;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  clist = GTK_CLIST (widget);
-  for (i = 0, vis_columns = 0; i < clist->columns; i++)
-    {
-      if (clist->column[i].visible)
-        {
-          if (visible_column == vis_columns)
-            return i;
-          vis_columns++;
-        }
-    }
-  return 0;  
-}
-
-static void
-gail_clist_set_row_data (AtkTable      *table,
-                         gint          row,
-                         const gchar   *description,
-                         AtkObject     *header,
-                         gboolean      is_header)
-{
-  GtkWidget *widget;
-  GtkCList *gtk_clist;
-  GailCList *gail_clist;
-  GArray *array;
-  GailCListRow* row_data;
-  gint i;
-  gboolean found = FALSE;
-  AtkPropertyValues values = { NULL };
-  gchar *signal_name;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  gtk_clist = GTK_CLIST (widget);
-  if (row < 0 || row >= gtk_clist->rows)
-    return;
-
-  gail_clist = GAIL_CLIST (table);
-
-  if (gail_clist->row_data == NULL)
-    gail_clist->row_data = g_array_sized_new (FALSE, TRUE, 
-                                              sizeof (GailCListRow *), 0);
-
-  array = gail_clist->row_data;
-
-  for (i = 0; i < array->len; i++)
-    {
-      row_data = g_array_index (array, GailCListRow*, i);
-
-      if (row == row_data->row_number)
-        {
-          found = TRUE;
-          if (is_header)
-            {
-              if (row_data->header)
-                g_object_unref (row_data->header);
-              row_data->header = header;
-              if (row_data->header)
-                g_object_ref (row_data->header);
-            }
-          else
-            {
-              g_free (row_data->description);
-              row_data->description = g_strdup (row_data->description);
-            }
-          break;
-        }
-    } 
-  if (!found)
-    {
-      GList *elem;
-
-      elem = ROW_ELEMENT (gtk_clist, row);
-      g_return_if_fail (elem != NULL);
-
-      row_data = g_new (GailCListRow, 1);
-      row_data->row_number = row;
-      row_data->row_data = elem->data;
-      if (is_header)
-        {
-          row_data->header = header;
-          if (row_data->header)
-            g_object_ref (row_data->header);
-          row_data->description = NULL;
-        }
-      else
-        {
-          row_data->description = g_strdup (row_data->description);
-          row_data->header = NULL;
-        }
-      g_array_append_val (array, row_data);
-    }
-
-  g_value_init (&values.new_value, G_TYPE_INT);
-  g_value_set_int (&values.new_value, row);
-
-  if (is_header)
-    {
-      values.property_name = "accessible-table-row-header";
-      signal_name = "property_change::accessible-table-row-header";
-    }
-  else
-    {
-      values.property_name = "accessible-table-row-description";
-      signal_name = "property_change::accessible-table-row-description";
-    }
-  g_signal_emit_by_name (table, 
-                         signal_name,
-                         &values, NULL);
-
-}
-
-static GailCListRow*
-gail_clist_get_row_data (AtkTable      *table,
-                         gint          row)
-{
-  GtkWidget *widget;
-  GtkCList *clist;
-  GailCList *obj;
-  GArray *array;
-  GailCListRow* row_data;
-  gint i;
-
-  widget = GTK_ACCESSIBLE (table)->widget;
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  clist = GTK_CLIST (widget);
-  if (row < 0 || row >= clist->rows)
-    return NULL;
-
-  obj = GAIL_CLIST (table);
-
-  if (obj->row_data == NULL)
-    return NULL;
-
-  array = obj->row_data;
-
-  for (i = 0; i < array->len; i++)
-    {
-      row_data = g_array_index (array, GailCListRow*, i);
-
-      if (row == row_data->row_number)
-        return row_data;
-    }
-  return NULL;
-}
-
-static void
-gail_clist_get_visible_rect (GtkCList      *clist,
-                             GdkRectangle  *clist_rect)
-{
-  clist_rect->x = - clist->hoffset;
-  clist_rect->y = - clist->voffset;
-  clist_rect->width = clist->clist_window_width;
-  clist_rect->height = clist->clist_window_height;
-}
-
-static gboolean
-gail_clist_is_cell_visible (GdkRectangle  *cell_rect,
-                            GdkRectangle  *visible_rect)
-{
-  /*
-   * A cell is reported as visible if any part of the cell is visible
-   */
-  if (((cell_rect->x + cell_rect->width) < visible_rect->x) ||
-     ((cell_rect->y + cell_rect->height) < visible_rect->y) ||
-     (cell_rect->x > (visible_rect->x + visible_rect->width)) ||
-     (cell_rect->y > (visible_rect->y + visible_rect->height)))
-    return FALSE;
-  else
-    return TRUE;
-}
-
-static void
-gail_clist_cell_data_new (GailCList     *clist,
-                          GailCell      *cell,
-                          gint          column,
-                          gint          row)
-{
-  GList *elem;
-  GailCListCellData *cell_data;
-  GtkCList *gtk_clist;
-  GtkCListRow *clist_row;
-
-  gtk_clist = GTK_CLIST (GTK_ACCESSIBLE (clist)->widget);
-  elem = g_list_nth (gtk_clist->row_list, row);
-  g_return_if_fail (elem != NULL);
-  clist_row = (GtkCListRow *) elem->data;
-  cell_data = g_new (GailCListCellData, 1);
-  cell_data->gail_cell = cell;
-  cell_data->gtk_cell = &(clist_row->cell[column]);
-  cell_data->column_number = column;
-  cell_data->row_number = row;
-  clist->cell_data = g_list_append (clist->cell_data, cell_data);
-
-  g_object_weak_ref (G_OBJECT (cell),
-                     (GWeakNotify) gail_clist_cell_destroyed,
-                     cell);
-}
-
-static void
-gail_clist_cell_destroyed (gpointer      data)
-{
-  GailCell *cell = GAIL_CELL (data);
-  AtkObject* parent;
-
-  parent = atk_object_get_parent (ATK_OBJECT (cell));
-
-  gail_clist_cell_data_remove (GAIL_CLIST (parent), cell);
-}
-
-static void
-gail_clist_cell_data_remove (GailCList *clist,
-                             GailCell  *cell)
-{
-  GList *temp_list;
-
-  for (temp_list = clist->cell_data; temp_list; temp_list = temp_list->next)
-    {
-      GailCListCellData *cell_data;
-
-      cell_data = (GailCListCellData *) temp_list->data;
-      if (cell_data->gail_cell == cell)
-        {
-          clist->cell_data = g_list_remove_link (clist->cell_data, temp_list);
-          g_free (cell_data);
-          return;
-        }
-    }
-  g_warning ("No cell removed in gail_clist_cell_data_remove\n");
-}
-
-static GailCell*
-gail_clist_find_cell (GailCList     *clist,
-                      gint          index)
-{
-  GList *temp_list;
-  gint n_cols;
-
-  n_cols = clist->n_cols;
-
-  for (temp_list = clist->cell_data; temp_list; temp_list = temp_list->next)
-    {
-      GailCListCellData *cell_data;
-      gint real_index;
-
-      cell_data = (GailCListCellData *) (temp_list->data);
-
-      real_index = cell_data->column_number + n_cols * cell_data->row_number;
-      if (real_index == index)
-        return cell_data->gail_cell;
-    }
-  return NULL;
-}
-
-static void
-gail_clist_adjustment_changed (GtkAdjustment *adjustment,
-                               GtkCList      *clist)
-{
-  AtkObject *atk_obj;
-  GdkRectangle visible_rect;
-  GdkRectangle cell_rect;
-  GailCList* obj;
-  GList *temp_list;
-
-  /*
-   * The scrollbars have changed
-   */
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (clist));
-  obj = GAIL_CLIST (atk_obj);
-
-  /* Get the currently visible area */
-  gail_clist_get_visible_rect (clist, &visible_rect);
-
-  /* loop over the cells and report if they are visible or not. */
-  /* Must loop through them all */
-  for (temp_list = obj->cell_data; temp_list; temp_list = temp_list->next)
-    {
-      GailCell *cell;
-      GailCListCellData *cell_data;
-
-      cell_data = (GailCListCellData *) (temp_list->data);
-      cell = cell_data->gail_cell;
-
-      gail_clist_get_cell_area (GAIL_CELL_PARENT (atk_obj), 
-                                cell, &cell_rect);
-      if (gail_clist_is_cell_visible (&cell_rect, &visible_rect))
-        gail_cell_add_state (cell, ATK_STATE_SHOWING, TRUE);
-      else
-        gail_cell_remove_state (cell, ATK_STATE_SHOWING, TRUE);
-    }
-  g_signal_emit_by_name (atk_obj, "visible_data_changed");
-}
-
diff --git a/modules/other/gail/gailclist.h b/modules/other/gail/gailclist.h
deleted file mode 100644 (file)
index 44eba4d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CLIST_H__
-#define __GAIL_CLIST_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CLIST                      (gail_clist_get_type ())
-#define GAIL_CLIST(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CLIST, GailCList))
-#define GAIL_CLIST_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CLIST, GailCListClass))
-#define GAIL_IS_CLIST(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CLIST))
-#define GAIL_IS_CLIST_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CLIST))
-#define GAIL_CLIST_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CLIST, GailCListClass))
-
-typedef struct _GailCList              GailCList;
-typedef struct _GailCListClass         GailCListClass;
-
-typedef struct _GailCListColumn        GailCListColumn;
-
-struct _GailCList
-{
-  GailContainer parent;
-
-  AtkObject*    caption;
-  AtkObject*    summary;
-
-  /* dynamically allocated array of column structures */
-  GailCListColumn *columns;
-  /* private */
-  gint n_cols;
-  GArray *row_data;
-  GList *cell_data;
-  AtkObject *previous_selected_cell;
-};
-
-GType gail_clist_get_type (void);
-
-struct _GailCListClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_CLIST_H__ */