Turn the GTK+ 1.2.10 clist code into our own widget; that lets us modify it
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 9 Jan 2004 08:36:23 +0000 (08:36 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 9 Jan 2004 08:36:23 +0000 (08:36 +0000)
to add functionality or improve performance, although, until we make it
work on GTK+ 1.3[.x] and 2.x, we shouldn't count on the performance
improvements, or make its API different from that of the GtkClist API
(other than names).

Move all the code that knows about the packet list into
gtk/packet_list.c, so that the GtkClist vs. EthClist stuff is
encapsulated inside it.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@9608 f5534014-38df-0310-8fa8-9805f1628bb7

gtk/Makefile.am
gtk/Makefile.nmake
gtk/ethclist.c [moved from gtk/gtkclist_v12.c with 76% similarity]
gtk/ethclist.h [moved from gtk/gtkclist_v12.h with 57% similarity]
gtk/gtkglobals.h
gtk/gui_prefs.c
gtk/main.c
gtk/main.h
gtk/menu.c
gtk/packet_list.c
gtk/packet_list.h [new file with mode: 0644]

index 1e51a19fa850bb804f3d541a02947595e364f7aa..4422790b8c6616dd310db6cbdc5e1cacbc8dc5c4 100644 (file)
@@ -1,7 +1,7 @@
 # Makefile.am
 # Automake file for the GTK interface routines for Ethereal
 #
-# $Id: Makefile.am,v 1.84 2003/12/29 22:43:33 guy Exp $
+# $Id: Makefile.am,v 1.85 2004/01/09 08:36:22 guy Exp $
 #
 # Ethereal - Network traffic analyzer
 # By Gerald Combs <gerald@ethereal.com>
@@ -116,6 +116,7 @@ libui_a_SOURCES = \
        nameres_prefs.c \
        nameres_prefs.h \
        packet_list.c   \
+       packet_list.h   \
        packet_win.c    \
        packet_win.h    \
        plugins_dlg.c   \
@@ -182,6 +183,8 @@ libui_a_SOURCES = \
        dlg_utils.h     \
        endpoint_talkers_table.c \
        endpoint_talkers_table.h \
+       ethclist.c      \
+       ethclist.h      \
        ethereal-tap-register.c \
        file_dlg.c      \
        file_dlg.h      \
@@ -193,8 +196,6 @@ libui_a_SOURCES = \
        follow_dlg.h    \
        goto_dlg.c      \
        goto_dlg.h      \
-       gtkclist_v12.c  \
-       gtkclist_v12.h  \
        gtkglobals.h    \
        gtk_stat_util.c \
        gtk_stat_util.h \
@@ -210,6 +211,7 @@ libui_a_SOURCES = \
        nameres_prefs.c \
        nameres_prefs.h \
        packet_list.c   \
+       packet_list.h   \
        packet_win.c    \
        packet_win.h    \
        plugins_dlg.c   \
index 4f1de512640e7254d8bdfc7579ce3606f45ba24a..b37e378173c2246b41fcea975cd2a9a27e5830bc 100644 (file)
@@ -1,7 +1,7 @@
 ## Makefile for building ethereal.exe with Microsoft C and nmake
 ## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
 #
-# $Id: Makefile.nmake,v 1.68 2003/12/29 22:43:33 guy Exp $
+# $Id: Makefile.nmake,v 1.69 2004/01/09 08:36:22 guy Exp $
 
 include ..\config.nmake
 
@@ -49,14 +49,10 @@ ETHEREAL_TAP_SRC = \
 
 ETHEREAL_TAP_OBJECTS = $(ETHEREAL_TAP_SRC:.c=.obj)
 
-# gtkclist.obj is not in here because it is gtk+-1.2 code,
-# while the DLL for GTK+ on windows is gtk+-1.3, and there's
-# some functions that have disappeared in gtk+-1.3 - and
-# the only purpose our gtkclist.c serves is to be faster
-# than versions of the CList code in some older GTK+ 1.2[.x]
-# releases, but as of 1.2.8 the standard GTK+ should have
-# the performance fix that's in our gtkclist.c, so there's no
-# reason to use our gtkclist.c.
+#
+# ethclist.obj is not in here because it is currently gtk+-1.2-only
+# code, while the DLL for GTK+ on Windows is gtk+-1.3.
+#
 OBJECTS = \
        capture_combo_utils.obj \
        capture_dlg.obj \
similarity index 76%
rename from gtk/gtkclist_v12.c
rename to gtk/ethclist.c
index f6e603a2373b3bb81332e6c4c52d5f380b2a34ea..8def115a122945c2ddd9ad0c6ecee571d204acbf 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball, Josh MacDonald,
  * Copyright (C) 1997-1998 Jay Painter <jpaint@serv.net><jpaint@gimp.org>
  *
- * $Id: gtkclist_v12.c,v 1.1 2003/09/24 06:15:53 oabad Exp $
+ * $Id: ethclist.c,v 1.1 2004/01/09 08:36:22 guy Exp $
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -36,7 +36,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gtk/gtkmain.h>
-#include "gtkclist_v12.h"
+#include "ethclist.h"
 #include <gtk/gtkbindings.h>
 #include <gtk/gtkdnd.h>
 
@@ -88,7 +88,7 @@
 /* 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,
+COLUMN_FROM_XPIXEL (EthCList * clist,
                    gint x)
 {
   gint i, cx;
@@ -122,7 +122,7 @@ COLUMN_FROM_XPIXEL (GtkCList * clist,
 
 /* returns the total width of the list */
 static inline gint
-LIST_WIDTH (GtkCList * clist)
+LIST_WIDTH (EthCList * clist)
 {
   gint last_column;
 
@@ -142,13 +142,13 @@ LIST_WIDTH (GtkCList * clist)
                                 g_list_nth ((clist)->row_list, (row)))
 
 
-#define GTK_CLIST_CLASS_FW(_widget_) GTK_CLIST_CLASS (((GtkObject*) (_widget_))->klass)
+#define ETH_CLIST_CLASS_FW(_widget_) ETH_CLIST_CLASS (((GtkObject*) (_widget_))->klass)
 
 /* redraw the list if it's not frozen */
-#define CLIST_UNFROZEN(clist)     (((GtkCList*) (clist))->freeze_count == 0)
+#define CLIST_UNFROZEN(clist)     (((EthCList*) (clist))->freeze_count == 0)
 #define        CLIST_REFRESH(clist)    G_STMT_START { \
   if (CLIST_UNFROZEN (clist)) \
-    GTK_CLIST_CLASS_FW (clist)->refresh ((GtkCList*) (clist)); \
+    ETH_CLIST_CLASS_FW (clist)->refresh ((EthCList*) (clist)); \
 } G_STMT_END
 
 
@@ -193,76 +193,76 @@ enum {
   ARG_SORT_TYPE
 };
 
-/* GtkCList Methods */
-static void gtk_clist_class_init (GtkCListClass *klass);
-static void gtk_clist_init       (GtkCList      *clist);
+/* EthCList Methods */
+static void eth_clist_class_init (EthCListClass *klass);
+static void eth_clist_init       (EthCList      *clist);
 
 /* GtkObject Methods */
-static void gtk_clist_destroy  (GtkObject *object);
-static void gtk_clist_finalize (GtkObject *object);
-static void gtk_clist_set_arg  (GtkObject *object,
+static void eth_clist_destroy  (GtkObject *object);
+static void eth_clist_finalize (GtkObject *object);
+static void eth_clist_set_arg  (GtkObject *object,
                                GtkArg    *arg,
                                guint      arg_id);
-static void gtk_clist_get_arg  (GtkObject *object,
+static void eth_clist_get_arg  (GtkObject *object,
                                GtkArg    *arg,
                                guint      arg_id);
 
 /* GtkWidget Methods */
-static void gtk_clist_set_scroll_adjustments (GtkCList      *clist,
+static void eth_clist_set_scroll_adjustments (EthCList      *clist,
                                              GtkAdjustment *hadjustment,
                                              GtkAdjustment *vadjustment);
-static void gtk_clist_realize         (GtkWidget        *widget);
-static void gtk_clist_unrealize       (GtkWidget        *widget);
-static void gtk_clist_map             (GtkWidget        *widget);
-static void gtk_clist_unmap           (GtkWidget        *widget);
-static void gtk_clist_draw            (GtkWidget        *widget,
+static void eth_clist_realize         (GtkWidget        *widget);
+static void eth_clist_unrealize       (GtkWidget        *widget);
+static void eth_clist_map             (GtkWidget        *widget);
+static void eth_clist_unmap           (GtkWidget        *widget);
+static void eth_clist_draw            (GtkWidget        *widget,
                                       GdkRectangle     *area);
-static gint gtk_clist_expose          (GtkWidget        *widget,
+static gint eth_clist_expose          (GtkWidget        *widget,
                                       GdkEventExpose   *event);
-static gint gtk_clist_key_press       (GtkWidget        *widget,
+static gint eth_clist_key_press       (GtkWidget        *widget,
                                       GdkEventKey      *event);
-static gint gtk_clist_button_press    (GtkWidget        *widget,
+static gint eth_clist_button_press    (GtkWidget        *widget,
                                       GdkEventButton   *event);
-static gint gtk_clist_button_release  (GtkWidget        *widget,
+static gint eth_clist_button_release  (GtkWidget        *widget,
                                       GdkEventButton   *event);
-static gint gtk_clist_motion          (GtkWidget        *widget,
+static gint eth_clist_motion          (GtkWidget        *widget,
                                       GdkEventMotion   *event);
-static void gtk_clist_size_request    (GtkWidget        *widget,
+static void eth_clist_size_request    (GtkWidget        *widget,
                                       GtkRequisition   *requisition);
-static void gtk_clist_size_allocate   (GtkWidget        *widget,
+static void eth_clist_size_allocate   (GtkWidget        *widget,
                                       GtkAllocation    *allocation);
-static void gtk_clist_draw_focus      (GtkWidget        *widget);
-static gint gtk_clist_focus_in        (GtkWidget        *widget,
+static void eth_clist_draw_focus      (GtkWidget        *widget);
+static gint eth_clist_focus_in        (GtkWidget        *widget,
                                       GdkEventFocus    *event);
-static gint gtk_clist_focus_out       (GtkWidget        *widget,
+static gint eth_clist_focus_out       (GtkWidget        *widget,
                                       GdkEventFocus    *event);
-static gint gtk_clist_focus           (GtkContainer     *container,
+static gint eth_clist_focus           (GtkContainer     *container,
                                       GtkDirectionType  direction);
-static void gtk_clist_style_set       (GtkWidget        *widget,
+static void eth_clist_style_set       (GtkWidget        *widget,
                                       GtkStyle         *previous_style);
-static void gtk_clist_drag_begin      (GtkWidget        *widget,
+static void eth_clist_drag_begin      (GtkWidget        *widget,
                                       GdkDragContext   *context);
-static gint gtk_clist_drag_motion     (GtkWidget        *widget,
+static gint eth_clist_drag_motion     (GtkWidget        *widget,
                                       GdkDragContext   *context,
                                       gint              x,
                                       gint              y,
                                       guint             time);
-static void gtk_clist_drag_leave      (GtkWidget        *widget,
+static void eth_clist_drag_leave      (GtkWidget        *widget,
                                       GdkDragContext   *context,
                                       guint             time);
-static void gtk_clist_drag_end        (GtkWidget        *widget,
+static void eth_clist_drag_end        (GtkWidget        *widget,
                                       GdkDragContext   *context);
-static gboolean gtk_clist_drag_drop   (GtkWidget      *widget,
+static gboolean eth_clist_drag_drop   (GtkWidget      *widget,
                                       GdkDragContext *context,
                                       gint            x,
                                       gint            y,
                                       guint           time);
-static void gtk_clist_drag_data_get   (GtkWidget        *widget,
+static void eth_clist_drag_data_get   (GtkWidget        *widget,
                                       GdkDragContext   *context,
                                       GtkSelectionData *selection_data,
                                       guint             info,
                                       guint             time);
-static void gtk_clist_drag_data_received (GtkWidget        *widget,
+static void eth_clist_drag_data_received (GtkWidget        *widget,
                                          GdkDragContext   *context,
                                          gint              x,
                                          gint              y,
@@ -271,114 +271,114 @@ static void gtk_clist_drag_data_received (GtkWidget        *widget,
                                          guint             time);
 
 /* GtkContainer Methods */
-static void gtk_clist_set_focus_child (GtkContainer  *container,
+static void eth_clist_set_focus_child (GtkContainer  *container,
                                       GtkWidget     *child);
-static void gtk_clist_forall          (GtkContainer  *container,
+static void eth_clist_forall          (GtkContainer  *container,
                                       gboolean       include_internals,
                                       GtkCallback    callback,
                                       gpointer       callback_data);
 
 /* Selection */
-static void toggle_row                (GtkCList      *clist,
+static void toggle_row                (EthCList      *clist,
                                       gint           row,
                                       gint           column,
                                       GdkEvent      *event);
-static void real_select_row           (GtkCList      *clist,
+static void real_select_row           (EthCList      *clist,
                                       gint           row,
                                       gint           column,
                                       GdkEvent      *event);
-static void real_unselect_row         (GtkCList      *clist,
+static void real_unselect_row         (EthCList      *clist,
                                       gint           row,
                                       gint           column,
                                       GdkEvent      *event);
-static void update_extended_selection (GtkCList      *clist,
+static void update_extended_selection (EthCList      *clist,
                                       gint           row);
-static GList *selection_find          (GtkCList      *clist,
+static GList *selection_find          (EthCList      *clist,
                                       gint           row_number,
                                       GList         *row_list_element);
-static void real_select_all           (GtkCList      *clist);
-static void real_unselect_all         (GtkCList      *clist);
-static void move_vertical             (GtkCList      *clist,
+static void real_select_all           (EthCList      *clist);
+static void real_unselect_all         (EthCList      *clist);
+static void move_vertical             (EthCList      *clist,
                                       gint           row,
                                       gfloat         align);
-static void move_horizontal           (GtkCList      *clist,
+static void move_horizontal           (EthCList      *clist,
                                       gint           diff);
-static void real_undo_selection       (GtkCList      *clist);
-static void fake_unselect_all         (GtkCList      *clist,
+static void real_undo_selection       (EthCList      *clist);
+static void fake_unselect_all         (EthCList      *clist,
                                       gint           row);
-static void fake_toggle_row           (GtkCList      *clist,
+static void fake_toggle_row           (EthCList      *clist,
                                       gint           row);
-static void resync_selection          (GtkCList      *clist,
+static void resync_selection          (EthCList      *clist,
                                       GdkEvent      *event);
-static void sync_selection            (GtkCList      *clist,
+static void sync_selection            (EthCList      *clist,
                                       gint           row,
                                        gint           mode);
-static void set_anchor                (GtkCList      *clist,
+static void set_anchor                (EthCList      *clist,
                                       gboolean       add_mode,
                                       gint           anchor,
                                       gint           undo_anchor);
-static void start_selection           (GtkCList      *clist);
-static void end_selection             (GtkCList      *clist);
-static void toggle_add_mode           (GtkCList      *clist);
-static void toggle_focus_row          (GtkCList      *clist);
-static void extend_selection          (GtkCList      *clist,
+static void start_selection           (EthCList      *clist);
+static void end_selection             (EthCList      *clist);
+static void toggle_add_mode           (EthCList      *clist);
+static void toggle_focus_row          (EthCList      *clist);
+static void extend_selection          (EthCList      *clist,
                                       GtkScrollType  scroll_type,
                                       gfloat         position,
                                       gboolean       auto_start_selection);
-static gint get_selection_info        (GtkCList       *clist,
+static gint get_selection_info        (EthCList       *clist,
                                       gint            x,
                                       gint            y,
                                       gint           *row,
                                       gint           *column);
 
 /* Scrolling */
-static void move_focus_row     (GtkCList      *clist,
+static void move_focus_row     (EthCList      *clist,
                                GtkScrollType  scroll_type,
                                gfloat         position);
-static void scroll_horizontal  (GtkCList      *clist,
+static void scroll_horizontal  (EthCList      *clist,
                                GtkScrollType  scroll_type,
                                gfloat         position);
-static void scroll_vertical    (GtkCList      *clist,
+static void scroll_vertical    (EthCList      *clist,
                                GtkScrollType  scroll_type,
                                gfloat         position);
-static void move_horizontal    (GtkCList      *clist,
+static void move_horizontal    (EthCList      *clist,
                                gint           diff);
-static void move_vertical      (GtkCList      *clist,
+static void move_vertical      (EthCList      *clist,
                                gint           row,
                                gfloat         align);
-static gint horizontal_timeout (GtkCList      *clist);
-static gint vertical_timeout   (GtkCList      *clist);
-static void remove_grab        (GtkCList      *clist);
+static gint horizontal_timeout (EthCList      *clist);
+static gint vertical_timeout   (EthCList      *clist);
+static void remove_grab        (EthCList      *clist);
 
 
 /* Resize Columns */
-static void draw_xor_line             (GtkCList       *clist);
-static gint new_column_width          (GtkCList       *clist,
+static void draw_xor_line             (EthCList       *clist);
+static gint new_column_width          (EthCList       *clist,
                                       gint            column,
                                       gint           *x);
-static void column_auto_resize        (GtkCList       *clist,
-                                      GtkCListRow    *clist_row,
+static void column_auto_resize        (EthCList       *clist,
+                                      EthCListRow    *clist_row,
                                       gint            column,
                                       gint            old_width);
-static void real_resize_column        (GtkCList       *clist,
+static void real_resize_column        (EthCList       *clist,
                                       gint            column,
                                       gint            width);
-static void abort_column_resize       (GtkCList       *clist);
-static void cell_size_request         (GtkCList       *clist,
-                                      GtkCListRow    *clist_row,
+static void abort_column_resize       (EthCList       *clist);
+static void cell_size_request         (EthCList       *clist,
+                                      EthCListRow    *clist_row,
                                       gint            column,
                                       GtkRequisition *requisition);
 
 /* Buttons */
-static void column_button_create      (GtkCList       *clist,
+static void column_button_create      (EthCList       *clist,
                                       gint            column);
 static void column_button_clicked     (GtkWidget      *widget,
                                       gpointer        data);
 
 /* Adjustments */
-static void adjust_adjustments        (GtkCList       *clist,
+static void adjust_adjustments        (EthCList       *clist,
                                       gboolean        block_resize);
-static void check_exposures           (GtkCList       *clist);
+static void check_exposures           (EthCList       *clist);
 static void vadjustment_changed       (GtkAdjustment  *adjustment,
                                       gpointer        data);
 static void vadjustment_value_changed (GtkAdjustment  *adjustment,
@@ -389,8 +389,8 @@ static void hadjustment_value_changed (GtkAdjustment  *adjustment,
                                       gpointer        data);
 
 /* Drawing */
-static void get_cell_style   (GtkCList      *clist,
-                             GtkCListRow   *clist_row,
+static void get_cell_style   (EthCList      *clist,
+                             EthCListRow   *clist_row,
                              gint           state,
                              gint           column,
                              GtkStyle     **style,
@@ -405,72 +405,72 @@ static gint draw_cell_pixmap (GdkWindow     *window,
                              gint           y,
                              gint           width,
                              gint           height);
-static void draw_row         (GtkCList      *clist,
+static void draw_row         (EthCList      *clist,
                              GdkRectangle  *area,
                              gint           row,
-                             GtkCListRow   *clist_row);
-static void draw_rows        (GtkCList      *clist,
+                             EthCListRow   *clist_row);
+static void draw_rows        (EthCList      *clist,
                              GdkRectangle  *area);
-static void clist_refresh    (GtkCList      *clist);
-static void draw_drag_highlight (GtkCList        *clist,
-                                GtkCListRow     *dest_row,
+static void clist_refresh    (EthCList      *clist);
+static void draw_drag_highlight (EthCList        *clist,
+                                EthCListRow     *dest_row,
                                 gint             dest_row_number,
-                                GtkCListDragPos  drag_pos);
+                                EthCListDragPos  drag_pos);
 
 /* Size Allocation / Requisition */
-static void size_allocate_title_buttons (GtkCList *clist);
-static void size_allocate_columns       (GtkCList *clist,
+static void size_allocate_title_buttons (EthCList *clist);
+static void size_allocate_columns       (EthCList *clist,
                                         gboolean  block_resize);
-static gint list_requisition_width      (GtkCList *clist);
+static gint list_requisition_width      (EthCList *clist);
 
 /* Memory Allocation/Distruction Routines */
-static GtkCListColumn *columns_new (GtkCList      *clist);
-static void column_title_new       (GtkCList      *clist,
+static EthCListColumn *columns_new (EthCList      *clist);
+static void column_title_new       (EthCList      *clist,
                                    gint           column,
                                    const gchar   *title);
-static void columns_delete         (GtkCList      *clist);
-static GtkCListRow *row_new        (GtkCList      *clist);
-static void row_delete             (GtkCList      *clist,
-                                   GtkCListRow   *clist_row);
-static void set_cell_contents      (GtkCList      *clist,
-                                   GtkCListRow   *clist_row,
+static void columns_delete         (EthCList      *clist);
+static EthCListRow *row_new        (EthCList      *clist);
+static void row_delete             (EthCList      *clist,
+                                   EthCListRow   *clist_row);
+static void set_cell_contents      (EthCList      *clist,
+                                   EthCListRow   *clist_row,
                                    gint           column,
-                                   GtkCellType    type,
+                                   EthCellType    type,
                                    const gchar   *text,
                                    guint8         spacing,
                                    GdkPixmap     *pixmap,
                                    GdkBitmap     *mask);
-static gint real_insert_row        (GtkCList      *clist,
+static gint real_insert_row        (EthCList      *clist,
                                    gint           row,
                                    gchar         *text[]);
-static void real_remove_row        (GtkCList      *clist,
+static void real_remove_row        (EthCList      *clist,
                                    gint           row);
-static void real_clear             (GtkCList      *clist);
+static void real_clear             (EthCList      *clist);
 
 /* Sorting */
-static gint default_compare        (GtkCList      *clist,
+static gint default_compare        (EthCList      *clist,
                                    gconstpointer  row1,
                                    gconstpointer  row2);
-static void real_sort_list         (GtkCList      *clist);
-static GList *gtk_clist_merge      (GtkCList      *clist,
+static void real_sort_list         (EthCList      *clist);
+static GList *eth_clist_merge      (EthCList      *clist,
                                    GList         *a,
                                    GList         *b);
-static GList *gtk_clist_mergesort  (GtkCList      *clist,
+static GList *eth_clist_mergesort  (EthCList      *clist,
                                    GList         *list,
                                    gint           num);
 /* Misc */
-static gboolean title_focus           (GtkCList  *clist,
+static gboolean title_focus           (EthCList  *clist,
                                       gint       dir);
-static void real_row_move             (GtkCList  *clist,
+static void real_row_move             (EthCList  *clist,
                                       gint       source_row,
                                       gint       dest_row);
 static gint column_title_passive_func (GtkWidget *widget,
                                       GdkEvent  *event,
                                       gpointer   data);
-static void drag_dest_cell            (GtkCList         *clist,
+static void drag_dest_cell            (EthCList         *clist,
                                       gint              x,
                                       gint              y,
-                                      GtkCListDestInfo *dest_info);
+                                      EthCListDestInfo *dest_info);
 
 
 
@@ -480,7 +480,7 @@ static guint clist_signals[LAST_SIGNAL] = {0};
 static GtkTargetEntry clist_target_table = { "gtk-clist-drag-reorder", 0, 0};
 
 GtkType
-gtk_clist_get_type (void)
+eth_clist_get_type (void)
 {
   static GtkType clist_type = 0;
 
@@ -488,11 +488,11 @@ gtk_clist_get_type (void)
     {
       static const GtkTypeInfo clist_info =
       {
-       "GtkCList",
-       sizeof (GtkCList),
-       sizeof (GtkCListClass),
-       (GtkClassInitFunc) gtk_clist_class_init,
-       (GtkObjectInitFunc) gtk_clist_init,
+       "EthCList",
+       sizeof (EthCList),
+       sizeof (EthCListClass),
+       (GtkClassInitFunc) eth_clist_class_init,
+       (GtkObjectInitFunc) eth_clist_init,
        /* reserved_1 */ NULL,
        /* reserved_2 */ NULL,
        (GtkClassInitFunc) NULL,
@@ -505,7 +505,7 @@ gtk_clist_get_type (void)
 }
 
 static void
-gtk_clist_class_init (GtkCListClass *klass)
+eth_clist_class_init (EthCListClass *klass)
 {
   GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
@@ -518,49 +518,49 @@ gtk_clist_class_init (GtkCListClass *klass)
 
   parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
 
-  gtk_object_add_arg_type ("GtkCList::n_columns",
+  gtk_object_add_arg_type ("EthCList::n_columns",
                           GTK_TYPE_UINT,
                           GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT_ONLY,
                           ARG_N_COLUMNS);
-  gtk_object_add_arg_type ("GtkCList::shadow_type",
+  gtk_object_add_arg_type ("EthCList::shadow_type",
                           GTK_TYPE_SHADOW_TYPE,
                           GTK_ARG_READWRITE,
                           ARG_SHADOW_TYPE);
-  gtk_object_add_arg_type ("GtkCList::selection_mode",
+  gtk_object_add_arg_type ("EthCList::selection_mode",
                           GTK_TYPE_SELECTION_MODE,
                           GTK_ARG_READWRITE,
                           ARG_SELECTION_MODE);
-  gtk_object_add_arg_type ("GtkCList::row_height",
+  gtk_object_add_arg_type ("EthCList::row_height",
                           GTK_TYPE_UINT,
                           GTK_ARG_READWRITE,
                           ARG_ROW_HEIGHT);
-  gtk_object_add_arg_type ("GtkCList::reorderable",
+  gtk_object_add_arg_type ("EthCList::reorderable",
                           GTK_TYPE_BOOL,
                           GTK_ARG_READWRITE,
                           ARG_REORDERABLE);
-  gtk_object_add_arg_type ("GtkCList::titles_active",
+  gtk_object_add_arg_type ("EthCList::titles_active",
                           GTK_TYPE_BOOL,
                           GTK_ARG_READWRITE,
                           ARG_TITLES_ACTIVE);
-  gtk_object_add_arg_type ("GtkCList::use_drag_icons",
+  gtk_object_add_arg_type ("EthCList::use_drag_icons",
                           GTK_TYPE_BOOL,
                           GTK_ARG_READWRITE,
                           ARG_USE_DRAG_ICONS);
-  gtk_object_add_arg_type ("GtkCList::sort_type",
+  gtk_object_add_arg_type ("EthCList::sort_type",
                           GTK_TYPE_SORT_TYPE,
                           GTK_ARG_READWRITE,
                           ARG_SORT_TYPE);
-  object_class->set_arg = gtk_clist_set_arg;
-  object_class->get_arg = gtk_clist_get_arg;
-  object_class->destroy = gtk_clist_destroy;
-  object_class->finalize = gtk_clist_finalize;
+  object_class->set_arg = eth_clist_set_arg;
+  object_class->get_arg = eth_clist_get_arg;
+  object_class->destroy = eth_clist_destroy;
+  object_class->finalize = eth_clist_finalize;
 
 
   widget_class->set_scroll_adjustments_signal =
     gtk_signal_new ("set_scroll_adjustments",
                    GTK_RUN_LAST,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, set_scroll_adjustments),
+                   GTK_SIGNAL_OFFSET (EthCListClass, set_scroll_adjustments),
                    gtk_marshal_NONE__POINTER_POINTER,
                    GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
 
@@ -568,7 +568,7 @@ gtk_clist_class_init (GtkCListClass *klass)
     gtk_signal_new ("select_row",
                    GTK_RUN_FIRST,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, select_row),
+                   GTK_SIGNAL_OFFSET (EthCListClass, select_row),
                    gtk_marshal_NONE__INT_INT_POINTER,
                    GTK_TYPE_NONE, 3,
                    GTK_TYPE_INT,
@@ -578,7 +578,7 @@ gtk_clist_class_init (GtkCListClass *klass)
     gtk_signal_new ("unselect_row",
                    GTK_RUN_FIRST,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, unselect_row),
+                   GTK_SIGNAL_OFFSET (EthCListClass, unselect_row),
                    gtk_marshal_NONE__INT_INT_POINTER,
                    GTK_TYPE_NONE, 3, GTK_TYPE_INT,
                    GTK_TYPE_INT, GTK_TYPE_GDK_EVENT);
@@ -586,21 +586,21 @@ gtk_clist_class_init (GtkCListClass *klass)
     gtk_signal_new ("row_move",
                    GTK_RUN_LAST,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, row_move),
+                   GTK_SIGNAL_OFFSET (EthCListClass, row_move),
                    gtk_marshal_NONE__INT_INT,
                    GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT);
   clist_signals[CLICK_COLUMN] =
     gtk_signal_new ("click_column",
                    GTK_RUN_FIRST,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, click_column),
+                   GTK_SIGNAL_OFFSET (EthCListClass, click_column),
                    gtk_marshal_NONE__INT,
                    GTK_TYPE_NONE, 1, GTK_TYPE_INT);
   clist_signals[RESIZE_COLUMN] =
     gtk_signal_new ("resize_column",
                    GTK_RUN_LAST,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, resize_column),
+                   GTK_SIGNAL_OFFSET (EthCListClass, resize_column),
                    gtk_marshal_NONE__INT_INT,
                    GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT);
 
@@ -608,56 +608,56 @@ gtk_clist_class_init (GtkCListClass *klass)
     gtk_signal_new ("toggle_focus_row",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, toggle_focus_row),
+                    GTK_SIGNAL_OFFSET (EthCListClass, toggle_focus_row),
                     gtk_marshal_NONE__NONE,
                     GTK_TYPE_NONE, 0);
   clist_signals[SELECT_ALL] =
     gtk_signal_new ("select_all",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, select_all),
+                    GTK_SIGNAL_OFFSET (EthCListClass, select_all),
                     gtk_marshal_NONE__NONE,
                     GTK_TYPE_NONE, 0);
   clist_signals[UNSELECT_ALL] =
     gtk_signal_new ("unselect_all",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, unselect_all),
+                    GTK_SIGNAL_OFFSET (EthCListClass, unselect_all),
                     gtk_marshal_NONE__NONE,
                     GTK_TYPE_NONE, 0);
   clist_signals[UNDO_SELECTION] =
     gtk_signal_new ("undo_selection",
                    GTK_RUN_LAST | GTK_RUN_ACTION,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, undo_selection),
+                   GTK_SIGNAL_OFFSET (EthCListClass, undo_selection),
                    gtk_marshal_NONE__NONE,
                    GTK_TYPE_NONE, 0);
   clist_signals[START_SELECTION] =
     gtk_signal_new ("start_selection",
                    GTK_RUN_LAST | GTK_RUN_ACTION,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, start_selection),
+                   GTK_SIGNAL_OFFSET (EthCListClass, start_selection),
                    gtk_marshal_NONE__NONE,
                    GTK_TYPE_NONE, 0);
   clist_signals[END_SELECTION] =
     gtk_signal_new ("end_selection",
                    GTK_RUN_LAST | GTK_RUN_ACTION,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, end_selection),
+                   GTK_SIGNAL_OFFSET (EthCListClass, end_selection),
                    gtk_marshal_NONE__NONE,
                    GTK_TYPE_NONE, 0);
   clist_signals[TOGGLE_ADD_MODE] =
     gtk_signal_new ("toggle_add_mode",
                    GTK_RUN_LAST | GTK_RUN_ACTION,
                    object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkCListClass, toggle_add_mode),
+                   GTK_SIGNAL_OFFSET (EthCListClass, toggle_add_mode),
                    gtk_marshal_NONE__NONE,
                    GTK_TYPE_NONE, 0);
   clist_signals[EXTEND_SELECTION] =
     gtk_signal_new ("extend_selection",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, extend_selection),
+                    GTK_SIGNAL_OFFSET (EthCListClass, extend_selection),
                     gtk_marshal_NONE__ENUM_FLOAT_BOOL,
                     GTK_TYPE_NONE, 3,
                    GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT, GTK_TYPE_BOOL);
@@ -665,57 +665,57 @@ gtk_clist_class_init (GtkCListClass *klass)
     gtk_signal_new ("scroll_vertical",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, scroll_vertical),
+                    GTK_SIGNAL_OFFSET (EthCListClass, scroll_vertical),
                     gtk_marshal_NONE__ENUM_FLOAT,
                     GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);
   clist_signals[SCROLL_HORIZONTAL] =
     gtk_signal_new ("scroll_horizontal",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, scroll_horizontal),
+                    GTK_SIGNAL_OFFSET (EthCListClass, scroll_horizontal),
                     gtk_marshal_NONE__ENUM_FLOAT,
                     GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);
   clist_signals[ABORT_COLUMN_RESIZE] =
     gtk_signal_new ("abort_column_resize",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCListClass, abort_column_resize),
+                    GTK_SIGNAL_OFFSET (EthCListClass, abort_column_resize),
                     gtk_marshal_NONE__NONE,
                     GTK_TYPE_NONE, 0);
   gtk_object_class_add_signals (object_class, clist_signals, LAST_SIGNAL);
 
-  widget_class->realize = gtk_clist_realize;
-  widget_class->unrealize = gtk_clist_unrealize;
-  widget_class->map = gtk_clist_map;
-  widget_class->unmap = gtk_clist_unmap;
-  widget_class->draw = gtk_clist_draw;
-  widget_class->button_press_event = gtk_clist_button_press;
-  widget_class->button_release_event = gtk_clist_button_release;
-  widget_class->motion_notify_event = gtk_clist_motion;
-  widget_class->expose_event = gtk_clist_expose;
-  widget_class->size_request = gtk_clist_size_request;
-  widget_class->size_allocate = gtk_clist_size_allocate;
-  widget_class->key_press_event = gtk_clist_key_press;
-  widget_class->focus_in_event = gtk_clist_focus_in;
-  widget_class->focus_out_event = gtk_clist_focus_out;
-  widget_class->draw_focus = gtk_clist_draw_focus;
-  widget_class->style_set = gtk_clist_style_set;
-  widget_class->drag_begin = gtk_clist_drag_begin;
-  widget_class->drag_end = gtk_clist_drag_end;
-  widget_class->drag_motion = gtk_clist_drag_motion;
-  widget_class->drag_leave = gtk_clist_drag_leave;
-  widget_class->drag_drop = gtk_clist_drag_drop;
-  widget_class->drag_data_get = gtk_clist_drag_data_get;
-  widget_class->drag_data_received = gtk_clist_drag_data_received;
+  widget_class->realize = eth_clist_realize;
+  widget_class->unrealize = eth_clist_unrealize;
+  widget_class->map = eth_clist_map;
+  widget_class->unmap = eth_clist_unmap;
+  widget_class->draw = eth_clist_draw;
+  widget_class->button_press_event = eth_clist_button_press;
+  widget_class->button_release_event = eth_clist_button_release;
+  widget_class->motion_notify_event = eth_clist_motion;
+  widget_class->expose_event = eth_clist_expose;
+  widget_class->size_request = eth_clist_size_request;
+  widget_class->size_allocate = eth_clist_size_allocate;
+  widget_class->key_press_event = eth_clist_key_press;
+  widget_class->focus_in_event = eth_clist_focus_in;
+  widget_class->focus_out_event = eth_clist_focus_out;
+  widget_class->draw_focus = eth_clist_draw_focus;
+  widget_class->style_set = eth_clist_style_set;
+  widget_class->drag_begin = eth_clist_drag_begin;
+  widget_class->drag_end = eth_clist_drag_end;
+  widget_class->drag_motion = eth_clist_drag_motion;
+  widget_class->drag_leave = eth_clist_drag_leave;
+  widget_class->drag_drop = eth_clist_drag_drop;
+  widget_class->drag_data_get = eth_clist_drag_data_get;
+  widget_class->drag_data_received = eth_clist_drag_data_received;
 
   /* container_class->add = NULL; use the default GtkContainerClass warning */
   /* container_class->remove=NULL; use the default GtkContainerClass warning */
 
-  container_class->forall = gtk_clist_forall;
-  container_class->focus = gtk_clist_focus;
-  container_class->set_focus_child = gtk_clist_set_focus_child;
+  container_class->forall = eth_clist_forall;
+  container_class->focus = eth_clist_focus;
+  container_class->set_focus_child = eth_clist_set_focus_child;
 
-  klass->set_scroll_adjustments = gtk_clist_set_scroll_adjustments;
+  klass->set_scroll_adjustments = eth_clist_set_scroll_adjustments;
   klass->refresh = clist_refresh;
   klass->select_row = real_select_row;
   klass->unselect_row = real_unselect_row;
@@ -844,54 +844,54 @@ gtk_clist_class_init (GtkCListClass *klass)
 }
 
 static void
-gtk_clist_set_arg (GtkObject      *object,
+eth_clist_set_arg (GtkObject      *object,
                   GtkArg         *arg,
                   guint           arg_id)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
-  clist = GTK_CLIST (object);
+  clist = ETH_CLIST (object);
 
   switch (arg_id)
     {
     case ARG_N_COLUMNS: /* construct-only arg, only set when !GTK_CONSTRUCTED */
-      gtk_clist_construct (clist, MAX (1, GTK_VALUE_UINT (*arg)), NULL);
+      eth_clist_construct (clist, MAX (1, GTK_VALUE_UINT (*arg)), NULL);
       break;
     case ARG_SHADOW_TYPE:
-      gtk_clist_set_shadow_type (clist, GTK_VALUE_ENUM (*arg));
+      eth_clist_set_shadow_type (clist, GTK_VALUE_ENUM (*arg));
       break;
     case ARG_SELECTION_MODE:
-      gtk_clist_set_selection_mode (clist, GTK_VALUE_ENUM (*arg));
+      eth_clist_set_selection_mode (clist, GTK_VALUE_ENUM (*arg));
       break;
     case ARG_ROW_HEIGHT:
-      gtk_clist_set_row_height (clist, GTK_VALUE_UINT (*arg));
+      eth_clist_set_row_height (clist, GTK_VALUE_UINT (*arg));
       break;
     case ARG_REORDERABLE:
-      gtk_clist_set_reorderable (clist, GTK_VALUE_BOOL (*arg));
+      eth_clist_set_reorderable (clist, GTK_VALUE_BOOL (*arg));
       break;
     case ARG_TITLES_ACTIVE:
       if (GTK_VALUE_BOOL (*arg))
-       gtk_clist_column_titles_active (clist);
+       eth_clist_column_titles_active (clist);
       else
-       gtk_clist_column_titles_passive (clist);
+       eth_clist_column_titles_passive (clist);
       break;
     case ARG_USE_DRAG_ICONS:
-      gtk_clist_set_use_drag_icons (clist, GTK_VALUE_BOOL (*arg));
+      eth_clist_set_use_drag_icons (clist, GTK_VALUE_BOOL (*arg));
       break;
     case ARG_SORT_TYPE:
-      gtk_clist_set_sort_type (clist, GTK_VALUE_ENUM (*arg));
+      eth_clist_set_sort_type (clist, GTK_VALUE_ENUM (*arg));
       break;
     }
 }
 
 static void
-gtk_clist_get_arg (GtkObject      *object,
+eth_clist_get_arg (GtkObject      *object,
                   GtkArg         *arg,
                   guint           arg_id)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
-  clist = GTK_CLIST (object);
+  clist = ETH_CLIST (object);
 
   switch (arg_id)
     {
@@ -907,10 +907,10 @@ gtk_clist_get_arg (GtkObject      *object,
       GTK_VALUE_ENUM (*arg) = clist->selection_mode;
       break;
     case ARG_ROW_HEIGHT:
-      GTK_VALUE_UINT (*arg) = GTK_CLIST_ROW_HEIGHT_SET(clist) ? clist->row_height : 0;
+      GTK_VALUE_UINT (*arg) = ETH_CLIST_ROW_HEIGHT_SET(clist) ? clist->row_height : 0;
       break;
     case ARG_REORDERABLE:
-      GTK_VALUE_BOOL (*arg) = GTK_CLIST_REORDERABLE (clist);
+      GTK_VALUE_BOOL (*arg) = ETH_CLIST_REORDERABLE (clist);
       break;
     case ARG_TITLES_ACTIVE:
       GTK_VALUE_BOOL (*arg) = TRUE;
@@ -923,7 +923,7 @@ gtk_clist_get_arg (GtkObject      *object,
          }
       break;
     case ARG_USE_DRAG_ICONS:
-      GTK_VALUE_BOOL (*arg) = GTK_CLIST_USE_DRAG_ICONS (clist);
+      GTK_VALUE_BOOL (*arg) = ETH_CLIST_USE_DRAG_ICONS (clist);
       break;
     case ARG_SORT_TYPE:
       GTK_VALUE_ENUM (*arg) = clist->sort_type;
@@ -935,15 +935,15 @@ gtk_clist_get_arg (GtkObject      *object,
 }
 
 static void
-gtk_clist_init (GtkCList *clist)
+eth_clist_init (EthCList *clist)
 {
   clist->flags = 0;
 
   GTK_WIDGET_UNSET_FLAGS (clist, GTK_NO_WINDOW);
   GTK_WIDGET_SET_FLAGS (clist, GTK_CAN_FOCUS);
-  GTK_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
-  GTK_CLIST_SET_FLAG (clist, CLIST_DRAW_DRAG_LINE);
-  GTK_CLIST_SET_FLAG (clist, CLIST_USE_DRAG_ICONS);
+  ETH_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
+  ETH_CLIST_SET_FLAG (clist, CLIST_DRAW_DRAG_LINE);
+  ETH_CLIST_SET_FLAG (clist, CLIST_USE_DRAG_ICONS);
 
   clist->row_mem_chunk = NULL;
   clist->cell_mem_chunk = NULL;
@@ -975,11 +975,11 @@ gtk_clist_init (GtkCList *clist)
   clist->vadjustment = NULL;
   clist->hadjustment = NULL;
 
-  clist->button_actions[0] = GTK_BUTTON_SELECTS | GTK_BUTTON_DRAGS;
-  clist->button_actions[1] = GTK_BUTTON_IGNORED;
-  clist->button_actions[2] = GTK_BUTTON_IGNORED;
-  clist->button_actions[3] = GTK_BUTTON_IGNORED;
-  clist->button_actions[4] = GTK_BUTTON_IGNORED;
+  clist->button_actions[0] = ETH_BUTTON_SELECTS | ETH_BUTTON_DRAGS;
+  clist->button_actions[1] = ETH_BUTTON_IGNORED;
+  clist->button_actions[2] = ETH_BUTTON_IGNORED;
+  clist->button_actions[3] = ETH_BUTTON_IGNORED;
+  clist->button_actions[4] = ETH_BUTTON_IGNORED;
 
   clist->cursor_drag = NULL;
   clist->xor_gc = NULL;
@@ -1012,12 +1012,12 @@ gtk_clist_init (GtkCList *clist)
 
 /* Constructors */
 void
-gtk_clist_construct (GtkCList *clist,
+eth_clist_construct (EthCList *clist,
                     gint      columns,
                     gchar    *titles[])
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
   g_return_if_fail (columns > 0);
   g_return_if_fail (GTK_OBJECT_CONSTRUCTED (clist) == FALSE);
 
@@ -1029,15 +1029,15 @@ gtk_clist_construct (GtkCList *clist,
    */
   if (!clist->row_mem_chunk)
     clist->row_mem_chunk = g_mem_chunk_new ("clist row mem chunk",
-                                           sizeof (GtkCListRow),
-                                           sizeof (GtkCListRow) *
+                                           sizeof (EthCListRow),
+                                           sizeof (EthCListRow) *
                                            CLIST_OPTIMUM_SIZE,
                                            G_ALLOC_AND_FREE);
 
   if (!clist->cell_mem_chunk)
     clist->cell_mem_chunk = g_mem_chunk_new ("clist cell mem chunk",
-                                            sizeof (GtkCell) * columns,
-                                            sizeof (GtkCell) * columns *
+                                            sizeof (EthCell) * columns,
+                                            sizeof (EthCell) * columns *
                                             CLIST_OPTIMUM_SIZE,
                                             G_ALLOC_AND_FREE);
 
@@ -1054,54 +1054,54 @@ gtk_clist_construct (GtkCList *clist,
     {
       gint i;
 
-      GTK_CLIST_SET_FLAG (clist, CLIST_SHOW_TITLES);
+      ETH_CLIST_SET_FLAG (clist, CLIST_SHOW_TITLES);
       for (i = 0; i < columns; i++)
-       gtk_clist_set_column_title (clist, i, titles[i]);
+       eth_clist_set_column_title (clist, i, titles[i]);
     }
   else
     {
-      GTK_CLIST_UNSET_FLAG (clist, CLIST_SHOW_TITLES);
+      ETH_CLIST_UNSET_FLAG (clist, CLIST_SHOW_TITLES);
     }
 }
 
 /* GTKCLIST PUBLIC INTERFACE
- *   gtk_clist_new
- *   gtk_clist_new_with_titles
- *   gtk_clist_set_hadjustment
- *   gtk_clist_set_vadjustment
- *   gtk_clist_get_hadjustment
- *   gtk_clist_get_vadjustment
- *   gtk_clist_set_shadow_type
- *   gtk_clist_set_selection_mode
- *   gtk_clist_freeze
- *   gtk_clist_thaw
+ *   eth_clist_new
+ *   eth_clist_new_with_titles
+ *   eth_clist_set_hadjustment
+ *   eth_clist_set_vadjustment
+ *   eth_clist_get_hadjustment
+ *   eth_clist_get_vadjustment
+ *   eth_clist_set_shadow_type
+ *   eth_clist_set_selection_mode
+ *   eth_clist_freeze
+ *   eth_clist_thaw
  */
 GtkWidget*
-gtk_clist_new (gint columns)
+eth_clist_new (gint columns)
 {
-  return gtk_clist_new_with_titles (columns, NULL);
+  return eth_clist_new_with_titles (columns, NULL);
 }
 
 GtkWidget*
-gtk_clist_new_with_titles (gint   columns,
+eth_clist_new_with_titles (gint   columns,
                           gchar *titles[])
 {
   GtkWidget *widget;
 
-  widget = gtk_type_new (GTK_TYPE_CLIST);
-  gtk_clist_construct (GTK_CLIST (widget), columns, titles);
+  widget = gtk_type_new (ETH_TYPE_CLIST);
+  eth_clist_construct (ETH_CLIST (widget), columns, titles);
 
   return widget;
 }
 
 void
-gtk_clist_set_hadjustment (GtkCList      *clist,
+eth_clist_set_hadjustment (EthCList      *clist,
                           GtkAdjustment *adjustment)
 {
   GtkAdjustment *old_adjustment;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
   if (adjustment)
     g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
 
@@ -1136,22 +1136,22 @@ gtk_clist_set_hadjustment (GtkCList      *clist,
 }
 
 GtkAdjustment *
-gtk_clist_get_hadjustment (GtkCList *clist)
+eth_clist_get_hadjustment (EthCList *clist)
 {
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   return clist->hadjustment;
 }
 
 void
-gtk_clist_set_vadjustment (GtkCList      *clist,
+eth_clist_set_vadjustment (EthCList      *clist,
                           GtkAdjustment *adjustment)
 {
   GtkAdjustment *old_adjustment;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
   if (adjustment)
     g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
 
@@ -1186,31 +1186,31 @@ gtk_clist_set_vadjustment (GtkCList      *clist,
 }
 
 GtkAdjustment *
-gtk_clist_get_vadjustment (GtkCList *clist)
+eth_clist_get_vadjustment (EthCList *clist)
 {
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   return clist->vadjustment;
 }
 
 static void
-gtk_clist_set_scroll_adjustments (GtkCList      *clist,
+eth_clist_set_scroll_adjustments (EthCList      *clist,
                                  GtkAdjustment *hadjustment,
                                  GtkAdjustment *vadjustment)
 {
   if (clist->hadjustment != hadjustment)
-    gtk_clist_set_hadjustment (clist, hadjustment);
+    eth_clist_set_hadjustment (clist, hadjustment);
   if (clist->vadjustment != vadjustment)
-    gtk_clist_set_vadjustment (clist, vadjustment);
+    eth_clist_set_vadjustment (clist, vadjustment);
 }
 
 void
-gtk_clist_set_shadow_type (GtkCList      *clist,
+eth_clist_set_shadow_type (EthCList      *clist,
                           GtkShadowType  type)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   clist->shadow_type = type;
 
@@ -1219,11 +1219,11 @@ gtk_clist_set_shadow_type (GtkCList      *clist,
 }
 
 void
-gtk_clist_set_selection_mode (GtkCList         *clist,
+eth_clist_set_selection_mode (EthCList         *clist,
                              GtkSelectionMode  mode)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (mode == clist->selection_mode)
     return;
@@ -1246,25 +1246,25 @@ gtk_clist_set_selection_mode (GtkCList         *clist,
       return;
     case GTK_SELECTION_BROWSE:
     case GTK_SELECTION_SINGLE:
-      gtk_clist_unselect_all (clist);
+      eth_clist_unselect_all (clist);
       break;
     }
 }
 
 void
-gtk_clist_freeze (GtkCList *clist)
+eth_clist_freeze (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   clist->freeze_count++;
 }
 
 void
-gtk_clist_thaw (GtkCList *clist)
+eth_clist_thaw (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (clist->freeze_count)
     {
@@ -1274,33 +1274,33 @@ gtk_clist_thaw (GtkCList *clist)
 }
 
 /* PUBLIC COLUMN FUNCTIONS
- *   gtk_clist_column_titles_show
- *   gtk_clist_column_titles_hide
- *   gtk_clist_column_title_active
- *   gtk_clist_column_title_passive
- *   gtk_clist_column_titles_active
- *   gtk_clist_column_titles_passive
- *   gtk_clist_set_column_title
- *   gtk_clist_get_column_title
- *   gtk_clist_set_column_widget
- *   gtk_clist_set_column_justification
- *   gtk_clist_set_column_visibility
- *   gtk_clist_set_column_resizeable
- *   gtk_clist_set_column_auto_resize
- *   gtk_clist_optimal_column_width
- *   gtk_clist_set_column_width
- *   gtk_clist_set_column_min_width
- *   gtk_clist_set_column_max_width
+ *   eth_clist_column_titles_show
+ *   eth_clist_column_titles_hide
+ *   eth_clist_column_title_active
+ *   eth_clist_column_title_passive
+ *   eth_clist_column_titles_active
+ *   eth_clist_column_titles_passive
+ *   eth_clist_set_column_title
+ *   eth_clist_get_column_title
+ *   eth_clist_set_column_widget
+ *   eth_clist_set_column_justification
+ *   eth_clist_set_column_visibility
+ *   eth_clist_set_column_resizeable
+ *   eth_clist_set_column_auto_resize
+ *   eth_clist_optimal_column_width
+ *   eth_clist_set_column_width
+ *   eth_clist_set_column_min_width
+ *   eth_clist_set_column_max_width
  */
 void
-gtk_clist_column_titles_show (GtkCList *clist)
+eth_clist_column_titles_show (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (!GTK_CLIST_SHOW_TITLES(clist))
+  if (!ETH_CLIST_SHOW_TITLES(clist))
     {
-      GTK_CLIST_SET_FLAG (clist, CLIST_SHOW_TITLES);
+      ETH_CLIST_SET_FLAG (clist, CLIST_SHOW_TITLES);
       if (clist->title_window)
        gdk_window_show (clist->title_window);
       gtk_widget_queue_resize (GTK_WIDGET (clist));
@@ -1308,14 +1308,14 @@ gtk_clist_column_titles_show (GtkCList *clist)
 }
 
 void
-gtk_clist_column_titles_hide (GtkCList *clist)
+eth_clist_column_titles_hide (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (GTK_CLIST_SHOW_TITLES(clist))
+  if (ETH_CLIST_SHOW_TITLES(clist))
     {
-      GTK_CLIST_UNSET_FLAG (clist, CLIST_SHOW_TITLES);
+      ETH_CLIST_UNSET_FLAG (clist, CLIST_SHOW_TITLES);
       if (clist->title_window)
        gdk_window_hide (clist->title_window);
       gtk_widget_queue_resize (GTK_WIDGET (clist));
@@ -1323,11 +1323,11 @@ gtk_clist_column_titles_hide (GtkCList *clist)
 }
 
 void
-gtk_clist_column_title_active (GtkCList *clist,
+eth_clist_column_title_active (EthCList *clist,
                               gint      column)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1346,13 +1346,13 @@ gtk_clist_column_title_active (GtkCList *clist,
 }
 
 void
-gtk_clist_column_title_passive (GtkCList *clist,
+eth_clist_column_title_passive (EthCList *clist,
                                gint      column)
 {
   GtkButton *button;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1377,37 +1377,37 @@ gtk_clist_column_title_passive (GtkCList *clist,
 }
 
 void
-gtk_clist_column_titles_active (GtkCList *clist)
+eth_clist_column_titles_active (EthCList *clist)
 {
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (!GTK_CLIST_SHOW_TITLES(clist))
+  if (!ETH_CLIST_SHOW_TITLES(clist))
     return;
 
   for (i = 0; i < clist->columns; i++)
-    gtk_clist_column_title_active (clist, i);
+    eth_clist_column_title_active (clist, i);
 }
 
 void
-gtk_clist_column_titles_passive (GtkCList *clist)
+eth_clist_column_titles_passive (EthCList *clist)
 {
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (!GTK_CLIST_SHOW_TITLES(clist))
+  if (!ETH_CLIST_SHOW_TITLES(clist))
     return;
 
   for (i = 0; i < clist->columns; i++)
-    gtk_clist_column_title_passive (clist, i);
+    eth_clist_column_title_passive (clist, i);
 }
 
 void
-gtk_clist_set_column_title (GtkCList    *clist,
+eth_clist_set_column_title (EthCList    *clist,
                            gint         column,
                            const gchar *title)
 {
@@ -1417,7 +1417,7 @@ gtk_clist_set_column_title (GtkCList    *clist,
   GtkWidget *label;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1472,11 +1472,11 @@ gtk_clist_set_column_title (GtkCList    *clist,
 }
 
 gchar *
-gtk_clist_get_column_title (GtkCList *clist,
+eth_clist_get_column_title (EthCList *clist,
                            gint      column)
 {
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   if (column < 0 || column >= clist->columns)
     return NULL;
@@ -1485,7 +1485,7 @@ gtk_clist_get_column_title (GtkCList *clist,
 }
 
 void
-gtk_clist_set_column_widget (GtkCList  *clist,
+eth_clist_set_column_widget (EthCList  *clist,
                             gint       column,
                             GtkWidget *widget)
 {
@@ -1493,7 +1493,7 @@ gtk_clist_set_column_widget (GtkCList  *clist,
   GtkWidget *old_widget;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1528,11 +1528,11 @@ gtk_clist_set_column_widget (GtkCList  *clist,
 }
 
 GtkWidget *
-gtk_clist_get_column_widget (GtkCList *clist,
+eth_clist_get_column_widget (EthCList *clist,
                             gint      column)
 {
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   if (column < 0 || column >= clist->columns)
     return NULL;
@@ -1544,14 +1544,14 @@ gtk_clist_get_column_widget (GtkCList *clist,
 }
 
 void
-gtk_clist_set_column_justification (GtkCList         *clist,
+eth_clist_set_column_justification (EthCList         *clist,
                                    gint              column,
                                    GtkJustification  justification)
 {
   GtkWidget *alignment;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1592,12 +1592,12 @@ gtk_clist_set_column_justification (GtkCList         *clist,
 }
 
 void
-gtk_clist_set_column_visibility (GtkCList *clist,
+eth_clist_set_column_visibility (EthCList *clist,
                                 gint      column,
                                 gboolean  visible)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1632,12 +1632,12 @@ gtk_clist_set_column_visibility (GtkCList *clist,
 }
 
 void
-gtk_clist_set_column_resizeable (GtkCList *clist,
+eth_clist_set_column_resizeable (EthCList *clist,
                                 gint      column,
                                 gboolean  resizeable)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1653,12 +1653,12 @@ gtk_clist_set_column_resizeable (GtkCList *clist,
 }
 
 void
-gtk_clist_set_column_auto_resize (GtkCList *clist,
+eth_clist_set_column_auto_resize (EthCList *clist,
                                  gint      column,
                                  gboolean  auto_resize)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1669,13 +1669,13 @@ gtk_clist_set_column_auto_resize (GtkCList *clist,
   if (auto_resize)
     {
       clist->column[column].resizeable = FALSE;
-      if (!GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
+      if (!ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
        {
          gint width;
 
          /* cap the auto-rezised width to something reasonable */
-         width = MIN(gtk_clist_optimal_column_width (clist, column), MAX_COLUMN_AUTOSIZE_WIDTH);
-         gtk_clist_set_column_width (clist, column, width);
+         width = MIN(eth_clist_optimal_column_width (clist, column), MAX_COLUMN_AUTOSIZE_WIDTH);
+         eth_clist_set_column_width (clist, column, width);
        }
     }
 
@@ -1684,30 +1684,30 @@ gtk_clist_set_column_auto_resize (GtkCList *clist,
 }
 
 gint
-gtk_clist_columns_autosize (GtkCList *clist)
+eth_clist_columns_autosize (EthCList *clist)
 {
   gint i;
   gint width;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
 
-  gtk_clist_freeze (clist);
+  eth_clist_freeze (clist);
   width = 0;
   for (i = 0; i < clist->columns; i++)
     {
-      gtk_clist_set_column_width (clist, i,
-                                 gtk_clist_optimal_column_width (clist, i));
+      eth_clist_set_column_width (clist, i,
+                                 eth_clist_optimal_column_width (clist, i));
 
       width += clist->column[i].width;
     }
 
-  gtk_clist_thaw (clist);
+  eth_clist_thaw (clist);
   return width;
 }
 
 gint
-gtk_clist_optimal_column_width (GtkCList *clist,
+eth_clist_optimal_column_width (EthCList *clist,
                                gint      column)
 {
   GtkRequisition requisition;
@@ -1715,12 +1715,12 @@ gtk_clist_optimal_column_width (GtkCList *clist,
   gint width;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_CLIST (clist), 0);
 
   if (column < 0 || column > clist->columns)
     return 0;
 
-  if (GTK_CLIST_SHOW_TITLES(clist) && clist->column[column].button)
+  if (ETH_CLIST_SHOW_TITLES(clist) && clist->column[column].button)
     width = (clist->column[column].button->requisition.width)
 #if 0
             (CELL_SPACING + (2 * COLUMN_INSET)))
@@ -1731,8 +1731,8 @@ gtk_clist_optimal_column_width (GtkCList *clist,
 
   for (list = clist->row_list; list; list = list->next)
     {
-      GTK_CLIST_CLASS_FW (clist)->cell_size_request
-       (clist, GTK_CLIST_ROW (list), column, &requisition);
+      ETH_CLIST_CLASS_FW (clist)->cell_size_request
+       (clist, ETH_CLIST_ROW (list), column, &requisition);
       width = MAX (width, requisition.width);
     }
 
@@ -1740,12 +1740,12 @@ gtk_clist_optimal_column_width (GtkCList *clist,
 }
 
 void
-gtk_clist_set_column_width (GtkCList *clist,
+eth_clist_set_column_width (EthCList *clist,
                            gint      column,
                            gint      width)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1755,12 +1755,12 @@ gtk_clist_set_column_width (GtkCList *clist,
 }
 
 void
-gtk_clist_set_column_min_width (GtkCList *clist,
+eth_clist_set_column_min_width (EthCList *clist,
                                gint      column,
                                gint      min_width)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1774,16 +1774,16 @@ gtk_clist_set_column_min_width (GtkCList *clist,
     clist->column[column].min_width = min_width;
 
   if (clist->column[column].area.width < clist->column[column].min_width)
-    gtk_clist_set_column_width (clist, column,clist->column[column].min_width);
+    eth_clist_set_column_width (clist, column,clist->column[column].min_width);
 }
 
 void
-gtk_clist_set_column_max_width (GtkCList *clist,
+eth_clist_set_column_max_width (EthCList *clist,
                                gint      column,
                                gint      max_width)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1797,7 +1797,7 @@ gtk_clist_set_column_max_width (GtkCList *clist,
     clist->column[column].max_width = max_width;
 
   if (clist->column[column].area.width > clist->column[column].max_width)
-    gtk_clist_set_column_width (clist, column,clist->column[column].max_width);
+    eth_clist_set_column_width (clist, column,clist->column[column].max_width);
 }
 
 /* PRIVATE COLUMN FUNCTIONS
@@ -1813,8 +1813,8 @@ gtk_clist_set_column_max_width (GtkCList *clist,
  *   column_title_passive_func
  */
 static void
-column_auto_resize (GtkCList    *clist,
-                   GtkCListRow *clist_row,
+column_auto_resize (EthCList    *clist,
+                   EthCListRow *clist_row,
                    gint         column,
                    gint         old_width)
 {
@@ -1822,26 +1822,26 @@ column_auto_resize (GtkCList    *clist,
   GtkRequisition requisition;
 
   if (!clist->column[column].auto_resize ||
-      GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
+      ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
     return;
 
   if (clist_row)
-    GTK_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
+    ETH_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
                                                   column, &requisition);
   else
     requisition.width = 0;
 
   if (requisition.width > clist->column[column].width)
-    gtk_clist_set_column_width (clist, column, requisition.width);
+    eth_clist_set_column_width (clist, column, requisition.width);
   else if (requisition.width < old_width &&
           old_width == clist->column[column].width)
     {
       GList *list;
       gint new_width = 0;
 
-      /* run a "gtk_clist_optimal_column_width" but break, if
+      /* run a "eth_clist_optimal_column_width" but break, if
        * the column doesn't shrink */
-      if (GTK_CLIST_SHOW_TITLES(clist) && clist->column[column].button)
+      if (ETH_CLIST_SHOW_TITLES(clist) && clist->column[column].button)
        new_width = (clist->column[column].button->requisition.width -
                     (CELL_SPACING + (2 * COLUMN_INSET)));
       else
@@ -1849,25 +1849,25 @@ column_auto_resize (GtkCList    *clist,
 
       for (list = clist->row_list; list; list = list->next)
        {
-         GTK_CLIST_CLASS_FW (clist)->cell_size_request
-           (clist, GTK_CLIST_ROW (list), column, &requisition);
+         ETH_CLIST_CLASS_FW (clist)->cell_size_request
+           (clist, ETH_CLIST_ROW (list), column, &requisition);
          new_width = MAX (new_width, requisition.width);
          if (new_width == clist->column[column].width)
            break;
        }
       if (new_width < clist->column[column].width)
-       gtk_clist_set_column_width
+       eth_clist_set_column_width
          (clist, column, MAX (new_width, clist->column[column].min_width));
     }
 }
 
 static void
-real_resize_column (GtkCList *clist,
+real_resize_column (EthCList *clist,
                    gint      column,
                    gint      width)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -1892,15 +1892,15 @@ real_resize_column (GtkCList *clist,
 }
 
 static void
-abort_column_resize (GtkCList *clist)
+abort_column_resize (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (!GTK_CLIST_IN_DRAG(clist))
+  if (!ETH_CLIST_IN_DRAG(clist))
     return;
 
-  GTK_CLIST_UNSET_FLAG (clist, CLIST_IN_DRAG);
+  ETH_CLIST_UNSET_FLAG (clist, CLIST_IN_DRAG);
   gtk_grab_remove (GTK_WIDGET (clist));
   gdk_pointer_ungrab (GDK_CURRENT_TIME);
   clist->drag_pos = -1;
@@ -1908,7 +1908,7 @@ abort_column_resize (GtkCList *clist)
   if (clist->x_drag >= 0 && clist->x_drag <= clist->clist_window_width - 1)
     draw_xor_line (clist);
 
-  if (GTK_CLIST_ADD_MODE(clist))
+  if (ETH_CLIST_ADD_MODE(clist))
     {
       gdk_gc_set_line_attributes (clist->xor_gc, 1, GDK_LINE_ON_OFF_DASH, 0,0);
       gdk_gc_set_dashes (clist->xor_gc, 0, "\4\4", 2);
@@ -1916,7 +1916,7 @@ abort_column_resize (GtkCList *clist)
 }
 
 static void
-size_allocate_title_buttons (GtkCList *clist)
+size_allocate_title_buttons (EthCList *clist)
 {
   GtkAllocation button_allocation;
   gint last_column;
@@ -1992,7 +1992,7 @@ size_allocate_title_buttons (GtkCList *clist)
 }
 
 static void
-size_allocate_columns (GtkCList *clist,
+size_allocate_columns (EthCList *clist,
                       gboolean  block_resize)
 {
   gint xoffset = CELL_SPACING + COLUMN_INSET;
@@ -2013,7 +2013,7 @@ size_allocate_columns (GtkCList *clist,
       clist->column[i].area.x = xoffset;
       if (clist->column[i].width_set)
        {
-         if (!block_resize && GTK_CLIST_SHOW_TITLES(clist) &&
+         if (!block_resize && ETH_CLIST_SHOW_TITLES(clist) &&
              clist->column[i].auto_resize && clist->column[i].button)
            {
              gint width;
@@ -2022,13 +2022,13 @@ size_allocate_columns (GtkCList *clist,
                       (CELL_SPACING + (2 * COLUMN_INSET)));
 
              if (width > clist->column[i].width)
-               gtk_clist_set_column_width (clist, i, width);
+               eth_clist_set_column_width (clist, i, width);
            }
 
          clist->column[i].area.width = clist->column[i].width;
          xoffset += clist->column[i].width + CELL_SPACING + (2* COLUMN_INSET);
        }
-      else if (GTK_CLIST_SHOW_TITLES(clist) && clist->column[i].button)
+      else if (ETH_CLIST_SHOW_TITLES(clist) && clist->column[i].button)
        {
          clist->column[i].area.width =
            clist->column[i].button->requisition.width -
@@ -2042,7 +2042,7 @@ size_allocate_columns (GtkCList *clist,
 }
 
 static gint
-list_requisition_width (GtkCList *clist)
+list_requisition_width (EthCList *clist)
 {
   gint width = CELL_SPACING;
   gint i;
@@ -2054,7 +2054,7 @@ list_requisition_width (GtkCList *clist)
 
       if (clist->column[i].width_set)
        width += clist->column[i].width + CELL_SPACING + (2 * COLUMN_INSET);
-      else if (GTK_CLIST_SHOW_TITLES(clist) && clist->column[i].button)
+      else if (ETH_CLIST_SHOW_TITLES(clist) && clist->column[i].button)
        width += clist->column[i].button->requisition.width;
     }
 
@@ -2065,7 +2065,7 @@ list_requisition_width (GtkCList *clist)
  * the column and x position of the cursor; the x cursor position is passed
  * in as a pointer and automagicly corrected if it's beyond min/max limits */
 static gint
-new_column_width (GtkCList *clist,
+new_column_width (EthCList *clist,
                  gint      column,
                  gint     *x)
 {
@@ -2109,7 +2109,7 @@ new_column_width (GtkCList *clist,
 }
 
 static void
-column_button_create (GtkCList *clist,
+column_button_create (EthCList *clist,
                      gint      column)
 {
   GtkWidget *button;
@@ -2134,12 +2134,12 @@ column_button_clicked (GtkWidget *widget,
                       gpointer   data)
 {
   gint i;
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (data));
+  g_return_if_fail (ETH_IS_CLIST (data));
 
-  clist = GTK_CLIST (data);
+  clist = ETH_CLIST (data);
 
   /* find the column who's button was pressed */
   for (i = 0; i < clist->columns; i++)
@@ -2174,24 +2174,24 @@ column_title_passive_func (GtkWidget *widget _U_,
 
 
 /* PUBLIC CELL FUNCTIONS
- *   gtk_clist_get_cell_type
- *   gtk_clist_set_text
- *   gtk_clist_get_text
- *   gtk_clist_set_pixmap
- *   gtk_clist_get_pixmap
- *   gtk_clist_set_pixtext
- *   gtk_clist_get_pixtext
- *   gtk_clist_set_shift
+ *   eth_clist_get_cell_type
+ *   eth_clist_set_text
+ *   eth_clist_get_text
+ *   eth_clist_set_pixmap
+ *   eth_clist_get_pixmap
+ *   eth_clist_set_pixtext
+ *   eth_clist_get_pixtext
+ *   eth_clist_set_shift
  */
-GtkCellType
-gtk_clist_get_cell_type (GtkCList *clist,
+EthCellType
+eth_clist_get_cell_type (EthCList *clist,
                         gint      row,
                         gint      column)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, -1);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), -1);
 
   if (row < 0 || row >= clist->rows)
     return -1;
@@ -2204,15 +2204,15 @@ gtk_clist_get_cell_type (GtkCList *clist,
 }
 
 void
-gtk_clist_set_text (GtkCList    *clist,
+eth_clist_set_text (EthCList    *clist,
                    gint         row,
                    gint         column,
                    const gchar *text)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2222,27 +2222,27 @@ gtk_clist_set_text (GtkCList    *clist,
   clist_row = ROW_ELEMENT (clist, row)->data;
 
   /* if text is null, then the cell is empty */
-  GTK_CLIST_CLASS_FW (clist)->set_cell_contents
-    (clist, clist_row, column, GTK_CELL_TEXT, text, 0, NULL, NULL);
+  ETH_CLIST_CLASS_FW (clist)->set_cell_contents
+    (clist, clist_row, column, ETH_CELL_TEXT, text, 0, NULL, NULL);
 
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
     {
-      if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      if (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
     }
 }
 
 gint
-gtk_clist_get_text (GtkCList  *clist,
+eth_clist_get_text (EthCList  *clist,
                    gint       row,
                    gint       column,
                    gchar    **text)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return 0;
@@ -2251,26 +2251,26 @@ gtk_clist_get_text (GtkCList  *clist,
 
   clist_row = ROW_ELEMENT (clist, row)->data;
 
-  if (clist_row->cell[column].type != GTK_CELL_TEXT)
+  if (clist_row->cell[column].type != ETH_CELL_TEXT)
     return 0;
 
   if (text)
-    *text = GTK_CELL_TEXT (clist_row->cell[column])->text;
+    *text = ETH_CELL_TEXT (clist_row->cell[column])->text;
 
   return 1;
 }
 
 void
-gtk_clist_set_pixmap (GtkCList  *clist,
+eth_clist_set_pixmap (EthCList  *clist,
                      gint       row,
                      gint       column,
                      GdkPixmap *pixmap,
                      GdkBitmap *mask)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2283,28 +2283,28 @@ gtk_clist_set_pixmap (GtkCList  *clist,
 
   if (mask) gdk_pixmap_ref (mask);
 
-  GTK_CLIST_CLASS_FW (clist)->set_cell_contents
-    (clist, clist_row, column, GTK_CELL_PIXMAP, NULL, 0, pixmap, mask);
+  ETH_CLIST_CLASS_FW (clist)->set_cell_contents
+    (clist, clist_row, column, ETH_CELL_PIXMAP, NULL, 0, pixmap, mask);
 
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
     {
-      if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      if (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
     }
 }
 
 gint
-gtk_clist_get_pixmap (GtkCList   *clist,
+eth_clist_get_pixmap (EthCList   *clist,
                      gint        row,
                      gint        column,
                      GdkPixmap **pixmap,
                      GdkBitmap **mask)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return 0;
@@ -2313,21 +2313,21 @@ gtk_clist_get_pixmap (GtkCList   *clist,
 
   clist_row = ROW_ELEMENT (clist, row)->data;
 
-  if (clist_row->cell[column].type != GTK_CELL_PIXMAP)
+  if (clist_row->cell[column].type != ETH_CELL_PIXMAP)
     return 0;
 
   if (pixmap)
   {
-    *pixmap = GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap;
+    *pixmap = ETH_CELL_PIXMAP (clist_row->cell[column])->pixmap;
     /* mask can be NULL */
-    *mask = GTK_CELL_PIXMAP (clist_row->cell[column])->mask;
+    *mask = ETH_CELL_PIXMAP (clist_row->cell[column])->mask;
   }
 
   return 1;
 }
 
 void
-gtk_clist_set_pixtext (GtkCList    *clist,
+eth_clist_set_pixtext (EthCList    *clist,
                       gint         row,
                       gint         column,
                       const gchar *text,
@@ -2335,10 +2335,10 @@ gtk_clist_set_pixtext (GtkCList    *clist,
                       GdkPixmap   *pixmap,
                       GdkBitmap   *mask)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2349,19 +2349,19 @@ gtk_clist_set_pixtext (GtkCList    *clist,
 
   gdk_pixmap_ref (pixmap);
   if (mask) gdk_pixmap_ref (mask);
-  GTK_CLIST_CLASS_FW (clist)->set_cell_contents
-    (clist, clist_row, column, GTK_CELL_PIXTEXT, text, spacing, pixmap, mask);
+  ETH_CLIST_CLASS_FW (clist)->set_cell_contents
+    (clist, clist_row, column, ETH_CELL_PIXTEXT, text, spacing, pixmap, mask);
 
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
     {
-      if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      if (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
     }
 }
 
 gint
-gtk_clist_get_pixtext (GtkCList   *clist,
+eth_clist_get_pixtext (EthCList   *clist,
                       gint        row,
                       gint        column,
                       gchar     **text,
@@ -2369,10 +2369,10 @@ gtk_clist_get_pixtext (GtkCList   *clist,
                       GdkPixmap **pixmap,
                       GdkBitmap **mask)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return 0;
@@ -2381,34 +2381,34 @@ gtk_clist_get_pixtext (GtkCList   *clist,
 
   clist_row = ROW_ELEMENT (clist, row)->data;
 
-  if (clist_row->cell[column].type != GTK_CELL_PIXTEXT)
+  if (clist_row->cell[column].type != ETH_CELL_PIXTEXT)
     return 0;
 
   if (text)
-    *text = GTK_CELL_PIXTEXT (clist_row->cell[column])->text;
+    *text = ETH_CELL_PIXTEXT (clist_row->cell[column])->text;
   if (spacing)
-    *spacing = GTK_CELL_PIXTEXT (clist_row->cell[column])->spacing;
+    *spacing = ETH_CELL_PIXTEXT (clist_row->cell[column])->spacing;
   if (pixmap)
-    *pixmap = GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap;
+    *pixmap = ETH_CELL_PIXTEXT (clist_row->cell[column])->pixmap;
 
   /* mask can be NULL */
-  *mask = GTK_CELL_PIXTEXT (clist_row->cell[column])->mask;
+  *mask = ETH_CELL_PIXTEXT (clist_row->cell[column])->mask;
 
   return 1;
 }
 
 void
-gtk_clist_set_shift (GtkCList *clist,
+eth_clist_set_shift (EthCList *clist,
                     gint      row,
                     gint      column,
                     gint      vertical,
                     gint      horizontal)
 {
   GtkRequisition requisition = { 0, 0 };
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -2418,8 +2418,8 @@ gtk_clist_set_shift (GtkCList *clist,
   clist_row = ROW_ELEMENT (clist, row)->data;
 
   if (clist->column[column].auto_resize &&
-      !GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
-    GTK_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
+      !ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
+    ETH_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
                                                   column, &requisition);
 
   clist_row->cell[column].vertical = vertical;
@@ -2427,8 +2427,8 @@ gtk_clist_set_shift (GtkCList *clist,
 
   column_auto_resize (clist, clist_row, column, requisition.width);
 
-  if (CLIST_UNFROZEN (clist) && gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-    GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+  if (CLIST_UNFROZEN (clist) && eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+    ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
 }
 
 /* PRIVATE CELL FUNCTIONS
@@ -2436,10 +2436,10 @@ gtk_clist_set_shift (GtkCList *clist,
  *   cell_size_request
  */
 static void
-set_cell_contents (GtkCList    *clist,
-                  GtkCListRow *clist_row,
+set_cell_contents (EthCList    *clist,
+                  EthCListRow *clist_row,
                   gint         column,
-                  GtkCellType  type,
+                  EthCellType  type,
                   const gchar *text,
                   guint8       spacing,
                   GdkPixmap   *pixmap,
@@ -2448,67 +2448,67 @@ set_cell_contents (GtkCList    *clist,
   GtkRequisition requisition;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
   g_return_if_fail (clist_row != NULL);
 
   if (clist->column[column].auto_resize &&
-      !GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
-    GTK_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
+      !ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
+    ETH_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
                                                   column, &requisition);
 
   switch (clist_row->cell[column].type)
     {
-    case GTK_CELL_EMPTY:
+    case ETH_CELL_EMPTY:
       break;
-    case GTK_CELL_TEXT:
-      g_free (GTK_CELL_TEXT (clist_row->cell[column])->text);
+    case ETH_CELL_TEXT:
+      g_free (ETH_CELL_TEXT (clist_row->cell[column])->text);
       break;
-    case GTK_CELL_PIXMAP:
-      gdk_pixmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap);
-      if (GTK_CELL_PIXMAP (clist_row->cell[column])->mask)
-       gdk_bitmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->mask);
+    case ETH_CELL_PIXMAP:
+      gdk_pixmap_unref (ETH_CELL_PIXMAP (clist_row->cell[column])->pixmap);
+      if (ETH_CELL_PIXMAP (clist_row->cell[column])->mask)
+       gdk_bitmap_unref (ETH_CELL_PIXMAP (clist_row->cell[column])->mask);
       break;
-    case GTK_CELL_PIXTEXT:
-      g_free (GTK_CELL_PIXTEXT (clist_row->cell[column])->text);
-      gdk_pixmap_unref (GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap);
-      if (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask)
-       gdk_bitmap_unref (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask);
+    case ETH_CELL_PIXTEXT:
+      g_free (ETH_CELL_PIXTEXT (clist_row->cell[column])->text);
+      gdk_pixmap_unref (ETH_CELL_PIXTEXT (clist_row->cell[column])->pixmap);
+      if (ETH_CELL_PIXTEXT (clist_row->cell[column])->mask)
+       gdk_bitmap_unref (ETH_CELL_PIXTEXT (clist_row->cell[column])->mask);
       break;
-    case GTK_CELL_WIDGET:
+    case ETH_CELL_WIDGET:
       /* unimplimented */
       break;
     default:
       break;
     }
 
-  clist_row->cell[column].type = GTK_CELL_EMPTY;
+  clist_row->cell[column].type = ETH_CELL_EMPTY;
 
   switch (type)
     {
-    case GTK_CELL_TEXT:
+    case ETH_CELL_TEXT:
       if (text)
        {
-         clist_row->cell[column].type = GTK_CELL_TEXT;
-         GTK_CELL_TEXT (clist_row->cell[column])->text = g_strdup (text);
+         clist_row->cell[column].type = ETH_CELL_TEXT;
+         ETH_CELL_TEXT (clist_row->cell[column])->text = g_strdup (text);
        }
       break;
-    case GTK_CELL_PIXMAP:
+    case ETH_CELL_PIXMAP:
       if (pixmap)
        {
-         clist_row->cell[column].type = GTK_CELL_PIXMAP;
-         GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap = pixmap;
+         clist_row->cell[column].type = ETH_CELL_PIXMAP;
+         ETH_CELL_PIXMAP (clist_row->cell[column])->pixmap = pixmap;
          /* We set the mask even if it is NULL */
-         GTK_CELL_PIXMAP (clist_row->cell[column])->mask = mask;
+         ETH_CELL_PIXMAP (clist_row->cell[column])->mask = mask;
        }
       break;
-    case GTK_CELL_PIXTEXT:
+    case ETH_CELL_PIXTEXT:
       if (text && pixmap)
        {
-         clist_row->cell[column].type = GTK_CELL_PIXTEXT;
-         GTK_CELL_PIXTEXT (clist_row->cell[column])->text = g_strdup (text);
-         GTK_CELL_PIXTEXT (clist_row->cell[column])->spacing = spacing;
-         GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap = pixmap;
-         GTK_CELL_PIXTEXT (clist_row->cell[column])->mask = mask;
+         clist_row->cell[column].type = ETH_CELL_PIXTEXT;
+         ETH_CELL_PIXTEXT (clist_row->cell[column])->text = g_strdup (text);
+         ETH_CELL_PIXTEXT (clist_row->cell[column])->spacing = spacing;
+         ETH_CELL_PIXTEXT (clist_row->cell[column])->pixmap = pixmap;
+         ETH_CELL_PIXTEXT (clist_row->cell[column])->mask = mask;
        }
       break;
     default:
@@ -2516,13 +2516,13 @@ set_cell_contents (GtkCList    *clist,
     }
 
   if (clist->column[column].auto_resize &&
-      !GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
+      !ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
     column_auto_resize (clist, clist_row, column, requisition.width);
 }
 
 static void
-cell_size_request (GtkCList       *clist,
-                  GtkCListRow    *clist_row,
+cell_size_request (EthCList       *clist,
+                  EthCListRow    *clist_row,
                   gint            column,
                   GtkRequisition *requisition)
 {
@@ -2531,7 +2531,7 @@ cell_size_request (GtkCList       *clist,
   gint height;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
   g_return_if_fail (requisition != NULL);
 
   get_cell_style (clist, clist_row, GTK_STATE_NORMAL, column, &style,
@@ -2539,25 +2539,25 @@ cell_size_request (GtkCList       *clist,
 
   switch (clist_row->cell[column].type)
     {
-    case GTK_CELL_TEXT:
+    case ETH_CELL_TEXT:
       requisition->width =
        gdk_string_width (style->font,
-                         GTK_CELL_TEXT (clist_row->cell[column])->text);
+                         ETH_CELL_TEXT (clist_row->cell[column])->text);
       requisition->height = style->font->ascent + style->font->descent;
       break;
-    case GTK_CELL_PIXTEXT:
-      gdk_window_get_size (GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap,
+    case ETH_CELL_PIXTEXT:
+      gdk_window_get_size (ETH_CELL_PIXTEXT (clist_row->cell[column])->pixmap,
                           &width, &height);
       requisition->width = width +
-       GTK_CELL_PIXTEXT (clist_row->cell[column])->spacing +
+       ETH_CELL_PIXTEXT (clist_row->cell[column])->spacing +
        gdk_string_width (style->font,
-                         GTK_CELL_TEXT (clist_row->cell[column])->text);
+                         ETH_CELL_TEXT (clist_row->cell[column])->text);
 
       requisition->height = MAX (style->font->ascent + style->font->descent,
                                 height);
       break;
-    case GTK_CELL_PIXMAP:
-      gdk_window_get_size (GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap,
+    case ETH_CELL_PIXMAP:
+      gdk_window_get_size (ETH_CELL_PIXMAP (clist_row->cell[column])->pixmap,
                           &width, &height);
       requisition->width = width;
       requisition->height = height;
@@ -2573,63 +2573,63 @@ cell_size_request (GtkCList       *clist,
 }
 
 /* PUBLIC INSERT/REMOVE ROW FUNCTIONS
- *   gtk_clist_prepend
- *   gtk_clist_append
- *   gtk_clist_insert
- *   gtk_clist_remove
- *   gtk_clist_clear
+ *   eth_clist_prepend
+ *   eth_clist_append
+ *   eth_clist_insert
+ *   eth_clist_remove
+ *   eth_clist_clear
  */
 gint
-gtk_clist_prepend (GtkCList    *clist,
+eth_clist_prepend (EthCList    *clist,
                   gchar       *text[])
 {
   g_return_val_if_fail (clist != NULL, -1);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), -1);
   g_return_val_if_fail (text != NULL, -1);
 
-  return GTK_CLIST_CLASS_FW (clist)->insert_row (clist, 0, text);
+  return ETH_CLIST_CLASS_FW (clist)->insert_row (clist, 0, text);
 }
 
 gint
-gtk_clist_append (GtkCList    *clist,
+eth_clist_append (EthCList    *clist,
                  gchar       *text[])
 {
   g_return_val_if_fail (clist != NULL, -1);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), -1);
   g_return_val_if_fail (text != NULL, -1);
 
-  return GTK_CLIST_CLASS_FW (clist)->insert_row (clist, clist->rows, text);
+  return ETH_CLIST_CLASS_FW (clist)->insert_row (clist, clist->rows, text);
 }
 
 gint
-gtk_clist_insert (GtkCList    *clist,
+eth_clist_insert (EthCList    *clist,
                  gint         row,
                  gchar       *text[])
 {
   g_return_val_if_fail (clist != NULL, -1);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), -1);
   g_return_val_if_fail (text != NULL, -1);
 
   if (row < 0 || row > clist->rows)
     row = clist->rows;
 
-  return GTK_CLIST_CLASS_FW (clist)->insert_row (clist, row, text);
+  return ETH_CLIST_CLASS_FW (clist)->insert_row (clist, row, text);
 }
 
 void
-gtk_clist_remove (GtkCList *clist,
+eth_clist_remove (EthCList *clist,
                  gint      row)
 {
-  GTK_CLIST_CLASS_FW (clist)->remove_row (clist, row);
+  ETH_CLIST_CLASS_FW (clist)->remove_row (clist, row);
 }
 
 void
-gtk_clist_clear (GtkCList *clist)
+eth_clist_clear (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  GTK_CLIST_CLASS_FW (clist)->clear (clist);
+  ETH_CLIST_CLASS_FW (clist)->clear (clist);
 }
 
 /* PRIVATE INSERT/REMOVE ROW FUNCTIONS
@@ -2639,15 +2639,15 @@ gtk_clist_clear (GtkCList *clist)
  *   real_row_move
  */
 static gint
-real_insert_row (GtkCList *clist,
+real_insert_row (EthCList *clist,
                 gint      row,
                 gchar    *text[])
 {
   gint i;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, -1);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), -1);
   g_return_val_if_fail (text != NULL, -1);
 
   /* return if out of bounds */
@@ -2660,8 +2660,8 @@ real_insert_row (GtkCList *clist,
   /* set the text in the row's columns */
   for (i = 0; i < clist->columns; i++)
     if (text[i])
-      GTK_CLIST_CLASS_FW (clist)->set_cell_contents
-       (clist, clist_row, i, GTK_CELL_TEXT, text[i], 0, NULL ,NULL);
+      ETH_CLIST_CLASS_FW (clist)->set_cell_contents
+       (clist, clist_row, i, ETH_CELL_TEXT, text[i], 0, NULL ,NULL);
 
   if (!clist->rows)
     {
@@ -2670,7 +2670,7 @@ real_insert_row (GtkCList *clist,
     }
   else
     {
-      if (GTK_CLIST_AUTO_SORT(clist))   /* override insertion pos */
+      if (ETH_CLIST_AUTO_SORT(clist))   /* override insertion pos */
        {
          GList *work;
 
@@ -2681,7 +2681,7 @@ real_insert_row (GtkCList *clist,
            {
              while (row < clist->rows &&
                     clist->compare (clist, clist_row,
-                                    GTK_CLIST_ROW (work)) > 0)
+                                    ETH_CLIST_ROW (work)) > 0)
                {
                  row++;
                  work = work->next;
@@ -2691,7 +2691,7 @@ real_insert_row (GtkCList *clist,
            {
              while (row < clist->rows &&
                     clist->compare (clist, clist_row,
-                                    GTK_CLIST_ROW (work)) < 0)
+                                    ETH_CLIST_ROW (work)) < 0)
                {
                  row++;
                  work = work->next;
@@ -2719,7 +2719,7 @@ real_insert_row (GtkCList *clist,
     {
       clist->focus_row = 0;
       if (clist->selection_mode == GTK_SELECTION_BROWSE)
-       gtk_clist_select_row (clist, 0, -1);
+       eth_clist_select_row (clist, 0, -1);
     }
 
   /* redraw the list if it isn't frozen */
@@ -2727,7 +2727,7 @@ real_insert_row (GtkCList *clist,
     {
       adjust_adjustments (clist, FALSE);
 
-      if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+      if (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
        draw_rows (clist, NULL);
     }
 
@@ -2735,21 +2735,21 @@ real_insert_row (GtkCList *clist,
 }
 
 static void
-real_remove_row (GtkCList *clist,
+real_remove_row (EthCList *clist,
                 gint      row)
 {
   gint was_visible, was_selected;
   GList *list;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   /* return if out of bounds */
   if (row < 0 || row > (clist->rows - 1))
     return;
 
-  was_visible = (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE);
+  was_visible = (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE);
   was_selected = 0;
 
   /* get the row we're going to delete */
@@ -2801,14 +2801,14 @@ real_remove_row (GtkCList *clist,
 }
 
 static void
-real_clear (GtkCList *clist)
+real_clear (EthCList *clist)
 {
   GList *list;
   GList *free_list;
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   /* free up the selection list */
   g_list_free (clist->selection);
@@ -2827,24 +2827,24 @@ real_clear (GtkCList *clist)
   clist->drag_pos = -1;
 
   /* remove all the rows */
-  GTK_CLIST_SET_FLAG (clist, CLIST_AUTO_RESIZE_BLOCKED);
+  ETH_CLIST_SET_FLAG (clist, CLIST_AUTO_RESIZE_BLOCKED);
   free_list = clist->row_list;
   clist->row_list = NULL;
   clist->row_list_end = NULL;
   clist->rows = 0;
   for (list = free_list; list; list = list->next)
-    row_delete (clist, GTK_CLIST_ROW (list));
+    row_delete (clist, ETH_CLIST_ROW (list));
   g_list_free (free_list);
-  GTK_CLIST_UNSET_FLAG (clist, CLIST_AUTO_RESIZE_BLOCKED);
+  ETH_CLIST_UNSET_FLAG (clist, CLIST_AUTO_RESIZE_BLOCKED);
   for (i = 0; i < clist->columns; i++)
     if (clist->column[i].auto_resize)
       {
-       if (GTK_CLIST_SHOW_TITLES(clist) && clist->column[i].button)
-         gtk_clist_set_column_width
+       if (ETH_CLIST_SHOW_TITLES(clist) && clist->column[i].button)
+         eth_clist_set_column_width
            (clist, i, (clist->column[i].button->requisition.width -
                        (CELL_SPACING + (2 * COLUMN_INSET))));
        else
-         gtk_clist_set_column_width (clist, i, 0);
+         eth_clist_set_column_width (clist, i, 0);
       }
   /* zero-out the scrollbars */
   if (clist->vadjustment)
@@ -2857,19 +2857,19 @@ real_clear (GtkCList *clist)
 }
 
 static void
-real_row_move (GtkCList *clist,
+real_row_move (EthCList *clist,
               gint      source_row,
               gint      dest_row)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
   GList *list;
   gint first, last;
   gint d;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (GTK_CLIST_AUTO_SORT(clist))
+  if (ETH_CLIST_AUTO_SORT(clist))
     return;
 
   if (source_row < 0 || source_row >= clist->rows ||
@@ -2877,7 +2877,7 @@ real_row_move (GtkCList *clist,
       source_row == dest_row)
     return;
 
-  gtk_clist_freeze (clist);
+  eth_clist_freeze (clist);
 
   /* unlink source row */
   clist_row = ROW_ELEMENT (clist, source_row)->data;
@@ -2920,31 +2920,31 @@ real_row_move (GtkCList *clist,
   else if (clist->focus_row > first)
     clist->focus_row += d;
 
-  gtk_clist_thaw (clist);
+  eth_clist_thaw (clist);
 }
 
 /* PUBLIC ROW FUNCTIONS
- *   gtk_clist_moveto
- *   gtk_clist_set_row_height
- *   gtk_clist_set_row_data
- *   gtk_clist_set_row_data_full
- *   gtk_clist_get_row_data
- *   gtk_clist_find_row_from_data
- *   gtk_clist_swap_rows
- *   gtk_clist_row_move
- *   gtk_clist_row_is_visible
- *   gtk_clist_set_foreground
- *   gtk_clist_set_background
+ *   eth_clist_moveto
+ *   eth_clist_set_row_height
+ *   eth_clist_set_row_data
+ *   eth_clist_set_row_data_full
+ *   eth_clist_get_row_data
+ *   eth_clist_find_row_from_data
+ *   eth_clist_swap_rows
+ *   eth_clist_row_move
+ *   eth_clist_row_is_visible
+ *   eth_clist_set_foreground
+ *   eth_clist_set_background
  */
 void
-gtk_clist_moveto (GtkCList *clist,
+eth_clist_moveto (EthCList *clist,
                  gint      row,
                  gint      column,
                  gfloat    row_align,
                  gfloat    col_align)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < -1 || row >= clist->rows)
     return;
@@ -2977,30 +2977,30 @@ gtk_clist_moveto (GtkCList *clist,
 }
 
 void
-gtk_clist_set_row_height (GtkCList *clist,
+eth_clist_set_row_height (EthCList *clist,
                          guint     height)
 {
   GtkWidget *widget;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   widget = GTK_WIDGET (clist);
 
   if (height > 0)
     {
       clist->row_height = height;
-      GTK_CLIST_SET_FLAG (clist, CLIST_ROW_HEIGHT_SET);
+      ETH_CLIST_SET_FLAG (clist, CLIST_ROW_HEIGHT_SET);
     }
   else
     {
-      GTK_CLIST_UNSET_FLAG (clist, CLIST_ROW_HEIGHT_SET);
+      ETH_CLIST_UNSET_FLAG (clist, CLIST_ROW_HEIGHT_SET);
       clist->row_height = 0;
     }
 
   if (GTK_WIDGET_REALIZED (clist))
     {
-      if (!GTK_CLIST_ROW_HEIGHT_SET(clist))
+      if (!ETH_CLIST_ROW_HEIGHT_SET(clist))
        {
          clist->row_height = (widget->style->font->ascent +
                               widget->style->font->descent + 1);
@@ -3016,23 +3016,23 @@ gtk_clist_set_row_height (GtkCList *clist,
 }
 
 void
-gtk_clist_set_row_data (GtkCList *clist,
+eth_clist_set_row_data (EthCList *clist,
                        gint      row,
                        gpointer  data)
 {
-  gtk_clist_set_row_data_full (clist, row, data, NULL);
+  eth_clist_set_row_data_full (clist, row, data, NULL);
 }
 
 void
-gtk_clist_set_row_data_full (GtkCList         *clist,
+eth_clist_set_row_data_full (EthCList         *clist,
                             gint              row,
                             gpointer          data,
                             GtkDestroyNotify  destroy)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row > (clist->rows - 1))
     return;
@@ -3047,13 +3047,13 @@ gtk_clist_set_row_data_full (GtkCList         *clist,
 }
 
 gpointer
-gtk_clist_get_row_data (GtkCList *clist,
+eth_clist_get_row_data (EthCList *clist,
                        gint      row)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   if (row < 0 || row > (clist->rows - 1))
     return NULL;
@@ -3063,56 +3063,56 @@ gtk_clist_get_row_data (GtkCList *clist,
 }
 
 gint
-gtk_clist_find_row_from_data (GtkCList *clist,
+eth_clist_find_row_from_data (EthCList *clist,
                              gpointer  data)
 {
   GList *list;
   gint n;
 
   g_return_val_if_fail (clist != NULL, -1);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), -1);
 
   for (n = 0, list = clist->row_list; list; n++, list = list->next)
-    if (GTK_CLIST_ROW (list)->data == data)
+    if (ETH_CLIST_ROW (list)->data == data)
       return n;
 
   return -1;
 }
 
 void
-gtk_clist_swap_rows (GtkCList *clist,
+eth_clist_swap_rows (EthCList *clist,
                     gint      row1,
                     gint      row2)
 {
   gint first, last;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
   g_return_if_fail (row1 != row2);
 
-  if (GTK_CLIST_AUTO_SORT(clist))
+  if (ETH_CLIST_AUTO_SORT(clist))
     return;
 
-  gtk_clist_freeze (clist);
+  eth_clist_freeze (clist);
 
   first = MIN (row1, row2);
   last  = MAX (row1, row2);
 
-  gtk_clist_row_move (clist, last, first);
-  gtk_clist_row_move (clist, first + 1, last);
+  eth_clist_row_move (clist, last, first);
+  eth_clist_row_move (clist, first + 1, last);
 
-  gtk_clist_thaw (clist);
+  eth_clist_thaw (clist);
 }
 
 void
-gtk_clist_row_move (GtkCList *clist,
+eth_clist_row_move (EthCList *clist,
                    gint      source_row,
                    gint      dest_row)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (GTK_CLIST_AUTO_SORT(clist))
+  if (ETH_CLIST_AUTO_SORT(clist))
     return;
 
   if (source_row < 0 || source_row >= clist->rows ||
@@ -3125,13 +3125,13 @@ gtk_clist_row_move (GtkCList *clist,
 }
 
 GtkVisibility
-gtk_clist_row_is_visible (GtkCList *clist,
+eth_clist_row_is_visible (EthCList *clist,
                          gint      row)
 {
   gint top;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
 
   if (row < 0 || row >= clist->rows)
     return GTK_VISIBILITY_NONE;
@@ -3155,14 +3155,14 @@ gtk_clist_row_is_visible (GtkCList *clist,
 }
 
 void
-gtk_clist_set_foreground (GtkCList *clist,
+eth_clist_set_foreground (EthCList *clist,
                          gint      row,
                          GdkColor *color)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3180,19 +3180,19 @@ gtk_clist_set_foreground (GtkCList *clist,
   else
     clist_row->fg_set = FALSE;
 
-  if (CLIST_UNFROZEN (clist) && gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-    GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+  if (CLIST_UNFROZEN (clist) && eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+    ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
 }
 
 void
-gtk_clist_set_background (GtkCList *clist,
+eth_clist_set_background (EthCList *clist,
                          gint      row,
                          GdkColor *color)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3211,27 +3211,27 @@ gtk_clist_set_background (GtkCList *clist,
     clist_row->bg_set = FALSE;
 
   if (CLIST_UNFROZEN (clist)
-      && (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE))
-    GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      && (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE))
+    ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
 }
 
 /* PUBLIC ROW/CELL STYLE FUNCTIONS
- *   gtk_clist_set_cell_style
- *   gtk_clist_get_cell_style
- *   gtk_clist_set_row_style
- *   gtk_clist_get_row_style
+ *   eth_clist_set_cell_style
+ *   eth_clist_get_cell_style
+ *   eth_clist_set_row_style
+ *   eth_clist_get_row_style
  */
 void
-gtk_clist_set_cell_style (GtkCList *clist,
+eth_clist_set_cell_style (EthCList *clist,
                          gint      row,
                          gint      column,
                          GtkStyle *style)
 {
   GtkRequisition requisition = { 0, 0 };
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3244,8 +3244,8 @@ gtk_clist_set_cell_style (GtkCList *clist,
     return;
 
   if (clist->column[column].auto_resize &&
-      !GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
-    GTK_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
+      !ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
+    ETH_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
                                                   column, &requisition);
 
   if (clist_row->cell[column].style)
@@ -3272,20 +3272,20 @@ gtk_clist_set_cell_style (GtkCList *clist,
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
     {
-      if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      if (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
     }
 }
 
 GtkStyle *
-gtk_clist_get_cell_style (GtkCList *clist,
+eth_clist_get_cell_style (EthCList *clist,
                          gint      row,
                          gint      column)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   if (row < 0 || row >= clist->rows || column < 0 || column >= clist->columns)
     return NULL;
@@ -3296,17 +3296,17 @@ gtk_clist_get_cell_style (GtkCList *clist,
 }
 
 void
-gtk_clist_set_row_style (GtkCList *clist,
+eth_clist_set_row_style (EthCList *clist,
                         gint      row,
                         GtkStyle *style)
 {
   GtkRequisition requisition;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
   gint *old_width;
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3318,12 +3318,12 @@ gtk_clist_set_row_style (GtkCList *clist,
 
   old_width = g_new (gint, clist->columns);
 
-  if (!GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
+  if (!ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
     {
       for (i = 0; i < clist->columns; i++)
        if (clist->column[i].auto_resize)
          {
-           GTK_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
+           ETH_CLIST_CLASS_FW (clist)->cell_size_request (clist, clist_row,
                                                           i, &requisition);
            old_width[i] = requisition.width;
          }
@@ -3347,7 +3347,7 @@ gtk_clist_set_row_style (GtkCList *clist,
                                             clist->clist_window);
     }
 
-  if (GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
+  if (ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
     for (i = 0; i < clist->columns; i++)
       column_auto_resize (clist, clist_row, i, old_width[i]);
 
@@ -3356,19 +3356,19 @@ gtk_clist_set_row_style (GtkCList *clist,
   /* redraw the list if it's not frozen */
   if (CLIST_UNFROZEN (clist))
     {
-      if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      if (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
     }
 }
 
 GtkStyle *
-gtk_clist_get_row_style (GtkCList *clist,
+eth_clist_get_row_style (EthCList *clist,
                         gint      row)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_val_if_fail (clist != NULL, NULL);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), NULL);
 
   if (row < 0 || row >= clist->rows)
     return NULL;
@@ -3379,23 +3379,23 @@ gtk_clist_get_row_style (GtkCList *clist,
 }
 
 /* PUBLIC SELECTION FUNCTIONS
- *   gtk_clist_set_selectable
- *   gtk_clist_get_selectable
- *   gtk_clist_select_row
- *   gtk_clist_unselect_row
- *   gtk_clist_select_all
- *   gtk_clist_unselect_all
- *   gtk_clist_undo_selection
+ *   eth_clist_set_selectable
+ *   eth_clist_get_selectable
+ *   eth_clist_select_row
+ *   eth_clist_unselect_row
+ *   eth_clist_select_all
+ *   eth_clist_unselect_all
+ *   eth_clist_undo_selection
  */
 void
-gtk_clist_set_selectable (GtkCList *clist,
+eth_clist_set_selectable (EthCList *clist,
                          gint      row,
                          gboolean  selectable)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3414,7 +3414,7 @@ gtk_clist_set_selectable (GtkCList *clist,
        {
          clist->drag_button = 0;
          remove_grab (clist);
-         GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+         ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
        }
       gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW],
                       row, -1, NULL);
@@ -3422,25 +3422,25 @@ gtk_clist_set_selectable (GtkCList *clist,
 }
 
 gboolean
-gtk_clist_get_selectable (GtkCList *clist,
+eth_clist_get_selectable (EthCList *clist,
                          gint      row)
 {
   g_return_val_if_fail (clist != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), FALSE);
 
   if (row < 0 || row >= clist->rows)
     return FALSE;
 
-  return GTK_CLIST_ROW (ROW_ELEMENT (clist, row))->selectable;
+  return ETH_CLIST_ROW (ROW_ELEMENT (clist, row))->selectable;
 }
 
 void
-gtk_clist_select_row (GtkCList *clist,
+eth_clist_select_row (EthCList *clist,
                      gint      row,
                      gint      column)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3452,12 +3452,12 @@ gtk_clist_select_row (GtkCList *clist,
 }
 
 void
-gtk_clist_unselect_row (GtkCList *clist,
+eth_clist_unselect_row (EthCList *clist,
                        gint      row,
                        gint      column)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row >= clist->rows)
     return;
@@ -3469,28 +3469,28 @@ gtk_clist_unselect_row (GtkCList *clist,
 }
 
 void
-gtk_clist_select_all (GtkCList *clist)
+eth_clist_select_all (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  GTK_CLIST_CLASS_FW (clist)->select_all (clist);
+  ETH_CLIST_CLASS_FW (clist)->select_all (clist);
 }
 
 void
-gtk_clist_unselect_all (GtkCList *clist)
+eth_clist_unselect_all (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  GTK_CLIST_CLASS_FW (clist)->unselect_all (clist);
+  ETH_CLIST_CLASS_FW (clist)->unselect_all (clist);
 }
 
 void
-gtk_clist_undo_selection (GtkCList *clist)
+eth_clist_undo_selection (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (clist->selection_mode == GTK_SELECTION_EXTENDED &&
       (clist->undo_selection || clist->undo_unselection))
@@ -3518,7 +3518,7 @@ gtk_clist_undo_selection (GtkCList *clist)
  *   sync_selection
  */
 static GList *
-selection_find (GtkCList *clist,
+selection_find (EthCList *clist,
                gint      row_number,
                GList    *row_list_element _U_)
 {
@@ -3526,12 +3526,12 @@ selection_find (GtkCList *clist,
 }
 
 static void
-toggle_row (GtkCList *clist,
+toggle_row (EthCList *clist,
            gint      row,
            gint      column,
            GdkEvent *event)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   switch (clist->selection_mode)
     {
@@ -3557,32 +3557,32 @@ toggle_row (GtkCList *clist,
 }
 
 static void
-fake_toggle_row (GtkCList *clist,
+fake_toggle_row (EthCList *clist,
                 gint      row)
 {
   GList *work;
 
   work = ROW_ELEMENT (clist, row);
 
-  if (!work || !GTK_CLIST_ROW (work)->selectable)
+  if (!work || !ETH_CLIST_ROW (work)->selectable)
     return;
 
-  if (GTK_CLIST_ROW (work)->state == GTK_STATE_NORMAL)
-    clist->anchor_state = GTK_CLIST_ROW (work)->state = GTK_STATE_SELECTED;
+  if (ETH_CLIST_ROW (work)->state == GTK_STATE_NORMAL)
+    clist->anchor_state = ETH_CLIST_ROW (work)->state = GTK_STATE_SELECTED;
   else
-    clist->anchor_state = GTK_CLIST_ROW (work)->state = GTK_STATE_NORMAL;
+    clist->anchor_state = ETH_CLIST_ROW (work)->state = GTK_STATE_NORMAL;
 
   if (CLIST_UNFROZEN (clist) &&
-      gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-    GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row,
-                                         GTK_CLIST_ROW (work));
+      eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+    ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row,
+                                         ETH_CLIST_ROW (work));
 }
 
 static void
-toggle_focus_row (GtkCList *clist)
+toggle_focus_row (EthCList *clist)
 {
   g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if ((gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist)) ||
       clist->focus_row < 0 || clist->focus_row >= clist->rows)
@@ -3604,12 +3604,12 @@ toggle_focus_row (GtkCList *clist)
       clist->drag_pos = clist->focus_row;
       clist->undo_anchor = clist->focus_row;
 
-      if (GTK_CLIST_ADD_MODE(clist))
+      if (ETH_CLIST_ADD_MODE(clist))
        fake_toggle_row (clist, clist->focus_row);
       else
-       GTK_CLIST_CLASS_FW (clist)->fake_unselect_all (clist,clist->focus_row);
+       ETH_CLIST_CLASS_FW (clist)->fake_unselect_all (clist,clist->focus_row);
 
-      GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+      ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
       break;
     default:
       break;
@@ -3617,45 +3617,45 @@ toggle_focus_row (GtkCList *clist)
 }
 
 static void
-toggle_add_mode (GtkCList *clist)
+toggle_add_mode (EthCList *clist)
 {
   g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if ((gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist)) ||
       clist->selection_mode != GTK_SELECTION_EXTENDED)
     return;
 
-  gtk_clist_draw_focus (GTK_WIDGET (clist));
-  if (!GTK_CLIST_ADD_MODE(clist))
+  eth_clist_draw_focus (GTK_WIDGET (clist));
+  if (!ETH_CLIST_ADD_MODE(clist))
     {
-      GTK_CLIST_SET_FLAG (clist, CLIST_ADD_MODE);
+      ETH_CLIST_SET_FLAG (clist, CLIST_ADD_MODE);
       gdk_gc_set_line_attributes (clist->xor_gc, 1,
                                  GDK_LINE_ON_OFF_DASH, 0, 0);
       gdk_gc_set_dashes (clist->xor_gc, 0, "\4\4", 2);
     }
   else
     {
-      GTK_CLIST_UNSET_FLAG (clist, CLIST_ADD_MODE);
+      ETH_CLIST_UNSET_FLAG (clist, CLIST_ADD_MODE);
       gdk_gc_set_line_attributes (clist->xor_gc, 1, GDK_LINE_SOLID, 0, 0);
       clist->anchor_state = GTK_STATE_SELECTED;
     }
-  gtk_clist_draw_focus (GTK_WIDGET (clist));
+  eth_clist_draw_focus (GTK_WIDGET (clist));
 }
 
 static void
-real_select_row (GtkCList *clist,
+real_select_row (EthCList *clist,
                 gint      row,
                 gint      column,
                 GdkEvent *event)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
   GList *list;
   gint sel_row;
   gboolean row_selected;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row > (clist->rows - 1))
     return;
@@ -3704,20 +3704,20 @@ real_select_row (GtkCList *clist,
       g_list_append (clist->selection_end, GINT_TO_POINTER (row))->next;
 
   if (CLIST_UNFROZEN (clist)
-      && (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE))
-    GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+      && (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE))
+    ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
 }
 
 static void
-real_unselect_row (GtkCList *clist,
+real_unselect_row (EthCList *clist,
                   gint      row,
                   gint      column _U_,
                   GdkEvent *event _U_)
 {
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (row < 0 || row > (clist->rows - 1))
     return;
@@ -3736,19 +3736,19 @@ real_unselect_row (GtkCList *clist,
                                        GINT_TO_POINTER (row));
 
       if (CLIST_UNFROZEN (clist)
-         && (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE))
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
+         && (eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE))
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row, clist_row);
     }
 }
 
 static void
-real_select_all (GtkCList *clist)
+real_select_all (EthCList *clist)
 {
   GList *list;
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
     return;
@@ -3766,7 +3766,7 @@ real_select_all (GtkCList *clist)
       clist->undo_unselection = NULL;
 
       if (clist->rows &&
-         ((GtkCListRow *) (clist->row_list->data))->state !=
+         ((EthCListRow *) (clist->row_list->data))->state !=
          GTK_STATE_SELECTED)
        fake_toggle_row (clist, 0);
 
@@ -3775,13 +3775,13 @@ real_select_all (GtkCList *clist)
       clist->drag_pos = 0;
       clist->undo_anchor = clist->focus_row;
       update_extended_selection (clist, clist->rows);
-      GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+      ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
       return;
 
     case GTK_SELECTION_MULTIPLE:
       for (i = 0, list = clist->row_list; list; i++, list = list->next)
        {
-         if (((GtkCListRow *)(list->data))->state == GTK_STATE_NORMAL)
+         if (((EthCListRow *)(list->data))->state == GTK_STATE_NORMAL)
            gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
                             i, -1, NULL);
        }
@@ -3790,13 +3790,13 @@ real_select_all (GtkCList *clist)
 }
 
 static void
-real_unselect_all (GtkCList *clist)
+real_unselect_all (EthCList *clist)
 {
   GList *list;
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
     return;
@@ -3837,7 +3837,7 @@ real_unselect_all (GtkCList *clist)
 }
 
 static void
-fake_unselect_all (GtkCList *clist,
+fake_unselect_all (EthCList *clist,
                   gint      row)
 {
   GList *list;
@@ -3846,15 +3846,15 @@ fake_unselect_all (GtkCList *clist,
 
   if (row >= 0 && (work = ROW_ELEMENT (clist, row)))
     {
-      if (GTK_CLIST_ROW (work)->state == GTK_STATE_NORMAL &&
-         GTK_CLIST_ROW (work)->selectable)
+      if (ETH_CLIST_ROW (work)->state == GTK_STATE_NORMAL &&
+         ETH_CLIST_ROW (work)->selectable)
        {
-         GTK_CLIST_ROW (work)->state = GTK_STATE_SELECTED;
+         ETH_CLIST_ROW (work)->state = GTK_STATE_SELECTED;
 
          if (CLIST_UNFROZEN (clist) &&
-             gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
-           GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row,
-                                                 GTK_CLIST_ROW (work));
+             eth_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
+           ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, row,
+                                                 ETH_CLIST_ROW (work));
        }
     }
 
@@ -3868,31 +3868,31 @@ fake_unselect_all (GtkCList *clist,
          !(work = g_list_nth (clist->row_list, i)))
        continue;
 
-      GTK_CLIST_ROW (work)->state = GTK_STATE_NORMAL;
+      ETH_CLIST_ROW (work)->state = GTK_STATE_NORMAL;
       if (CLIST_UNFROZEN (clist) &&
-         gtk_clist_row_is_visible (clist, i) != GTK_VISIBILITY_NONE)
-       GTK_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, i,
-                                             GTK_CLIST_ROW (work));
+         eth_clist_row_is_visible (clist, i) != GTK_VISIBILITY_NONE)
+       ETH_CLIST_CLASS_FW (clist)->draw_row (clist, NULL, i,
+                                             ETH_CLIST_ROW (work));
     }
 }
 
 static void
-real_undo_selection (GtkCList *clist)
+real_undo_selection (EthCList *clist)
 {
   GList *work;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if ((gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist)) ||
       clist->selection_mode != GTK_SELECTION_EXTENDED)
     return;
 
-  GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+  ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
 
   if (!(clist->undo_selection || clist->undo_unselection))
     {
-      gtk_clist_unselect_all (clist);
+      eth_clist_unselect_all (clist);
       return;
     }
 
@@ -3909,9 +3909,9 @@ real_undo_selection (GtkCList *clist)
 
   if (GTK_WIDGET_HAS_FOCUS(clist) && clist->focus_row != clist->undo_anchor)
     {
-      gtk_clist_draw_focus (GTK_WIDGET (clist));
+      eth_clist_draw_focus (GTK_WIDGET (clist));
       clist->focus_row = clist->undo_anchor;
-      gtk_clist_draw_focus (GTK_WIDGET (clist));
+      eth_clist_draw_focus (GTK_WIDGET (clist));
     }
   else
     clist->focus_row = clist->undo_anchor;
@@ -3925,19 +3925,19 @@ real_undo_selection (GtkCList *clist)
 
   if (ROW_TOP_YPIXEL (clist, clist->focus_row) + clist->row_height >
       clist->clist_window_height)
-    gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+    eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
   else if (ROW_TOP_YPIXEL (clist, clist->focus_row) < 0)
-    gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+    eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
 }
 
 static void
-set_anchor (GtkCList *clist,
+set_anchor (EthCList *clist,
            gboolean  add_mode,
            gint      anchor,
            gint      undo_anchor)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (clist->selection_mode != GTK_SELECTION_EXTENDED || clist->anchor >= 0)
     return;
@@ -3951,7 +3951,7 @@ set_anchor (GtkCList *clist,
     fake_toggle_row (clist, anchor);
   else
     {
-      GTK_CLIST_CLASS_FW (clist)->fake_unselect_all (clist, anchor);
+      ETH_CLIST_CLASS_FW (clist)->fake_unselect_all (clist, anchor);
       clist->anchor_state = GTK_STATE_SELECTED;
     }
 
@@ -3961,14 +3961,14 @@ set_anchor (GtkCList *clist,
 }
 
 static void
-resync_selection (GtkCList *clist,
+resync_selection (EthCList *clist,
                  GdkEvent *event)
 {
   gint i;
   gint e;
   gint row;
   GList *list;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
   if (clist->selection_mode != GTK_SELECTION_EXTENDED)
     return;
@@ -3976,7 +3976,7 @@ resync_selection (GtkCList *clist,
   if (clist->anchor < 0 || clist->drag_pos < 0)
     return;
 
-  gtk_clist_freeze (clist);
+  eth_clist_freeze (clist);
 
   i = MIN (clist->anchor, clist->drag_pos);
   e = MAX (clist->anchor, clist->drag_pos);
@@ -4012,13 +4012,13 @@ resync_selection (GtkCList *clist,
     {
       for (list = g_list_nth (clist->row_list, i); i <= e;
           i++, list = list->next)
-       if (GTK_CLIST_ROW (list)->selectable)
+       if (ETH_CLIST_ROW (list)->selectable)
          {
            if (g_list_find (clist->selection, GINT_TO_POINTER(i)))
              {
-               if (GTK_CLIST_ROW (list)->state == GTK_STATE_NORMAL)
+               if (ETH_CLIST_ROW (list)->state == GTK_STATE_NORMAL)
                  {
-                   GTK_CLIST_ROW (list)->state = GTK_STATE_SELECTED;
+                   ETH_CLIST_ROW (list)->state = GTK_STATE_SELECTED;
                    gtk_signal_emit (GTK_OBJECT (clist),
                                     clist_signals[UNSELECT_ROW],
                                     i, -1, event);
@@ -4027,9 +4027,9 @@ resync_selection (GtkCList *clist,
                                      GINT_TO_POINTER (i));
                  }
              }
-           else if (GTK_CLIST_ROW (list)->state == GTK_STATE_SELECTED)
+           else if (ETH_CLIST_ROW (list)->state == GTK_STATE_SELECTED)
              {
-               GTK_CLIST_ROW (list)->state = GTK_STATE_NORMAL;
+               ETH_CLIST_ROW (list)->state = GTK_STATE_NORMAL;
                clist->undo_unselection =
                  g_list_prepend (clist->undo_unselection,
                                  GINT_TO_POINTER (i));
@@ -4040,13 +4040,13 @@ resync_selection (GtkCList *clist,
     {
       for (list = g_list_nth (clist->row_list, e); i <= e;
           e--, list = list->prev)
-       if (GTK_CLIST_ROW (list)->selectable)
+       if (ETH_CLIST_ROW (list)->selectable)
          {
            if (g_list_find (clist->selection, GINT_TO_POINTER(e)))
              {
-               if (GTK_CLIST_ROW (list)->state == GTK_STATE_NORMAL)
+               if (ETH_CLIST_ROW (list)->state == GTK_STATE_NORMAL)
                  {
-                   GTK_CLIST_ROW (list)->state = GTK_STATE_SELECTED;
+                   ETH_CLIST_ROW (list)->state = GTK_STATE_SELECTED;
                    gtk_signal_emit (GTK_OBJECT (clist),
                                     clist_signals[UNSELECT_ROW],
                                     e, -1, event);
@@ -4055,9 +4055,9 @@ resync_selection (GtkCList *clist,
                                      GINT_TO_POINTER (e));
                  }
              }
-           else if (GTK_CLIST_ROW (list)->state == GTK_STATE_SELECTED)
+           else if (ETH_CLIST_ROW (list)->state == GTK_STATE_SELECTED)
              {
-               GTK_CLIST_ROW (list)->state = GTK_STATE_NORMAL;
+               ETH_CLIST_ROW (list)->state = GTK_STATE_NORMAL;
                clist->undo_unselection =
                  g_list_prepend (clist->undo_unselection,
                                  GINT_TO_POINTER (e));
@@ -4073,11 +4073,11 @@ resync_selection (GtkCList *clist,
   clist->anchor = -1;
   clist->drag_pos = -1;
 
-  gtk_clist_thaw (clist);
+  eth_clist_thaw (clist);
 }
 
 static void
-update_extended_selection (GtkCList *clist,
+update_extended_selection (EthCList *clist,
                           gint      row)
 {
   gint i;
@@ -4156,12 +4156,12 @@ update_extended_selection (GtkCList *clist,
     {
       for (i = s1, list = g_list_nth (clist->row_list, i); i <= e1;
           i++, list = list->next)
-       if (GTK_CLIST_ROW (list)->selectable)
+       if (ETH_CLIST_ROW (list)->selectable)
          {
-           if (GTK_CLIST_CLASS_FW (clist)->selection_find (clist, i, list))
-             GTK_CLIST_ROW (list)->state = GTK_STATE_SELECTED;
+           if (ETH_CLIST_CLASS_FW (clist)->selection_find (clist, i, list))
+             ETH_CLIST_ROW (list)->state = GTK_STATE_SELECTED;
            else
-             GTK_CLIST_ROW (list)->state = GTK_STATE_NORMAL;
+             ETH_CLIST_ROW (list)->state = GTK_STATE_NORMAL;
          }
 
       top = ROW_TOP_YPIXEL (clist, clist->focus_row);
@@ -4171,19 +4171,19 @@ update_extended_selection (GtkCList *clist,
          area.y = 0;
          area.height = ROW_TOP_YPIXEL (clist, e1) + clist->row_height;
          draw_rows (clist, &area);
-         gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+         eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
        }
       else if (top >= clist->clist_window_height)
        {
          area.y = ROW_TOP_YPIXEL (clist, s1) - 1;
          area.height = clist->clist_window_height - area.y;
          draw_rows (clist, &area);
-         gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+         eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
        }
       else if (top < 0)
-       gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+       eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
       else if (top + clist->row_height > clist->clist_window_height)
-       gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+       eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
 
       y1 = ROW_TOP_YPIXEL (clist, s1) - 1;
       h1 = (e1 - s1 + 1) * (clist->row_height + CELL_SPACING);
@@ -4194,9 +4194,9 @@ update_extended_selection (GtkCList *clist,
     {
       for (i = s2, list = g_list_nth (clist->row_list, i); i <= e2;
           i++, list = list->next)
-       if (GTK_CLIST_ROW (list)->selectable &&
-           GTK_CLIST_ROW (list)->state != clist->anchor_state)
-         GTK_CLIST_ROW (list)->state = clist->anchor_state;
+       if (ETH_CLIST_ROW (list)->selectable &&
+           ETH_CLIST_ROW (list)->state != clist->anchor_state)
+         ETH_CLIST_ROW (list)->state = clist->anchor_state;
 
       top = ROW_TOP_YPIXEL (clist, clist->focus_row);
 
@@ -4205,19 +4205,19 @@ update_extended_selection (GtkCList *clist,
          area.y = 0;
          area.height = ROW_TOP_YPIXEL (clist, e2) + clist->row_height;
          draw_rows (clist, &area);
-         gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+         eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
        }
       else if (top >= clist->clist_window_height)
        {
          area.y = ROW_TOP_YPIXEL (clist, s2) - 1;
          area.height = clist->clist_window_height - area.y;
          draw_rows (clist, &area);
-         gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+         eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
        }
       else if (top < 0)
-       gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+       eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
       else if (top + clist->row_height > clist->clist_window_height)
-       gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+       eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
 
       y2 = ROW_TOP_YPIXEL (clist, s2) - 1;
       h2 = (e2 - s2 + 1) * (clist->row_height + CELL_SPACING);
@@ -4233,45 +4233,45 @@ update_extended_selection (GtkCList *clist,
 }
 
 static void
-start_selection (GtkCList *clist)
+start_selection (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
     return;
 
-  set_anchor (clist, GTK_CLIST_ADD_MODE(clist), clist->focus_row,
+  set_anchor (clist, ETH_CLIST_ADD_MODE(clist), clist->focus_row,
              clist->focus_row);
 }
 
 static void
-end_selection (GtkCList *clist)
+end_selection (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_FOCUS(clist))
     return;
 
-  GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+  ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
 }
 
 static void
-extend_selection (GtkCList      *clist,
+extend_selection (EthCList      *clist,
                  GtkScrollType  scroll_type,
                  gfloat         position,
                  gboolean       auto_start_selection)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if ((gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist)) ||
       clist->selection_mode != GTK_SELECTION_EXTENDED)
     return;
 
   if (auto_start_selection)
-    set_anchor (clist, GTK_CLIST_ADD_MODE(clist), clist->focus_row,
+    set_anchor (clist, ETH_CLIST_ADD_MODE(clist), clist->focus_row,
                clist->focus_row);
   else if (clist->anchor == -1)
     return;
@@ -4280,15 +4280,15 @@ extend_selection (GtkCList      *clist,
 
   if (ROW_TOP_YPIXEL (clist, clist->focus_row) + clist->row_height >
       clist->clist_window_height)
-    gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+    eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
   else if (ROW_TOP_YPIXEL (clist, clist->focus_row) < 0)
-    gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+    eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
 
   update_extended_selection (clist, clist->focus_row);
 }
 
 static void
-sync_selection (GtkCList *clist,
+sync_selection (EthCList *clist,
                gint      row,
                gint      mode)
 {
@@ -4310,7 +4310,7 @@ sync_selection (GtkCList *clist,
        clist->focus_row = clist->rows - 1;
     }
 
-  GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+  ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
 
   g_list_free (clist->undo_selection);
   g_list_free (clist->undo_unselection);
@@ -4332,25 +4332,25 @@ sync_selection (GtkCList *clist,
 }
 
 /* GTKOBJECT
- *   gtk_clist_destroy
- *   gtk_clist_finalize
+ *   eth_clist_destroy
+ *   eth_clist_finalize
  */
 static void
-gtk_clist_destroy (GtkObject *object)
+eth_clist_destroy (GtkObject *object)
 {
   gint i;
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (object != NULL);
-  g_return_if_fail (GTK_IS_CLIST (object));
+  g_return_if_fail (ETH_IS_CLIST (object));
 
-  clist = GTK_CLIST (object);
+  clist = ETH_CLIST (object);
 
   /* freeze the list */
   clist->freeze_count++;
 
   /* get rid of all the rows */
-  gtk_clist_clear (clist);
+  eth_clist_clear (clist);
 
   /* Since we don't have a _remove method, unparent the children
    * instead of destroying them so the focus will be unset properly.
@@ -4388,14 +4388,14 @@ gtk_clist_destroy (GtkObject *object)
 }
 
 static void
-gtk_clist_finalize (GtkObject *object)
+eth_clist_finalize (GtkObject *object)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (object != NULL);
-  g_return_if_fail (GTK_IS_CLIST (object));
+  g_return_if_fail (ETH_IS_CLIST (object));
 
-  clist = GTK_CLIST (object);
+  clist = ETH_CLIST (object);
 
   columns_delete (clist);
 
@@ -4407,27 +4407,27 @@ gtk_clist_finalize (GtkObject *object)
 }
 
 /* GTKWIDGET
- *   gtk_clist_realize
- *   gtk_clist_unrealize
- *   gtk_clist_map
- *   gtk_clist_unmap
- *   gtk_clist_draw
- *   gtk_clist_expose
- *   gtk_clist_style_set
- *   gtk_clist_key_press
- *   gtk_clist_button_press
- *   gtk_clist_button_release
- *   gtk_clist_motion
- *   gtk_clist_size_request
- *   gtk_clist_size_allocate
+ *   eth_clist_realize
+ *   eth_clist_unrealize
+ *   eth_clist_map
+ *   eth_clist_unmap
+ *   eth_clist_draw
+ *   eth_clist_expose
+ *   eth_clist_style_set
+ *   eth_clist_key_press
+ *   eth_clist_button_press
+ *   eth_clist_button_release
+ *   eth_clist_motion
+ *   eth_clist_size_request
+ *   eth_clist_size_allocate
  */
 static void
-gtk_clist_realize (GtkWidget *widget)
+eth_clist_realize (GtkWidget *widget)
 {
-  GtkCList *clist;
+  EthCList *clist;
   GdkWindowAttr attributes;
   GdkGCValues values;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
   GList *list;
   gint attributes_mask;
   gint border_width;
@@ -4435,9 +4435,9 @@ gtk_clist_realize (GtkWidget *widget)
   gint j;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
 
@@ -4583,28 +4583,28 @@ gtk_clist_realize (GtkWidget *widget)
 }
 
 static void
-gtk_clist_unrealize (GtkWidget *widget)
+eth_clist_unrealize (GtkWidget *widget)
 {
   gint i;
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   /* freeze the list */
   clist->freeze_count++;
 
   if (GTK_WIDGET_MAPPED (widget))
-    gtk_clist_unmap (widget);
+    eth_clist_unmap (widget);
 
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
 
   /* detach optional row/cell styles */
   if (GTK_WIDGET_REALIZED (widget))
     {
-      GtkCListRow *clist_row;
+      EthCListRow *clist_row;
       GList *list;
       gint j;
 
@@ -4657,15 +4657,15 @@ gtk_clist_unrealize (GtkWidget *widget)
 }
 
 static void
-gtk_clist_map (GtkWidget *widget)
+eth_clist_map (GtkWidget *widget)
 {
   gint i;
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   if (!GTK_WIDGET_MAPPED (widget))
     {
@@ -4697,15 +4697,15 @@ gtk_clist_map (GtkWidget *widget)
 }
 
 static void
-gtk_clist_unmap (GtkWidget *widget)
+eth_clist_unmap (GtkWidget *widget)
 {
   gint i;
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   if (GTK_WIDGET_MAPPED (widget))
     {
@@ -4715,17 +4715,17 @@ gtk_clist_unmap (GtkWidget *widget)
        {
          remove_grab (clist);
 
-         GTK_CLIST_CLASS_FW (widget)->resync_selection (clist, NULL);
+         ETH_CLIST_CLASS_FW (widget)->resync_selection (clist, NULL);
 
          clist->click_cell.row = -1;
          clist->click_cell.column = -1;
          clist->drag_button = 0;
 
-         if (GTK_CLIST_IN_DRAG(clist))
+         if (ETH_CLIST_IN_DRAG(clist))
            {
              gpointer drag_data;
 
-             GTK_CLIST_UNSET_FLAG (clist, CLIST_IN_DRAG);
+             ETH_CLIST_UNSET_FLAG (clist, CLIST_IN_DRAG);
              drag_data = gtk_object_get_data (GTK_OBJECT (clist),
                                               "gtk-site-data");
              if (drag_data)
@@ -4754,21 +4754,21 @@ gtk_clist_unmap (GtkWidget *widget)
 }
 
 static void
-gtk_clist_draw (GtkWidget    *widget,
+eth_clist_draw (GtkWidget    *widget,
                GdkRectangle *area)
 {
-  GtkCList *clist;
+  EthCList *clist;
   gint border_width;
   GdkRectangle child_area;
   int i;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (area != NULL);
 
   if (GTK_WIDGET_DRAWABLE (widget))
     {
-      clist = GTK_CLIST (widget);
+      clist = ETH_CLIST (widget);
       border_width = GTK_CONTAINER (widget)->border_width;
 
       gdk_window_clear_area (widget->window,
@@ -4801,18 +4801,18 @@ gtk_clist_draw (GtkWidget    *widget,
 }
 
 static gint
-gtk_clist_expose (GtkWidget      *widget,
+eth_clist_expose (GtkWidget      *widget,
                  GdkEventExpose *event)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
   if (GTK_WIDGET_DRAWABLE (widget))
     {
-      clist = GTK_CLIST (widget);
+      clist = ETH_CLIST (widget);
 
       /* draw border */
       if (event->window == widget->window)
@@ -4834,18 +4834,18 @@ gtk_clist_expose (GtkWidget      *widget,
 }
 
 static void
-gtk_clist_style_set (GtkWidget *widget,
+eth_clist_style_set (GtkWidget *widget,
                     GtkStyle  *previous_style)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
 
   if (GTK_WIDGET_CLASS (parent_class)->style_set)
     (*GTK_WIDGET_CLASS (parent_class)->style_set) (widget, previous_style);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   if (GTK_WIDGET_REALIZED (widget))
     {
@@ -4857,7 +4857,7 @@ gtk_clist_style_set (GtkWidget *widget,
   /* Fill in data after widget has correct style */
 
   /* text properties */
-  if (!GTK_CLIST_ROW_HEIGHT_SET(clist))
+  if (!ETH_CLIST_ROW_HEIGHT_SET(clist))
     {
       clist->row_height = (widget->style->font->ascent +
                           widget->style->font->descent + 1);
@@ -4869,7 +4869,7 @@ gtk_clist_style_set (GtkWidget *widget,
                                      widget->style->font->descent - 1) / 2;
 
   /* Column widths */
-  if (!GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
+  if (!ETH_CLIST_AUTO_RESIZE_BLOCKED(clist))
     {
       gint width;
       gint i;
@@ -4877,19 +4877,19 @@ gtk_clist_style_set (GtkWidget *widget,
       for (i = 0; i < clist->columns; i++)
        if (clist->column[i].auto_resize)
          {
-           width = gtk_clist_optimal_column_width (clist, i);
+           width = eth_clist_optimal_column_width (clist, i);
            if (width != clist->column[i].width)
-             gtk_clist_set_column_width (clist, i, width);
+             eth_clist_set_column_width (clist, i, width);
          }
     }
 }
 
 static gint
-gtk_clist_key_press (GtkWidget   *widget,
+eth_clist_key_press (GtkWidget   *widget,
                     GdkEventKey *event)
 {
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
   if (GTK_WIDGET_CLASS (parent_class)->key_press_event &&
@@ -4913,11 +4913,11 @@ gtk_clist_key_press (GtkWidget   *widget,
 }
 
 static gint
-gtk_clist_button_press (GtkWidget      *widget,
+eth_clist_button_press (GtkWidget      *widget,
                        GdkEventButton *event)
 {
   gint i;
-  GtkCList *clist;
+  EthCList *clist;
   gint x;
   gint y;
   gint row;
@@ -4925,14 +4925,14 @@ gtk_clist_button_press (GtkWidget      *widget,
   gint button_actions;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   button_actions = clist->button_actions[event->button - 1];
 
-  if (button_actions == GTK_BUTTON_IGNORED)
+  if (button_actions == ETH_BUTTON_IGNORED)
     return FALSE;
 
   /* selections on the list */
@@ -4972,18 +4972,18 @@ gtk_clist_button_press (GtkWidget      *widget,
              remove_grab (clist);
            }
 
-         if (button_actions & GTK_BUTTON_SELECTS)
+         if (button_actions & ETH_BUTTON_SELECTS)
            {
-             if (GTK_CLIST_ADD_MODE(clist))
+             if (ETH_CLIST_ADD_MODE(clist))
                {
-                 GTK_CLIST_UNSET_FLAG (clist, CLIST_ADD_MODE);
+                 ETH_CLIST_UNSET_FLAG (clist, CLIST_ADD_MODE);
                  if (GTK_WIDGET_HAS_FOCUS(widget))
                    {
-                     gtk_clist_draw_focus (widget);
+                     eth_clist_draw_focus (widget);
                      gdk_gc_set_line_attributes (clist->xor_gc, 1,
                                                  GDK_LINE_SOLID, 0, 0);
                      clist->focus_row = row;
-                     gtk_clist_draw_focus (widget);
+                     eth_clist_draw_focus (widget);
                    }
                  else
                    {
@@ -4996,9 +4996,9 @@ gtk_clist_button_press (GtkWidget      *widget,
                {
                  if (GTK_WIDGET_HAS_FOCUS(widget))
                    {
-                     gtk_clist_draw_focus (widget);
+                     eth_clist_draw_focus (widget);
                      clist->focus_row = row;
-                     gtk_clist_draw_focus (widget);
+                     eth_clist_draw_focus (widget);
                    }
                  else
                    clist->focus_row = row;
@@ -5008,7 +5008,7 @@ gtk_clist_button_press (GtkWidget      *widget,
          if (!GTK_WIDGET_HAS_FOCUS(widget))
            gtk_widget_grab_focus (widget);
 
-         if (button_actions & GTK_BUTTON_SELECTS)
+         if (button_actions & ETH_BUTTON_SELECTS)
            {
              switch (clist->selection_mode)
                {
@@ -5035,7 +5035,7 @@ gtk_clist_button_press (GtkWidget      *widget,
                      if (clist->anchor != -1)
                        {
                          update_extended_selection (clist, clist->focus_row);
-                         GTK_CLIST_CLASS_FW (clist)->resync_selection
+                         ETH_CLIST_CLASS_FW (clist)->resync_selection
                            (clist, (GdkEvent *) event);
                        }
                      gtk_signal_emit (GTK_OBJECT (clist),
@@ -5106,7 +5106,7 @@ gtk_clist_button_press (GtkWidget      *widget,
          return FALSE;
 
        gtk_grab_add (widget);
-       GTK_CLIST_SET_FLAG (clist, CLIST_IN_DRAG);
+       ETH_CLIST_SET_FLAG (clist, CLIST_IN_DRAG);
 
        /* block attached dnd signal handler */
        drag_data = gtk_object_get_data (GTK_OBJECT (clist), "gtk-site-data");
@@ -5120,7 +5120,7 @@ gtk_clist_button_press (GtkWidget      *widget,
        clist->x_drag = (COLUMN_LEFT_XPIXEL(clist, i) + COLUMN_INSET +
                         clist->column[i].area.width + CELL_SPACING);
 
-       if (GTK_CLIST_ADD_MODE(clist))
+       if (ETH_CLIST_ADD_MODE(clist))
          gdk_gc_set_line_attributes (clist->xor_gc, 1, GDK_LINE_SOLID, 0, 0);
        draw_xor_line (clist);
       }
@@ -5128,24 +5128,24 @@ gtk_clist_button_press (GtkWidget      *widget,
 }
 
 static gint
-gtk_clist_button_release (GtkWidget      *widget,
+eth_clist_button_release (GtkWidget      *widget,
                          GdkEventButton *event)
 {
-  GtkCList *clist;
+  EthCList *clist;
   gint button_actions;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   button_actions = clist->button_actions[event->button - 1];
-  if (button_actions == GTK_BUTTON_IGNORED)
+  if (button_actions == ETH_BUTTON_IGNORED)
     return FALSE;
 
   /* release on resize windows */
-  if (GTK_CLIST_IN_DRAG(clist))
+  if (ETH_CLIST_IN_DRAG(clist))
     {
       gpointer drag_data;
       gint width;
@@ -5160,7 +5160,7 @@ gtk_clist_button_release (GtkWidget      *widget,
       if (drag_data)
        gtk_signal_handler_unblock_by_data (GTK_OBJECT (clist), drag_data);
 
-      GTK_CLIST_UNSET_FLAG (clist, CLIST_IN_DRAG);
+      ETH_CLIST_UNSET_FLAG (clist, CLIST_IN_DRAG);
       gtk_widget_get_pointer (widget, &x, NULL);
       gtk_grab_remove (widget);
       gdk_pointer_ungrab (event->time);
@@ -5168,7 +5168,7 @@ gtk_clist_button_release (GtkWidget      *widget,
       if (clist->x_drag >= 0)
        draw_xor_line (clist);
 
-      if (GTK_CLIST_ADD_MODE(clist))
+      if (ETH_CLIST_ADD_MODE(clist))
        {
          gdk_gc_set_line_attributes (clist->xor_gc, 1,
                                      GDK_LINE_ON_OFF_DASH, 0, 0);
@@ -5176,7 +5176,7 @@ gtk_clist_button_release (GtkWidget      *widget,
        }
 
       width = new_column_width (clist, i, &x);
-      gtk_clist_set_column_width (clist, i, width);
+      eth_clist_set_column_width (clist, i, width);
       return FALSE;
     }
 
@@ -5191,7 +5191,7 @@ gtk_clist_button_release (GtkWidget      *widget,
 
       remove_grab (clist);
 
-      if (button_actions & GTK_BUTTON_SELECTS)
+      if (button_actions & ETH_BUTTON_SELECTS)
        {
          switch (clist->selection_mode)
            {
@@ -5200,7 +5200,7 @@ gtk_clist_button_release (GtkWidget      *widget,
                  !GTK_WIDGET_CAN_FOCUS (widget) ||
                  event->x < 0 || event->x >= clist->clist_window_width ||
                  event->y < 0 || event->y >= clist->clist_window_height)
-               GTK_CLIST_CLASS_FW (clist)->resync_selection
+               ETH_CLIST_CLASS_FW (clist)->resync_selection
                  (clist, (GdkEvent *) event);
              break;
            case GTK_SELECTION_SINGLE:
@@ -5222,10 +5222,10 @@ gtk_clist_button_release (GtkWidget      *widget,
 }
 
 static gint
-gtk_clist_motion (GtkWidget      *widget,
+eth_clist_motion (GtkWidget      *widget,
                  GdkEventMotion *event)
 {
-  GtkCList *clist;
+  EthCList *clist;
   gint x;
   gint y;
   gint row;
@@ -5233,16 +5233,16 @@ gtk_clist_motion (GtkWidget      *widget,
   gint button_actions = 0;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
   if (!(gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist)))
     return FALSE;
 
   if (clist->drag_button > 0)
     button_actions = clist->button_actions[clist->drag_button - 1];
 
-  if (GTK_CLIST_IN_DRAG(clist))
+  if (ETH_CLIST_IN_DRAG(clist))
     {
       if (event->is_hint || event->window != widget->window)
        gtk_widget_get_pointer (widget, &x, NULL);
@@ -5266,7 +5266,7 @@ gtk_clist_motion (GtkWidget      *widget,
                            clist->column[clist->drag_pos].min_width + 1))
        {
          if (COLUMN_LEFT_XPIXEL (clist, clist->drag_pos) < 0 && x < 0)
-           gtk_clist_moveto (clist, -1, clist->drag_pos, 0, 0);
+           eth_clist_moveto (clist, -1, clist->drag_pos, 0, 0);
          return FALSE;
        }
       if (clist->column[clist->drag_pos].max_width >= COLUMN_MIN_WIDTH &&
@@ -5285,7 +5285,7 @@ gtk_clist_motion (GtkWidget      *widget,
   if (event->is_hint || event->window != clist->clist_window)
     gdk_window_get_pointer (clist->clist_window, &x, &y, NULL);
 
-  if (GTK_CLIST_REORDERABLE(clist) && button_actions & GTK_BUTTON_DRAGS)
+  if (ETH_CLIST_REORDERABLE(clist) && button_actions & ETH_BUTTON_DRAGS)
     {
       /* delayed drag start */
       if (event->window == clist->clist_window &&
@@ -5331,7 +5331,7 @@ gtk_clist_motion (GtkWidget      *widget,
        }
     }
 
-  if (GTK_CLIST_IN_DRAG(clist))
+  if (ETH_CLIST_IN_DRAG(clist))
     return FALSE;
 
   /* vertical autoscrolling */
@@ -5360,15 +5360,15 @@ gtk_clist_motion (GtkWidget      *widget,
 
   row = CLAMP (row, 0, clist->rows - 1);
 
-  if (button_actions & GTK_BUTTON_SELECTS &
+  if (button_actions & ETH_BUTTON_SELECTS &
       !gtk_object_get_data (GTK_OBJECT (widget), "gtk-site-data"))
     {
       if (row == clist->focus_row)
        return FALSE;
 
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       clist->focus_row = row;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
 
       switch (clist->selection_mode)
        {
@@ -5394,24 +5394,24 @@ gtk_clist_motion (GtkWidget      *widget,
 }
 
 static void
-gtk_clist_size_request (GtkWidget      *widget,
+eth_clist_size_request (GtkWidget      *widget,
                        GtkRequisition *requisition)
 {
-  GtkCList *clist;
+  EthCList *clist;
   gint i;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (requisition != NULL);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   requisition->width = 0;
   requisition->height = 0;
 
   /* compute the size of the column title (title) area */
   clist->column_title_area.height = 0;
-  if (GTK_CLIST_SHOW_TITLES(clist))
+  if (ETH_CLIST_SHOW_TITLES(clist))
     for (i = 0; i < clist->columns; i++)
       if (clist->column[i].button)
        {
@@ -5437,18 +5437,18 @@ gtk_clist_size_request (GtkWidget      *widget,
 }
 
 static void
-gtk_clist_size_allocate (GtkWidget     *widget,
+eth_clist_size_allocate (GtkWidget     *widget,
                         GtkAllocation *allocation)
 {
-  GtkCList *clist;
+  EthCList *clist;
   GtkAllocation clist_allocation;
   gint border_width;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (allocation != NULL);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
   widget->allocation = *allocation;
   border_width = GTK_CONTAINER (widget)->border_width;
 
@@ -5517,25 +5517,25 @@ gtk_clist_size_allocate (GtkWidget     *widget,
 }
 
 /* GTKCONTAINER
- *   gtk_clist_forall
+ *   eth_clist_forall
  */
 static void
-gtk_clist_forall (GtkContainer *container,
+eth_clist_forall (GtkContainer *container,
                  gboolean      include_internals,
                  GtkCallback   callback,
                  gpointer      callback_data)
 {
-  GtkCList *clist;
+  EthCList *clist;
   gint i;
 
   g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_CLIST (container));
+  g_return_if_fail (ETH_IS_CLIST (container));
   g_return_if_fail (callback != NULL);
 
   if (!include_internals)
     return;
 
-  clist = GTK_CLIST (container);
+  clist = ETH_CLIST (container);
 
   /* callback for the column buttons */
   for (i = 0; i < clist->columns; i++)
@@ -5552,8 +5552,8 @@ gtk_clist_forall (GtkContainer *container,
  *   clist_refresh
  */
 static void
-get_cell_style (GtkCList     *clist,
-               GtkCListRow  *clist_row,
+get_cell_style (EthCList     *clist,
+               EthCListRow  *clist_row,
                gint          state,
                gint          column,
                GtkStyle    **style,
@@ -5664,10 +5664,10 @@ draw_cell_pixmap (GdkWindow    *window,
 }
 
 static void
-draw_row (GtkCList     *clist,
+draw_row (EthCList     *clist,
          GdkRectangle *area,
          gint          row,
-         GtkCListRow  *clist_row)
+         EthCListRow  *clist_row)
 {
   GtkWidget *widget;
   GdkRectangle *rect;
@@ -5827,22 +5827,22 @@ draw_row (GtkCList     *clist,
       offset = 0;
       switch (clist_row->cell[i].type)
        {
-       case GTK_CELL_TEXT:
+       case ETH_CELL_TEXT:
          width = gdk_string_width (style->font,
-                                   GTK_CELL_TEXT (clist_row->cell[i])->text);
+                                   ETH_CELL_TEXT (clist_row->cell[i])->text);
          break;
-       case GTK_CELL_PIXMAP:
-         gdk_window_get_size (GTK_CELL_PIXMAP (clist_row->cell[i])->pixmap,
+       case ETH_CELL_PIXMAP:
+         gdk_window_get_size (ETH_CELL_PIXMAP (clist_row->cell[i])->pixmap,
                               &pixmap_width, &height);
          width = pixmap_width;
          break;
-       case GTK_CELL_PIXTEXT:
-         gdk_window_get_size (GTK_CELL_PIXTEXT (clist_row->cell[i])->pixmap,
+       case ETH_CELL_PIXTEXT:
+         gdk_window_get_size (ETH_CELL_PIXTEXT (clist_row->cell[i])->pixmap,
                               &pixmap_width, &height);
          width = (pixmap_width +
-                  GTK_CELL_PIXTEXT (clist_row->cell[i])->spacing +
+                  ETH_CELL_PIXTEXT (clist_row->cell[i])->spacing +
                   gdk_string_width (style->font,
-                                    GTK_CELL_PIXTEXT
+                                    ETH_CELL_PIXTEXT
                                     (clist_row->cell[i])->text));
          break;
        default:
@@ -5869,26 +5869,26 @@ draw_row (GtkCList     *clist,
       /* Draw Text and/or Pixmap */
       switch (clist_row->cell[i].type)
        {
-       case GTK_CELL_PIXMAP:
+       case ETH_CELL_PIXMAP:
          draw_cell_pixmap (clist->clist_window, &clip_rectangle, fg_gc,
-                           GTK_CELL_PIXMAP (clist_row->cell[i])->pixmap,
-                           GTK_CELL_PIXMAP (clist_row->cell[i])->mask,
+                           ETH_CELL_PIXMAP (clist_row->cell[i])->pixmap,
+                           ETH_CELL_PIXMAP (clist_row->cell[i])->mask,
                            offset,
                            clip_rectangle.y + clist_row->cell[i].vertical +
                            (clip_rectangle.height - height) / 2,
                            pixmap_width, height);
          break;
-       case GTK_CELL_PIXTEXT:
+       case ETH_CELL_PIXTEXT:
          offset =
            draw_cell_pixmap (clist->clist_window, &clip_rectangle, fg_gc,
-                             GTK_CELL_PIXTEXT (clist_row->cell[i])->pixmap,
-                             GTK_CELL_PIXTEXT (clist_row->cell[i])->mask,
+                             ETH_CELL_PIXTEXT (clist_row->cell[i])->pixmap,
+                             ETH_CELL_PIXTEXT (clist_row->cell[i])->mask,
                              offset,
                              clip_rectangle.y + clist_row->cell[i].vertical+
                              (clip_rectangle.height - height) / 2,
                              pixmap_width, height);
-         offset += GTK_CELL_PIXTEXT (clist_row->cell[i])->spacing;
-       case GTK_CELL_TEXT:
+         offset += ETH_CELL_PIXTEXT (clist_row->cell[i])->spacing;
+       case ETH_CELL_TEXT:
          if (style != GTK_WIDGET (clist)->style)
            row_center_offset = (((clist->row_height - style->font->ascent -
                                  style->font->descent - 1) / 2) + 1.5 +
@@ -5901,9 +5901,9 @@ draw_row (GtkCList     *clist,
                           offset,
                           row_rectangle.y + row_center_offset +
                           clist_row->cell[i].vertical,
-                          (clist_row->cell[i].type == GTK_CELL_PIXTEXT) ?
-                          GTK_CELL_PIXTEXT (clist_row->cell[i])->text :
-                          GTK_CELL_TEXT (clist_row->cell[i])->text);
+                          (clist_row->cell[i].type == ETH_CELL_PIXTEXT) ?
+                          ETH_CELL_PIXTEXT (clist_row->cell[i])->text :
+                          ETH_CELL_TEXT (clist_row->cell[i])->text);
          gdk_gc_set_clip_rectangle (fg_gc, NULL);
          break;
        default:
@@ -5933,17 +5933,17 @@ draw_row (GtkCList     *clist,
 }
 
 static void
-draw_rows (GtkCList     *clist,
+draw_rows (EthCList     *clist,
           GdkRectangle *area)
 {
   GList *list;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
   gint i;
   gint first_row;
   gint last_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (clist->row_height == 0 ||
       !GTK_WIDGET_DRAWABLE (clist))
@@ -5977,7 +5977,7 @@ draw_rows (GtkCList     *clist,
       if (i > last_row)
        return;
 
-      GTK_CLIST_CLASS_FW (clist)->draw_row (clist, area, i, clist_row);
+      ETH_CLIST_CLASS_FW (clist)->draw_row (clist, area, i, clist_row);
       i++;
     }
 
@@ -5987,7 +5987,7 @@ draw_rows (GtkCList     *clist,
 }
 
 static void
-draw_xor_line (GtkCList *clist)
+draw_xor_line (EthCList *clist)
 {
   GtkWidget *widget;
 
@@ -6004,10 +6004,10 @@ draw_xor_line (GtkCList *clist)
 }
 
 static void
-clist_refresh (GtkCList *clist)
+clist_refresh (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (CLIST_UNFROZEN (clist))
     {
@@ -6018,10 +6018,10 @@ clist_refresh (GtkCList *clist)
 
 /* get cell from coordinates
  *   get_selection_info
- *   gtk_clist_get_selection_info
+ *   eth_clist_get_selection_info
  */
 static gint
-get_selection_info (GtkCList *clist,
+get_selection_info (EthCList *clist,
                    gint      x,
                    gint      y,
                    gint     *row,
@@ -6030,7 +6030,7 @@ get_selection_info (GtkCList *clist,
   gint trow, tcol;
 
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
 
   /* bounds checking, return false if the user clicked
    * on a blank area */
@@ -6052,14 +6052,14 @@ get_selection_info (GtkCList *clist,
 }
 
 gint
-gtk_clist_get_selection_info (GtkCList *clist,
+eth_clist_get_selection_info (EthCList *clist,
                              gint      x,
                              gint      y,
                              gint     *row,
                              gint     *column)
 {
   g_return_val_if_fail (clist != NULL, 0);
-  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);
+  g_return_val_if_fail (ETH_IS_CLIST (clist), 0);
   return get_selection_info (clist, x, y, row, column);
 }
 
@@ -6072,7 +6072,7 @@ gtk_clist_get_selection_info (GtkCList *clist,
  *   check_exposures
  */
 static void
-adjust_adjustments (GtkCList *clist,
+adjust_adjustments (EthCList *clist,
                    gboolean  block_resize)
 {
   if (clist->vadjustment)
@@ -6133,39 +6133,39 @@ static void
 vadjustment_changed (GtkAdjustment *adjustment,
                     gpointer       data)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (adjustment != NULL);
   g_return_if_fail (data != NULL);
 
-  clist = GTK_CLIST (data);
+  clist = ETH_CLIST (data);
 }
 
 static void
 hadjustment_changed (GtkAdjustment *adjustment,
                     gpointer       data)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (adjustment != NULL);
   g_return_if_fail (data != NULL);
 
-  clist = GTK_CLIST (data);
+  clist = ETH_CLIST (data);
 }
 
 static void
 vadjustment_value_changed (GtkAdjustment *adjustment,
                           gpointer       data)
 {
-  GtkCList *clist;
+  EthCList *clist;
   GdkRectangle area;
   gint diff, value;
 
   g_return_if_fail (adjustment != NULL);
   g_return_if_fail (data != NULL);
-  g_return_if_fail (GTK_IS_CLIST (data));
+  g_return_if_fail (ETH_IS_CLIST (data));
 
-  clist = GTK_CLIST (data);
+  clist = ETH_CLIST (data);
 
   if (!GTK_WIDGET_DRAWABLE (clist) || adjustment != clist->vadjustment)
     return;
@@ -6232,7 +6232,7 @@ static void
 hadjustment_value_changed (GtkAdjustment *adjustment,
                           gpointer       data)
 {
-  GtkCList *clist;
+  EthCList *clist;
   GdkRectangle area;
   gint i;
   gint y = 0;
@@ -6241,9 +6241,9 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
 
   g_return_if_fail (adjustment != NULL);
   g_return_if_fail (data != NULL);
-  g_return_if_fail (GTK_IS_CLIST (data));
+  g_return_if_fail (ETH_IS_CLIST (data));
 
-  clist = GTK_CLIST (data);
+  clist = ETH_CLIST (data);
 
   if (!GTK_WIDGET_DRAWABLE (clist) || adjustment != clist->hadjustment)
     return;
@@ -6287,7 +6287,7 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
        }
 
       if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
-         !GTK_CLIST_CHILD_HAS_FOCUS(clist) && GTK_CLIST_ADD_MODE(clist))
+         !ETH_CLIST_CHILD_HAS_FOCUS(clist) && ETH_CLIST_ADD_MODE(clist))
        {
          y = ROW_TOP_YPIXEL (clist, clist->focus_row);
 
@@ -6322,7 +6322,7 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
        }
 
       if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
-         !GTK_CLIST_CHILD_HAS_FOCUS(clist) && GTK_CLIST_ADD_MODE(clist))
+         !ETH_CLIST_CHILD_HAS_FOCUS(clist) && ETH_CLIST_ADD_MODE(clist))
        {
          y = ROW_TOP_YPIXEL (clist, clist->focus_row);
 
@@ -6350,9 +6350,9 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
   check_exposures (clist);
 
   if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
-      !GTK_CLIST_CHILD_HAS_FOCUS(clist))
+      !ETH_CLIST_CHILD_HAS_FOCUS(clist))
     {
-      if (GTK_CLIST_ADD_MODE(clist))
+      if (ETH_CLIST_ADD_MODE(clist))
        {
          gint focus_row;
 
@@ -6394,7 +6394,7 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
 }
 
 static void
-check_exposures (GtkCList *clist)
+check_exposures (EthCList *clist)
 {
   GdkEvent *event;
 
@@ -6416,7 +6416,7 @@ check_exposures (GtkCList *clist)
 }
 
 /* PRIVATE
- * Memory Allocation/Distruction Routines for GtkCList stuctures
+ * Memory Allocation/Distruction Routines for EthCList stuctures
  *
  * functions:
  *   columns_new
@@ -6425,13 +6425,13 @@ check_exposures (GtkCList *clist)
  *   row_new
  *   row_delete
  */
-static GtkCListColumn *
-columns_new (GtkCList *clist)
+static EthCListColumn *
+columns_new (EthCList *clist)
 {
-  GtkCListColumn *column;
+  EthCListColumn *column;
   gint i;
 
-  column = g_new (GtkCListColumn, clist->columns);
+  column = g_new (EthCListColumn, clist->columns);
 
   for (i = 0; i < clist->columns; i++)
     {
@@ -6457,7 +6457,7 @@ columns_new (GtkCList *clist)
 }
 
 static void
-column_title_new (GtkCList    *clist,
+column_title_new (EthCList    *clist,
                  gint         column,
                  const gchar *title)
 {
@@ -6468,7 +6468,7 @@ column_title_new (GtkCList    *clist,
 }
 
 static void
-columns_delete (GtkCList *clist)
+columns_delete (EthCList *clist)
 {
   gint i;
 
@@ -6479,18 +6479,18 @@ columns_delete (GtkCList *clist)
   g_free (clist->column);
 }
 
-static GtkCListRow *
-row_new (GtkCList *clist)
+static EthCListRow *
+row_new (EthCList *clist)
 {
   int i;
-  GtkCListRow *clist_row;
+  EthCListRow *clist_row;
 
-  clist_row = g_chunk_new (GtkCListRow, clist->row_mem_chunk);
-  clist_row->cell = g_chunk_new (GtkCell, clist->cell_mem_chunk);
+  clist_row = g_chunk_new (EthCListRow, clist->row_mem_chunk);
+  clist_row->cell = g_chunk_new (EthCell, clist->cell_mem_chunk);
 
   for (i = 0; i < clist->columns; i++)
     {
-      clist_row->cell[i].type = GTK_CELL_EMPTY;
+      clist_row->cell[i].type = ETH_CELL_EMPTY;
       clist_row->cell[i].vertical = 0;
       clist_row->cell[i].horizontal = 0;
       clist_row->cell[i].style = NULL;
@@ -6508,15 +6508,15 @@ row_new (GtkCList *clist)
 }
 
 static void
-row_delete (GtkCList    *clist,
-           GtkCListRow *clist_row)
+row_delete (EthCList    *clist,
+           EthCListRow *clist_row)
 {
   gint i;
 
   for (i = 0; i < clist->columns; i++)
     {
-      GTK_CLIST_CLASS_FW (clist)->set_cell_contents
-       (clist, clist_row, i, GTK_CELL_EMPTY, NULL, 0, NULL, NULL);
+      ETH_CLIST_CLASS_FW (clist)->set_cell_contents
+       (clist, clist_row, i, ETH_CELL_EMPTY, NULL, 0, NULL, NULL);
       if (clist_row->cell[i].style)
        {
          if (GTK_WIDGET_REALIZED (clist))
@@ -6540,28 +6540,28 @@ row_delete (GtkCList    *clist,
 }
 
 /* FOCUS FUNCTIONS
- *   gtk_clist_focus
- *   gtk_clist_draw_focus
- *   gtk_clist_focus_in
- *   gtk_clist_focus_out
- *   gtk_clist_set_focus_child
+ *   eth_clist_focus
+ *   eth_clist_draw_focus
+ *   eth_clist_focus_in
+ *   eth_clist_focus_out
+ *   eth_clist_set_focus_child
  *   title_focus
  */
 static gint
-gtk_clist_focus (GtkContainer     *container,
+eth_clist_focus (GtkContainer     *container,
                 GtkDirectionType  direction)
 {
-  GtkCList *clist;
+  EthCList *clist;
   GtkWidget *focus_child;
   gint old_row;
 
   g_return_val_if_fail (container != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (container), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (container), FALSE);
 
   if (!GTK_WIDGET_IS_SENSITIVE (container))
     return FALSE;
 
-  clist = GTK_CLIST (container);
+  clist = ETH_CLIST (container);
   focus_child = container->focus_child;
   old_row = clist->focus_row;
 
@@ -6569,7 +6569,7 @@ gtk_clist_focus (GtkContainer     *container,
     {
     case GTK_DIR_LEFT:
     case GTK_DIR_RIGHT:
-      if (GTK_CLIST_CHILD_HAS_FOCUS(clist))
+      if (ETH_CLIST_CHILD_HAS_FOCUS(clist))
        {
          if (title_focus (clist, direction))
            return TRUE;
@@ -6580,7 +6580,7 @@ gtk_clist_focus (GtkContainer     *container,
       return TRUE;
     case GTK_DIR_DOWN:
     case GTK_DIR_TAB_FORWARD:
-      if (GTK_CLIST_CHILD_HAS_FOCUS(clist))
+      if (ETH_CLIST_CHILD_HAS_FOCUS(clist))
        {
          gboolean tf = FALSE;
 
@@ -6607,12 +6607,12 @@ gtk_clist_focus (GtkContainer     *container,
            return TRUE;
        }
 
-      GTK_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
+      ETH_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
       break;
     case GTK_DIR_UP:
     case GTK_DIR_TAB_BACKWARD:
       if (!focus_child &&
-         GTK_CLIST_CHILD_HAS_FOCUS(clist) && clist->rows)
+         ETH_CLIST_CHILD_HAS_FOCUS(clist) && clist->rows)
        {
          if (clist->focus_row < 0)
            {
@@ -6628,7 +6628,7 @@ gtk_clist_focus (GtkContainer     *container,
          return TRUE;
        }
 
-      GTK_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
+      ETH_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
 
       if (title_focus (clist, direction))
        return TRUE;
@@ -6643,17 +6643,17 @@ gtk_clist_focus (GtkContainer     *container,
 }
 
 static void
-gtk_clist_draw_focus (GtkWidget *widget)
+eth_clist_draw_focus (GtkWidget *widget)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
 
   if (!GTK_WIDGET_DRAWABLE (widget) || !GTK_WIDGET_CAN_FOCUS (widget))
     return;
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
   if (clist->focus_row >= 0)
     gdk_draw_rectangle (clist->clist_window, clist->xor_gc, FALSE,
                        0, ROW_TOP_YPIXEL(clist, clist->focus_row),
@@ -6662,19 +6662,19 @@ gtk_clist_draw_focus (GtkWidget *widget)
 }
 
 static gint
-gtk_clist_focus_in (GtkWidget     *widget,
+eth_clist_focus_in (GtkWidget     *widget,
                    GdkEventFocus *event)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
   GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
-  GTK_CLIST_UNSET_FLAG (widget, CLIST_CHILD_HAS_FOCUS);
+  ETH_CLIST_UNSET_FLAG (widget, CLIST_CHILD_HAS_FOCUS);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   if (clist->selection_mode == GTK_SELECTION_BROWSE &&
       clist->selection == NULL && clist->focus_row > -1)
@@ -6682,7 +6682,7 @@ gtk_clist_focus_in (GtkWidget     *widget,
       GList *list;
 
       list = g_list_nth (clist->row_list, clist->focus_row);
-      if (list && GTK_CLIST_ROW (list)->selectable)
+      if (list && ETH_CLIST_ROW (list)->selectable)
        gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
                         clist->focus_row, -1, event);
       else
@@ -6695,45 +6695,45 @@ gtk_clist_focus_in (GtkWidget     *widget,
 }
 
 static gint
-gtk_clist_focus_out (GtkWidget     *widget,
+eth_clist_focus_out (GtkWidget     *widget,
                     GdkEventFocus *event)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
-  GTK_CLIST_SET_FLAG (widget, CLIST_CHILD_HAS_FOCUS);
+  ETH_CLIST_SET_FLAG (widget, CLIST_CHILD_HAS_FOCUS);
 
   gtk_widget_draw_focus (widget);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
-  GTK_CLIST_CLASS_FW (widget)->resync_selection (clist, (GdkEvent *) event);
+  ETH_CLIST_CLASS_FW (widget)->resync_selection (clist, (GdkEvent *) event);
 
   return FALSE;
 }
 
 static void
-gtk_clist_set_focus_child (GtkContainer *container,
+eth_clist_set_focus_child (GtkContainer *container,
                           GtkWidget    *child)
 {
   g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_CLIST (container));
+  g_return_if_fail (ETH_IS_CLIST (container));
 
   if (child)
     {
       g_return_if_fail (GTK_IS_WIDGET (child));
-      GTK_CLIST_SET_FLAG (container, CLIST_CHILD_HAS_FOCUS);
+      ETH_CLIST_SET_FLAG (container, CLIST_CHILD_HAS_FOCUS);
     }
 
   parent_class->set_focus_child (container, child);
 }
 
 static gboolean
-title_focus (GtkCList *clist,
+title_focus (EthCList *clist,
             gint      dir)
 {
   GtkWidget *focus_child;
@@ -6743,7 +6743,7 @@ title_focus (GtkCList *clist,
   gint i = 0;
   gint j;
 
-  if (!GTK_CLIST_SHOW_TITLES(clist))
+  if (!ETH_CLIST_SHOW_TITLES(clist))
     return FALSE;
 
   focus_child = GTK_CONTAINER (clist)->focus_child;
@@ -6756,7 +6756,7 @@ title_focus (GtkCList *clist,
     {
     case GTK_DIR_TAB_BACKWARD:
     case GTK_DIR_UP:
-      if (!focus_child || !GTK_CLIST_CHILD_HAS_FOCUS(clist))
+      if (!focus_child || !ETH_CLIST_CHILD_HAS_FOCUS(clist))
        {
          if (dir == GTK_DIR_UP)
            i = COLUMN_FROM_XPIXEL (clist, 0);
@@ -6836,14 +6836,14 @@ title_focus (GtkCList *clist,
   if (return_val)
     {
       if (COLUMN_LEFT_XPIXEL (clist, j) < CELL_SPACING + COLUMN_INSET)
-       gtk_clist_moveto (clist, -1, j, 0, 0);
+       eth_clist_moveto (clist, -1, j, 0, 0);
       else if (COLUMN_LEFT_XPIXEL(clist, j) + clist->column[j].area.width >
               clist->clist_window_width)
        {
          if (j == last_column)
-           gtk_clist_moveto (clist, -1, j, 0, 0);
+           eth_clist_moveto (clist, -1, j, 0, 0);
          else
-           gtk_clist_moveto (clist, -1, j, 0, 1);
+           eth_clist_moveto (clist, -1, j, 0, 1);
        }
     }
   return return_val;
@@ -6860,14 +6860,14 @@ title_focus (GtkCList *clist,
  *   remove_grab
  */
 static void
-move_focus_row (GtkCList      *clist,
+move_focus_row (EthCList      *clist,
                GtkScrollType  scroll_type,
                gfloat         position)
 {
   GtkWidget *widget;
 
   g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   widget = GTK_WIDGET (clist);
 
@@ -6876,43 +6876,43 @@ move_focus_row (GtkCList      *clist,
     case GTK_SCROLL_STEP_BACKWARD:
       if (clist->focus_row <= 0)
        return;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       clist->focus_row--;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       break;
     case GTK_SCROLL_STEP_FORWARD:
       if (clist->focus_row >= clist->rows - 1)
        return;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       clist->focus_row++;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       break;
     case GTK_SCROLL_PAGE_BACKWARD:
       if (clist->focus_row <= 0)
        return;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       clist->focus_row = MAX (0, clist->focus_row -
                              (2 * clist->clist_window_height -
                               clist->row_height - CELL_SPACING) /
                              (2 * (clist->row_height + CELL_SPACING)));
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       break;
     case GTK_SCROLL_PAGE_FORWARD:
       if (clist->focus_row >= clist->rows - 1)
        return;
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       clist->focus_row = MIN (clist->rows - 1, clist->focus_row +
                              (2 * clist->clist_window_height -
                               clist->row_height - CELL_SPACING) /
                              (2 * (clist->row_height + CELL_SPACING)));
-      gtk_clist_draw_focus (widget);
+      eth_clist_draw_focus (widget);
       break;
     case GTK_SCROLL_JUMP:
       if (position >= 0 && position <= 1)
        {
-         gtk_clist_draw_focus (widget);
+         eth_clist_draw_focus (widget);
          clist->focus_row = position * (clist->rows - 1);
-         gtk_clist_draw_focus (widget);
+         eth_clist_draw_focus (widget);
        }
       break;
     default:
@@ -6921,7 +6921,7 @@ move_focus_row (GtkCList      *clist,
 }
 
 static void
-scroll_horizontal (GtkCList      *clist,
+scroll_horizontal (EthCList      *clist,
                   GtkScrollType  scroll_type,
                   gfloat         position)
 {
@@ -6929,7 +6929,7 @@ scroll_horizontal (GtkCList      *clist,
   gint last_column;
 
   g_return_if_fail (clist != 0);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
     return;
@@ -6985,26 +6985,26 @@ scroll_horizontal (GtkCList      *clist,
     }
 
   if (COLUMN_LEFT_XPIXEL (clist, column) < CELL_SPACING + COLUMN_INSET)
-    gtk_clist_moveto (clist, -1, column, 0, 0);
+    eth_clist_moveto (clist, -1, column, 0, 0);
   else if (COLUMN_LEFT_XPIXEL (clist, column) + CELL_SPACING + COLUMN_INSET - 1
           + clist->column[column].area.width > clist->clist_window_width)
     {
       if (column == last_column)
-       gtk_clist_moveto (clist, -1, column, 0, 0);
+       eth_clist_moveto (clist, -1, column, 0, 0);
       else
-       gtk_clist_moveto (clist, -1, column, 0, 1);
+       eth_clist_moveto (clist, -1, column, 0, 1);
     }
 }
 
 static void
-scroll_vertical (GtkCList      *clist,
+scroll_vertical (EthCList      *clist,
                 GtkScrollType  scroll_type,
                 gfloat         position)
 {
   gint old_focus_row;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
     return;
@@ -7024,33 +7024,33 @@ scroll_vertical (GtkCList      *clist,
          if (clist->selection_mode == GTK_SELECTION_BROWSE)
            gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW],
                             old_focus_row, -1, NULL);
-         else if (!GTK_CLIST_ADD_MODE(clist))
+         else if (!ETH_CLIST_ADD_MODE(clist))
            {
-             gtk_clist_unselect_all (clist);
+             eth_clist_unselect_all (clist);
              clist->undo_anchor = old_focus_row;
            }
        }
 
-      switch (gtk_clist_row_is_visible (clist, clist->focus_row))
+      switch (eth_clist_row_is_visible (clist, clist->focus_row))
        {
        case GTK_VISIBILITY_NONE:
          if (old_focus_row != clist->focus_row &&
              !(clist->selection_mode == GTK_SELECTION_EXTENDED &&
-               GTK_CLIST_ADD_MODE(clist)))
+               ETH_CLIST_ADD_MODE(clist)))
            gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
                             clist->focus_row, -1, NULL);
          switch (scroll_type)
            {
            case GTK_SCROLL_STEP_BACKWARD:
            case GTK_SCROLL_PAGE_BACKWARD:
-             gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+             eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
              break;
            case GTK_SCROLL_STEP_FORWARD:
            case GTK_SCROLL_PAGE_FORWARD:
-             gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+             eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
              break;
            case GTK_SCROLL_JUMP:
-             gtk_clist_moveto (clist, clist->focus_row, -1, 0.5, 0);
+             eth_clist_moveto (clist, clist->focus_row, -1, 0.5, 0);
              break;
            default:
              break;
@@ -7061,14 +7061,14 @@ scroll_vertical (GtkCList      *clist,
            {
            case GTK_SCROLL_STEP_BACKWARD:
            case GTK_SCROLL_PAGE_BACKWARD:
-             gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+             eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
              break;
            case GTK_SCROLL_STEP_FORWARD:
            case GTK_SCROLL_PAGE_FORWARD:
-             gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+             eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
              break;
            case GTK_SCROLL_JUMP:
-             gtk_clist_moveto (clist, clist->focus_row, -1, 0.5, 0);
+             eth_clist_moveto (clist, clist->focus_row, -1, 0.5, 0);
              break;
            default:
              break;
@@ -7076,7 +7076,7 @@ scroll_vertical (GtkCList      *clist,
        default:
          if (old_focus_row != clist->focus_row &&
              !(clist->selection_mode == GTK_SELECTION_EXTENDED &&
-               GTK_CLIST_ADD_MODE(clist)))
+               ETH_CLIST_ADD_MODE(clist)))
            gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
                             clist->focus_row, -1, NULL);
          break;
@@ -7087,15 +7087,15 @@ scroll_vertical (GtkCList      *clist,
 
       if (ROW_TOP_YPIXEL (clist, clist->focus_row) + clist->row_height >
          clist->clist_window_height)
-       gtk_clist_moveto (clist, clist->focus_row, -1, 1, 0);
+       eth_clist_moveto (clist, clist->focus_row, -1, 1, 0);
       else if (ROW_TOP_YPIXEL (clist, clist->focus_row) < 0)
-       gtk_clist_moveto (clist, clist->focus_row, -1, 0, 0);
+       eth_clist_moveto (clist, clist->focus_row, -1, 0, 0);
       break;
     }
 }
 
 static void
-move_horizontal (GtkCList *clist,
+move_horizontal (EthCList *clist,
                 gint      diff)
 {
   gfloat value;
@@ -7109,7 +7109,7 @@ move_horizontal (GtkCList *clist,
 }
 
 static void
-move_vertical (GtkCList *clist,
+move_vertical (EthCList *clist,
               gint      row,
               gfloat    align)
 {
@@ -7129,7 +7129,7 @@ move_vertical (GtkCList *clist,
 }
 
 static gint
-horizontal_timeout (GtkCList *clist)
+horizontal_timeout (EthCList *clist)
 {
   GdkEventMotion event;
 
@@ -7140,7 +7140,7 @@ horizontal_timeout (GtkCList *clist)
   event.type = GDK_MOTION_NOTIFY;
   event.send_event = TRUE;
 
-  gtk_clist_motion (GTK_WIDGET (clist), &event);
+  eth_clist_motion (GTK_WIDGET (clist), &event);
 
   GDK_THREADS_LEAVE ();
 
@@ -7148,7 +7148,7 @@ horizontal_timeout (GtkCList *clist)
 }
 
 static gint
-vertical_timeout (GtkCList *clist)
+vertical_timeout (EthCList *clist)
 {
   GdkEventMotion event;
 
@@ -7159,7 +7159,7 @@ vertical_timeout (GtkCList *clist)
   event.type = GDK_MOTION_NOTIFY;
   event.send_event = TRUE;
 
-  gtk_clist_motion (GTK_WIDGET (clist), &event);
+  eth_clist_motion (GTK_WIDGET (clist), &event);
 
   GDK_THREADS_LEAVE ();
 
@@ -7167,7 +7167,7 @@ vertical_timeout (GtkCList *clist)
 }
 
 static void
-remove_grab (GtkCList *clist)
+remove_grab (EthCList *clist)
 {
   if (GTK_WIDGET_HAS_GRAB (clist))
     {
@@ -7190,63 +7190,63 @@ remove_grab (GtkCList *clist)
 }
 
 /* PUBLIC SORTING FUNCTIONS
- * gtk_clist_sort
- * gtk_clist_set_compare_func
- * gtk_clist_set_auto_sort
- * gtk_clist_set_sort_type
- * gtk_clist_set_sort_column
+ * eth_clist_sort
+ * eth_clist_set_compare_func
+ * eth_clist_set_auto_sort
+ * eth_clist_set_sort_type
+ * eth_clist_set_sort_column
  */
 void
-gtk_clist_sort (GtkCList *clist)
+eth_clist_sort (EthCList *clist)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  GTK_CLIST_CLASS_FW (clist)->sort_list (clist);
+  ETH_CLIST_CLASS_FW (clist)->sort_list (clist);
 }
 
 void
-gtk_clist_set_compare_func (GtkCList            *clist,
-                           GtkCListCompareFunc  cmp_func)
+eth_clist_set_compare_func (EthCList            *clist,
+                           EthCListCompareFunc  cmp_func)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   clist->compare = (cmp_func) ? cmp_func : default_compare;
 }
 
 void
-gtk_clist_set_auto_sort (GtkCList *clist,
+eth_clist_set_auto_sort (EthCList *clist,
                         gboolean  auto_sort)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if (GTK_CLIST_AUTO_SORT(clist) && !auto_sort)
-    GTK_CLIST_UNSET_FLAG (clist, CLIST_AUTO_SORT);
-  else if (!GTK_CLIST_AUTO_SORT(clist) && auto_sort)
+  if (ETH_CLIST_AUTO_SORT(clist) && !auto_sort)
+    ETH_CLIST_UNSET_FLAG (clist, CLIST_AUTO_SORT);
+  else if (!ETH_CLIST_AUTO_SORT(clist) && auto_sort)
     {
-      GTK_CLIST_SET_FLAG (clist, CLIST_AUTO_SORT);
-      gtk_clist_sort (clist);
+      ETH_CLIST_SET_FLAG (clist, CLIST_AUTO_SORT);
+      eth_clist_sort (clist);
     }
 }
 
 void
-gtk_clist_set_sort_type (GtkCList    *clist,
+eth_clist_set_sort_type (EthCList    *clist,
                         GtkSortType  sort_type)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   clist->sort_type = sort_type;
 }
 
 void
-gtk_clist_set_sort_column (GtkCList *clist,
+eth_clist_set_sort_column (EthCList *clist,
                           gint      column)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (column < 0 || column >= clist->columns)
     return;
@@ -7257,27 +7257,27 @@ gtk_clist_set_sort_column (GtkCList *clist,
 /* PRIVATE SORTING FUNCTIONS
  *   default_compare
  *   real_sort_list
- *   gtk_clist_merge
- *   gtk_clist_mergesort
+ *   eth_clist_merge
+ *   eth_clist_mergesort
  */
 static gint
-default_compare (GtkCList      *clist,
+default_compare (EthCList      *clist,
                 gconstpointer  ptr1,
                 gconstpointer  ptr2)
 {
   char *text1 = NULL;
   char *text2 = NULL;
 
-  GtkCListRow *row1 = (GtkCListRow *) ptr1;
-  GtkCListRow *row2 = (GtkCListRow *) ptr2;
+  EthCListRow *row1 = (EthCListRow *) ptr1;
+  EthCListRow *row2 = (EthCListRow *) ptr2;
 
   switch (row1->cell[clist->sort_column].type)
     {
-    case GTK_CELL_TEXT:
-      text1 = GTK_CELL_TEXT (row1->cell[clist->sort_column])->text;
+    case ETH_CELL_TEXT:
+      text1 = ETH_CELL_TEXT (row1->cell[clist->sort_column])->text;
       break;
-    case GTK_CELL_PIXTEXT:
-      text1 = GTK_CELL_PIXTEXT (row1->cell[clist->sort_column])->text;
+    case ETH_CELL_PIXTEXT:
+      text1 = ETH_CELL_PIXTEXT (row1->cell[clist->sort_column])->text;
       break;
     default:
       break;
@@ -7285,11 +7285,11 @@ default_compare (GtkCList      *clist,
 
   switch (row2->cell[clist->sort_column].type)
     {
-    case GTK_CELL_TEXT:
-      text2 = GTK_CELL_TEXT (row2->cell[clist->sort_column])->text;
+    case ETH_CELL_TEXT:
+      text2 = ETH_CELL_TEXT (row2->cell[clist->sort_column])->text;
       break;
-    case GTK_CELL_PIXTEXT:
-      text2 = GTK_CELL_PIXTEXT (row2->cell[clist->sort_column])->text;
+    case ETH_CELL_PIXTEXT:
+      text2 = ETH_CELL_PIXTEXT (row2->cell[clist->sort_column])->text;
       break;
     default:
       break;
@@ -7305,14 +7305,14 @@ default_compare (GtkCList      *clist,
 }
 
 static void
-real_sort_list (GtkCList *clist)
+real_sort_list (EthCList *clist)
 {
   GList *list;
   GList *work;
   gint i;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (clist->rows <= 1)
     return;
@@ -7320,24 +7320,24 @@ real_sort_list (GtkCList *clist)
   if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
     return;
 
-  gtk_clist_freeze (clist);
+  eth_clist_freeze (clist);
 
   if (clist->anchor != -1 && clist->selection_mode == GTK_SELECTION_EXTENDED)
     {
-      GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+      ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
       g_list_free (clist->undo_selection);
       g_list_free (clist->undo_unselection);
       clist->undo_selection = NULL;
       clist->undo_unselection = NULL;
     }
 
-  clist->row_list = gtk_clist_mergesort (clist, clist->row_list, clist->rows);
+  clist->row_list = eth_clist_mergesort (clist, clist->row_list, clist->rows);
 
   work = clist->selection;
 
   for (i = 0, list = clist->row_list; i < clist->rows; i++, list = list->next)
     {
-      if (GTK_CLIST_ROW (list)->state == GTK_STATE_SELECTED)
+      if (ETH_CLIST_ROW (list)->state == GTK_STATE_SELECTED)
        {
          work->data = GINT_TO_POINTER (i);
          work = work->next;
@@ -7347,11 +7347,11 @@ real_sort_list (GtkCList *clist)
        clist->row_list_end = list;
     }
 
-  gtk_clist_thaw (clist);
+  eth_clist_thaw (clist);
 }
 
 static GList *
-gtk_clist_merge (GtkCList *clist,
+eth_clist_merge (EthCList *clist,
                 GList    *a,         /* first list to merge */
                 GList    *b)         /* second list to merge */
 {
@@ -7381,7 +7381,7 @@ gtk_clist_merge (GtkCList *clist,
        }
       else /* a && b */
        {
-         cmp = clist->compare (clist, GTK_CLIST_ROW (a), GTK_CLIST_ROW (b));
+         cmp = clist->compare (clist, ETH_CLIST_ROW (a), ETH_CLIST_ROW (b));
          if ((cmp >= 0 && clist->sort_type == GTK_SORT_DESCENDING) ||
              (cmp <= 0 && clist->sort_type == GTK_SORT_ASCENDING) ||
              (a && !b))
@@ -7405,7 +7405,7 @@ gtk_clist_merge (GtkCList *clist,
 }
 
 static GList *
-gtk_clist_mergesort (GtkCList *clist,
+eth_clist_mergesort (EthCList *clist,
                     GList    *list,         /* the list to sort */
                     gint      num)          /* the list's length */
 {
@@ -7428,9 +7428,9 @@ gtk_clist_mergesort (GtkCList *clist,
       half->prev = NULL;
 
       /* recursively sort both lists */
-      return gtk_clist_merge (clist,
-                      gtk_clist_mergesort (clist, list, num / 2),
-                      gtk_clist_mergesort (clist, half, num - num / 2));
+      return eth_clist_merge (clist,
+                      eth_clist_mergesort (clist, list, num / 2),
+                      eth_clist_mergesort (clist, half, num - num / 2));
     }
 }
 
@@ -7439,7 +7439,7 @@ gtk_clist_mergesort (GtkCList *clist,
 static void
 drag_source_info_destroy (gpointer data)
 {
-  GtkCListCellInfo *info = data;
+  EthCListCellInfo *info = data;
 
   g_free (info);
 }
@@ -7447,22 +7447,22 @@ drag_source_info_destroy (gpointer data)
 static void
 drag_dest_info_destroy (gpointer data)
 {
-  GtkCListDestInfo *info = data;
+  EthCListDestInfo *info = data;
 
   g_free (info);
 }
 
 static void
-drag_dest_cell (GtkCList         *clist,
+drag_dest_cell (EthCList         *clist,
                gint              x,
                gint              y,
-               GtkCListDestInfo *dest_info)
+               EthCListDestInfo *dest_info)
 {
   GtkWidget *widget;
 
   widget = GTK_WIDGET (clist);
 
-  dest_info->insert_pos = GTK_CLIST_DRAG_NONE;
+  dest_info->insert_pos = ETH_CLIST_DRAG_NONE;
 
   y -= (GTK_CONTAINER (clist)->border_width +
        widget->style->klass->ythickness +
@@ -7487,39 +7487,39 @@ drag_dest_cell (GtkCList         *clist,
 
       y_delta = y - ROW_TOP_YPIXEL (clist, dest_info->cell.row);
 
-      if (GTK_CLIST_DRAW_DRAG_RECT(clist))
+      if (ETH_CLIST_DRAW_DRAG_RECT(clist))
        {
-         dest_info->insert_pos = GTK_CLIST_DRAG_INTO;
+         dest_info->insert_pos = ETH_CLIST_DRAG_INTO;
          h = clist->row_height / 4;
        }
-      else if (GTK_CLIST_DRAW_DRAG_LINE(clist))
+      else if (ETH_CLIST_DRAW_DRAG_LINE(clist))
        {
-         dest_info->insert_pos = GTK_CLIST_DRAG_BEFORE;
+         dest_info->insert_pos = ETH_CLIST_DRAG_BEFORE;
          h = clist->row_height / 2;
        }
 
-      if (GTK_CLIST_DRAW_DRAG_LINE(clist))
+      if (ETH_CLIST_DRAW_DRAG_LINE(clist))
        {
          if (y_delta < h)
-           dest_info->insert_pos = GTK_CLIST_DRAG_BEFORE;
+           dest_info->insert_pos = ETH_CLIST_DRAG_BEFORE;
          else if (clist->row_height - y_delta < h)
-           dest_info->insert_pos = GTK_CLIST_DRAG_AFTER;
+           dest_info->insert_pos = ETH_CLIST_DRAG_AFTER;
        }
     }
 }
 
 static void
-gtk_clist_drag_begin (GtkWidget             *widget,
+eth_clist_drag_begin (GtkWidget             *widget,
                      GdkDragContext *context)
 {
-  GtkCList *clist;
-  GtkCListCellInfo *info;
+  EthCList *clist;
+  EthCListCellInfo *info;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (context != NULL);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   clist->drag_button = 0;
   remove_grab (clist);
@@ -7528,7 +7528,7 @@ gtk_clist_drag_begin (GtkWidget        *widget,
     {
     case GTK_SELECTION_EXTENDED:
       update_extended_selection (clist, clist->focus_row);
-      GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+      ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
       break;
     case GTK_SELECTION_SINGLE:
     case GTK_SELECTION_MULTIPLE:
@@ -7541,7 +7541,7 @@ gtk_clist_drag_begin (GtkWidget        *widget,
 
   if (!info)
     {
-      info = g_new (GtkCListCellInfo, 1);
+      info = g_new (EthCListCellInfo, 1);
 
       if (clist->click_cell.row < 0)
        clist->click_cell.row = 0;
@@ -7554,46 +7554,46 @@ gtk_clist_drag_begin (GtkWidget      *widget,
                               drag_source_info_destroy);
     }
 
-  if (GTK_CLIST_USE_DRAG_ICONS (clist))
+  if (ETH_CLIST_USE_DRAG_ICONS (clist))
     gtk_drag_set_icon_default (context);
 }
 
 static void
-gtk_clist_drag_end (GtkWidget     *widget,
+eth_clist_drag_end (GtkWidget     *widget,
                    GdkDragContext *context)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (context != NULL);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   clist->click_cell.row = -1;
   clist->click_cell.column = -1;
 }
 
 static void
-gtk_clist_drag_leave (GtkWidget      *widget,
+eth_clist_drag_leave (GtkWidget      *widget,
                      GdkDragContext *context,
                      guint           time _U_)
 {
-  GtkCList *clist;
-  GtkCListDestInfo *dest_info;
+  EthCList *clist;
+  EthCListDestInfo *dest_info;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (context != NULL);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   dest_info = g_dataset_get_data (context, "gtk-clist-drag-dest");
 
   if (dest_info)
     {
       if (dest_info->cell.row >= 0 &&
-         GTK_CLIST_REORDERABLE(clist) &&
+         ETH_CLIST_REORDERABLE(clist) &&
          gtk_drag_get_source_widget (context) == widget)
        {
          GList *list;
@@ -7604,7 +7604,7 @@ gtk_clist_drag_leave (GtkWidget      *widget,
            {
              if (atom == GPOINTER_TO_UINT (list->data))
                {
-                 GTK_CLIST_CLASS_FW (clist)->draw_drag_highlight
+                 ETH_CLIST_CLASS_FW (clist)->draw_drag_highlight
                    (clist,
                     g_list_nth (clist->row_list, dest_info->cell.row)->data,
                     dest_info->cell.row, dest_info->insert_pos);
@@ -7618,28 +7618,28 @@ gtk_clist_drag_leave (GtkWidget      *widget,
 }
 
 static gint
-gtk_clist_drag_motion (GtkWidget      *widget,
+eth_clist_drag_motion (GtkWidget      *widget,
                       GdkDragContext *context,
                       gint            x,
                       gint            y,
                       guint           time)
 {
-  GtkCList *clist;
-  GtkCListDestInfo new_info;
-  GtkCListDestInfo *dest_info;
+  EthCList *clist;
+  EthCListDestInfo new_info;
+  EthCListDestInfo *dest_info;
 
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
   dest_info = g_dataset_get_data (context, "gtk-clist-drag-dest");
 
   if (!dest_info)
     {
-      dest_info = g_new (GtkCListDestInfo, 1);
+      dest_info = g_new (EthCListDestInfo, 1);
 
-      dest_info->insert_pos  = GTK_CLIST_DRAG_NONE;
+      dest_info->insert_pos  = ETH_CLIST_DRAG_NONE;
       dest_info->cell.row    = -1;
       dest_info->cell.column = -1;
 
@@ -7649,7 +7649,7 @@ gtk_clist_drag_motion (GtkWidget      *widget,
 
   drag_dest_cell (clist, x, y, &new_info);
 
-  if (GTK_CLIST_REORDERABLE (clist))
+  if (ETH_CLIST_REORDERABLE (clist))
     {
       GList *list;
       GdkAtom atom = gdk_atom_intern ("gtk-clist-drag-reorder", FALSE);
@@ -7665,12 +7665,12 @@ gtk_clist_drag_motion (GtkWidget      *widget,
       if (list)
        {
          if (gtk_drag_get_source_widget (context) != widget ||
-             new_info.insert_pos == GTK_CLIST_DRAG_NONE ||
+             new_info.insert_pos == ETH_CLIST_DRAG_NONE ||
              new_info.cell.row == clist->click_cell.row ||
              (new_info.cell.row == clist->click_cell.row - 1 &&
-              new_info.insert_pos == GTK_CLIST_DRAG_AFTER) ||
+              new_info.insert_pos == ETH_CLIST_DRAG_AFTER) ||
              (new_info.cell.row == clist->click_cell.row + 1 &&
-              new_info.insert_pos == GTK_CLIST_DRAG_BEFORE))
+              new_info.insert_pos == ETH_CLIST_DRAG_BEFORE))
            {
              if (dest_info->cell.row < 0)
                {
@@ -7685,7 +7685,7 @@ gtk_clist_drag_motion (GtkWidget      *widget,
               dest_info->insert_pos != new_info.insert_pos))
            {
              if (dest_info->cell.row >= 0)
-               GTK_CLIST_CLASS_FW (clist)->draw_drag_highlight
+               ETH_CLIST_CLASS_FW (clist)->draw_drag_highlight
                  (clist, g_list_nth (clist->row_list,
                                      dest_info->cell.row)->data,
                   dest_info->cell.row, dest_info->insert_pos);
@@ -7694,7 +7694,7 @@ gtk_clist_drag_motion (GtkWidget      *widget,
              dest_info->cell.row    = new_info.cell.row;
              dest_info->cell.column = new_info.cell.column;
 
-             GTK_CLIST_CLASS_FW (clist)->draw_drag_highlight
+             ETH_CLIST_CLASS_FW (clist)->draw_drag_highlight
                (clist, g_list_nth (clist->row_list,
                                    dest_info->cell.row)->data,
                 dest_info->cell.row, dest_info->insert_pos);
@@ -7712,17 +7712,17 @@ gtk_clist_drag_motion (GtkWidget      *widget,
 }
 
 static gboolean
-gtk_clist_drag_drop (GtkWidget      *widget,
+eth_clist_drag_drop (GtkWidget      *widget,
                     GdkDragContext *context,
                     gint            x _U_,
                     gint            y _U_,
                     guint           time _U_)
 {
   g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_CLIST (widget), FALSE);
+  g_return_val_if_fail (ETH_IS_CLIST (widget), FALSE);
   g_return_val_if_fail (context != NULL, FALSE);
 
-  if (GTK_CLIST_REORDERABLE (widget) &&
+  if (ETH_CLIST_REORDERABLE (widget) &&
       gtk_drag_get_source_widget (context) == widget)
     {
       GList *list;
@@ -7740,7 +7740,7 @@ gtk_clist_drag_drop (GtkWidget      *widget,
 }
 
 static void
-gtk_clist_drag_data_received (GtkWidget        *widget,
+eth_clist_drag_data_received (GtkWidget        *widget,
                              GdkDragContext   *context,
                              gint              x,
                              gint              y,
@@ -7748,37 +7748,37 @@ gtk_clist_drag_data_received (GtkWidget        *widget,
                              guint             info _U_,
                              guint             time _U_)
 {
-  GtkCList *clist;
+  EthCList *clist;
 
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (context != NULL);
   g_return_if_fail (selection_data != NULL);
 
-  clist = GTK_CLIST (widget);
+  clist = ETH_CLIST (widget);
 
-  if (GTK_CLIST_REORDERABLE (clist) &&
+  if (ETH_CLIST_REORDERABLE (clist) &&
       gtk_drag_get_source_widget (context) == widget &&
       selection_data->target ==
       gdk_atom_intern ("gtk-clist-drag-reorder", FALSE) &&
       selection_data->format == GTK_TYPE_POINTER &&
-      selection_data->length == sizeof (GtkCListCellInfo))
+      selection_data->length == sizeof (EthCListCellInfo))
     {
-      GtkCListCellInfo *source_info;
+      EthCListCellInfo *source_info;
 
-      source_info = (GtkCListCellInfo *)(selection_data->data);
+      source_info = (EthCListCellInfo *)(selection_data->data);
       if (source_info)
        {
-         GtkCListDestInfo dest_info;
+         EthCListDestInfo dest_info;
 
          drag_dest_cell (clist, x, y, &dest_info);
 
-         if (dest_info.insert_pos == GTK_CLIST_DRAG_AFTER)
+         if (dest_info.insert_pos == ETH_CLIST_DRAG_AFTER)
            dest_info.cell.row++;
          if (source_info->row < dest_info.cell.row)
            dest_info.cell.row--;
          if (dest_info.cell.row != source_info->row)
-           gtk_clist_row_move (clist, source_info->row, dest_info.cell.row);
+           eth_clist_row_move (clist, source_info->row, dest_info.cell.row);
 
          g_dataset_remove_data (context, "gtk-clist-drag-dest");
        }
@@ -7786,34 +7786,34 @@ gtk_clist_drag_data_received (GtkWidget        *widget,
 }
 
 static void
-gtk_clist_drag_data_get (GtkWidget        *widget,
+eth_clist_drag_data_get (GtkWidget        *widget,
                         GdkDragContext   *context,
                         GtkSelectionData *selection_data,
                         guint             info _U_,
                         guint             time _U_)
 {
   g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_CLIST (widget));
+  g_return_if_fail (ETH_IS_CLIST (widget));
   g_return_if_fail (context != NULL);
   g_return_if_fail (selection_data != NULL);
 
   if (selection_data->target ==
       gdk_atom_intern ("gtk-clist-drag-reorder", FALSE))
     {
-      GtkCListCellInfo *info;
+      EthCListCellInfo *info;
 
       info = g_dataset_get_data (context, "gtk-clist-drag-source");
 
       if (info)
        {
-         GtkCListCellInfo ret_info;
+         EthCListCellInfo ret_info;
 
          ret_info.row = info->row;
          ret_info.column = info->column;
 
          gtk_selection_data_set (selection_data, selection_data->target,
                                  GTK_TYPE_POINTER, (guchar *) &ret_info,
-                                 sizeof (GtkCListCellInfo));
+                                 sizeof (EthCListCellInfo));
        }
       else
        gtk_selection_data_set (selection_data, selection_data->target,
@@ -7822,10 +7822,10 @@ gtk_clist_drag_data_get (GtkWidget        *widget,
 }
 
 static void
-draw_drag_highlight (GtkCList        *clist,
-                    GtkCListRow     *dest_row _U_,
+draw_drag_highlight (EthCList        *clist,
+                    EthCListRow     *dest_row _U_,
                     gint             dest_row_number,
-                    GtkCListDragPos  drag_pos)
+                    EthCListDragPos  drag_pos)
 {
   gint y;
 
@@ -7833,15 +7833,15 @@ draw_drag_highlight (GtkCList        *clist,
 
   switch (drag_pos)
     {
-    case GTK_CLIST_DRAG_NONE:
+    case ETH_CLIST_DRAG_NONE:
       break;
-    case GTK_CLIST_DRAG_AFTER:
+    case ETH_CLIST_DRAG_AFTER:
       y += clist->row_height + 1;
-    case GTK_CLIST_DRAG_BEFORE:
+    case ETH_CLIST_DRAG_BEFORE:
       gdk_draw_line (clist->clist_window, clist->xor_gc,
                     0, y, clist->clist_window_width, y);
       break;
-    case GTK_CLIST_DRAG_INTO:
+    case ETH_CLIST_DRAG_INTO:
       gdk_draw_rectangle (clist->clist_window, clist->xor_gc, FALSE, 0, y,
                          clist->clist_window_width - 1, clist->row_height);
       break;
@@ -7849,53 +7849,53 @@ draw_drag_highlight (GtkCList        *clist,
 }
 
 void
-gtk_clist_set_reorderable (GtkCList *clist,
+eth_clist_set_reorderable (EthCList *clist,
                           gboolean  reorderable)
 {
   GtkWidget *widget;
 
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
-  if ((GTK_CLIST_REORDERABLE(clist) != 0) == reorderable)
+  if ((ETH_CLIST_REORDERABLE(clist) != 0) == reorderable)
     return;
 
   widget = GTK_WIDGET (clist);
 
   if (reorderable)
     {
-      GTK_CLIST_SET_FLAG (clist, CLIST_REORDERABLE);
+      ETH_CLIST_SET_FLAG (clist, CLIST_REORDERABLE);
       gtk_drag_dest_set (widget,
                         GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP,
                         &clist_target_table, 1, GDK_ACTION_MOVE);
     }
   else
     {
-      GTK_CLIST_UNSET_FLAG (clist, CLIST_REORDERABLE);
+      ETH_CLIST_UNSET_FLAG (clist, CLIST_REORDERABLE);
       gtk_drag_dest_unset (GTK_WIDGET (clist));
     }
 }
 
 void
-gtk_clist_set_use_drag_icons (GtkCList *clist,
+eth_clist_set_use_drag_icons (EthCList *clist,
                              gboolean  use_icons)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (use_icons != 0)
-    GTK_CLIST_SET_FLAG (clist, CLIST_USE_DRAG_ICONS);
+    ETH_CLIST_SET_FLAG (clist, CLIST_USE_DRAG_ICONS);
   else
-    GTK_CLIST_UNSET_FLAG (clist, CLIST_USE_DRAG_ICONS);
+    ETH_CLIST_UNSET_FLAG (clist, CLIST_USE_DRAG_ICONS);
 }
 
 void
-gtk_clist_set_button_actions (GtkCList *clist,
+eth_clist_set_button_actions (EthCList *clist,
                              guint     button,
                              guint8    button_actions)
 {
   g_return_if_fail (clist != NULL);
-  g_return_if_fail (GTK_IS_CLIST (clist));
+  g_return_if_fail (ETH_IS_CLIST (clist));
 
   if (button < MAX_BUTTON)
     {
@@ -7905,7 +7905,7 @@ gtk_clist_set_button_actions (GtkCList *clist,
          clist->drag_button = 0;
        }
 
-      GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+      ETH_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
 
       clist->button_actions[button] = button_actions;
     }
similarity index 57%
rename from gtk/gtkclist_v12.h
rename to gtk/ethclist.h
index 06c724fb4b810805ecc6ee1ce6f334c8f4f91260..ab8a985c8c76a121673811aa2348c598a85f43cf 100644 (file)
@@ -25,8 +25,8 @@
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#ifndef __GTK_CLIST_H__
-#define __GTK_CLIST_H__
+#ifndef __ETH_CLIST_H__
+#define __ETH_CLIST_H__
 
 #include <gdk/gdk.h>
 #include <gtk/gtksignal.h>
@@ -43,106 +43,106 @@ extern "C" {
 
 /* clist flags */
 enum {
-  GTK_CLIST_IN_DRAG             = 1 <<  0,
-  GTK_CLIST_ROW_HEIGHT_SET      = 1 <<  1,
-  GTK_CLIST_SHOW_TITLES         = 1 <<  2,
-  GTK_CLIST_CHILD_HAS_FOCUS     = 1 <<  3,
-  GTK_CLIST_ADD_MODE            = 1 <<  4,
-  GTK_CLIST_AUTO_SORT           = 1 <<  5,
-  GTK_CLIST_AUTO_RESIZE_BLOCKED = 1 <<  6,
-  GTK_CLIST_REORDERABLE         = 1 <<  7,
-  GTK_CLIST_USE_DRAG_ICONS      = 1 <<  8,
-  GTK_CLIST_DRAW_DRAG_LINE      = 1 <<  9,
-  GTK_CLIST_DRAW_DRAG_RECT      = 1 << 10
+  ETH_CLIST_IN_DRAG             = 1 <<  0,
+  ETH_CLIST_ROW_HEIGHT_SET      = 1 <<  1,
+  ETH_CLIST_SHOW_TITLES         = 1 <<  2,
+  ETH_CLIST_CHILD_HAS_FOCUS     = 1 <<  3,
+  ETH_CLIST_ADD_MODE            = 1 <<  4,
+  ETH_CLIST_AUTO_SORT           = 1 <<  5,
+  ETH_CLIST_AUTO_RESIZE_BLOCKED = 1 <<  6,
+  ETH_CLIST_REORDERABLE         = 1 <<  7,
+  ETH_CLIST_USE_DRAG_ICONS      = 1 <<  8,
+  ETH_CLIST_DRAW_DRAG_LINE      = 1 <<  9,
+  ETH_CLIST_DRAW_DRAG_RECT      = 1 << 10
 };
 
 /* cell types */
 typedef enum
 {
-  GTK_CELL_EMPTY,
-  GTK_CELL_TEXT,
-  GTK_CELL_PIXMAP,
-  GTK_CELL_PIXTEXT,
-  GTK_CELL_WIDGET
-} GtkCellType;
+  ETH_CELL_EMPTY,
+  ETH_CELL_TEXT,
+  ETH_CELL_PIXMAP,
+  ETH_CELL_PIXTEXT,
+  ETH_CELL_WIDGET
+} EthCellType;
 
 typedef enum
 {
-  GTK_CLIST_DRAG_NONE,
-  GTK_CLIST_DRAG_BEFORE,
-  GTK_CLIST_DRAG_INTO,
-  GTK_CLIST_DRAG_AFTER
-} GtkCListDragPos;
+  ETH_CLIST_DRAG_NONE,
+  ETH_CLIST_DRAG_BEFORE,
+  ETH_CLIST_DRAG_INTO,
+  ETH_CLIST_DRAG_AFTER
+} EthCListDragPos;
 
 typedef enum
 {
-  GTK_BUTTON_IGNORED = 0,
-  GTK_BUTTON_SELECTS = 1 << 0,
-  GTK_BUTTON_DRAGS   = 1 << 1,
-  GTK_BUTTON_EXPANDS = 1 << 2
-} GtkButtonAction;
-
-#define GTK_TYPE_CLIST            (gtk_clist_get_type ())
-#define GTK_CLIST(obj)            (GTK_CHECK_CAST ((obj), GTK_TYPE_CLIST, GtkCList))
-#define GTK_CLIST_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_CLIST, GtkCListClass))
-#define GTK_IS_CLIST(obj)         (GTK_CHECK_TYPE ((obj), GTK_TYPE_CLIST))
-#define GTK_IS_CLIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CLIST))
-
-#define GTK_CLIST_FLAGS(clist)             (GTK_CLIST (clist)->flags)
-#define GTK_CLIST_SET_FLAG(clist,flag)     (GTK_CLIST_FLAGS (clist) |= (GTK_ ## flag))
-#define GTK_CLIST_UNSET_FLAG(clist,flag)   (GTK_CLIST_FLAGS (clist) &= ~(GTK_ ## flag))
-
-#define GTK_CLIST_IN_DRAG(clist)           (GTK_CLIST_FLAGS (clist) & GTK_CLIST_IN_DRAG)
-#define GTK_CLIST_ROW_HEIGHT_SET(clist)    (GTK_CLIST_FLAGS (clist) & GTK_CLIST_ROW_HEIGHT_SET)
-#define GTK_CLIST_SHOW_TITLES(clist)       (GTK_CLIST_FLAGS (clist) & GTK_CLIST_SHOW_TITLES)
-#define GTK_CLIST_CHILD_HAS_FOCUS(clist)   (GTK_CLIST_FLAGS (clist) & GTK_CLIST_CHILD_HAS_FOCUS)
-#define GTK_CLIST_ADD_MODE(clist)          (GTK_CLIST_FLAGS (clist) & GTK_CLIST_ADD_MODE)
-#define GTK_CLIST_AUTO_SORT(clist)         (GTK_CLIST_FLAGS (clist) & GTK_CLIST_AUTO_SORT)
-#define GTK_CLIST_AUTO_RESIZE_BLOCKED(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_AUTO_RESIZE_BLOCKED)
-#define GTK_CLIST_REORDERABLE(clist)       (GTK_CLIST_FLAGS (clist) & GTK_CLIST_REORDERABLE)
-#define GTK_CLIST_USE_DRAG_ICONS(clist)    (GTK_CLIST_FLAGS (clist) & GTK_CLIST_USE_DRAG_ICONS)
-#define GTK_CLIST_DRAW_DRAG_LINE(clist)    (GTK_CLIST_FLAGS (clist) & GTK_CLIST_DRAW_DRAG_LINE)
-#define GTK_CLIST_DRAW_DRAG_RECT(clist)    (GTK_CLIST_FLAGS (clist) & GTK_CLIST_DRAW_DRAG_RECT)
-
-#define GTK_CLIST_ROW(_glist_) ((GtkCListRow *)((_glist_)->data))
+  ETH_BUTTON_IGNORED = 0,
+  ETH_BUTTON_SELECTS = 1 << 0,
+  ETH_BUTTON_DRAGS   = 1 << 1,
+  ETH_BUTTON_EXPANDS = 1 << 2
+} EthButtonAction;
+
+#define ETH_TYPE_CLIST            (eth_clist_get_type ())
+#define ETH_CLIST(obj)            (GTK_CHECK_CAST ((obj), ETH_TYPE_CLIST, EthCList))
+#define ETH_CLIST_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), ETH_TYPE_CLIST, EthCListClass))
+#define ETH_IS_CLIST(obj)         (GTK_CHECK_TYPE ((obj), ETH_TYPE_CLIST))
+#define ETH_IS_CLIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), ETH_TYPE_CLIST))
+
+#define ETH_CLIST_FLAGS(clist)             (ETH_CLIST (clist)->flags)
+#define ETH_CLIST_SET_FLAG(clist,flag)     (ETH_CLIST_FLAGS (clist) |= (ETH_ ## flag))
+#define ETH_CLIST_UNSET_FLAG(clist,flag)   (ETH_CLIST_FLAGS (clist) &= ~(ETH_ ## flag))
+
+#define ETH_CLIST_IN_DRAG(clist)           (ETH_CLIST_FLAGS (clist) & ETH_CLIST_IN_DRAG)
+#define ETH_CLIST_ROW_HEIGHT_SET(clist)    (ETH_CLIST_FLAGS (clist) & ETH_CLIST_ROW_HEIGHT_SET)
+#define ETH_CLIST_SHOW_TITLES(clist)       (ETH_CLIST_FLAGS (clist) & ETH_CLIST_SHOW_TITLES)
+#define ETH_CLIST_CHILD_HAS_FOCUS(clist)   (ETH_CLIST_FLAGS (clist) & ETH_CLIST_CHILD_HAS_FOCUS)
+#define ETH_CLIST_ADD_MODE(clist)          (ETH_CLIST_FLAGS (clist) & ETH_CLIST_ADD_MODE)
+#define ETH_CLIST_AUTO_SORT(clist)         (ETH_CLIST_FLAGS (clist) & ETH_CLIST_AUTO_SORT)
+#define ETH_CLIST_AUTO_RESIZE_BLOCKED(clist) (ETH_CLIST_FLAGS (clist) & ETH_CLIST_AUTO_RESIZE_BLOCKED)
+#define ETH_CLIST_REORDERABLE(clist)       (ETH_CLIST_FLAGS (clist) & ETH_CLIST_REORDERABLE)
+#define ETH_CLIST_USE_DRAG_ICONS(clist)    (ETH_CLIST_FLAGS (clist) & ETH_CLIST_USE_DRAG_ICONS)
+#define ETH_CLIST_DRAW_DRAG_LINE(clist)    (ETH_CLIST_FLAGS (clist) & ETH_CLIST_DRAW_DRAG_LINE)
+#define ETH_CLIST_DRAW_DRAG_RECT(clist)    (ETH_CLIST_FLAGS (clist) & ETH_CLIST_DRAW_DRAG_RECT)
+
+#define ETH_CLIST_ROW(_glist_) ((EthCListRow *)((_glist_)->data))
 
 /* pointer casting for cells */
-#define GTK_CELL_TEXT(cell)     (((GtkCellText *) &(cell)))
-#define GTK_CELL_PIXMAP(cell)   (((GtkCellPixmap *) &(cell)))
-#define GTK_CELL_PIXTEXT(cell)  (((GtkCellPixText *) &(cell)))
-#define GTK_CELL_WIDGET(cell)   (((GtkCellWidget *) &(cell)))
-
-typedef struct _GtkCList GtkCList;
-typedef struct _GtkCListClass GtkCListClass;
-typedef struct _GtkCListColumn GtkCListColumn;
-typedef struct _GtkCListRow GtkCListRow;
-
-typedef struct _GtkCell GtkCell;
-typedef struct _GtkCellText GtkCellText;
-typedef struct _GtkCellPixmap GtkCellPixmap;
-typedef struct _GtkCellPixText GtkCellPixText;
-typedef struct _GtkCellWidget GtkCellWidget;
-
-typedef gint (*GtkCListCompareFunc) (GtkCList     *clist,
+#define ETH_CELL_TEXT(cell)     (((EthCellText *) &(cell)))
+#define ETH_CELL_PIXMAP(cell)   (((EthCellPixmap *) &(cell)))
+#define ETH_CELL_PIXTEXT(cell)  (((EthCellPixText *) &(cell)))
+#define ETH_CELL_WIDGET(cell)   (((EthCellWidget *) &(cell)))
+
+typedef struct _EthCList EthCList;
+typedef struct _EthCListClass EthCListClass;
+typedef struct _EthCListColumn EthCListColumn;
+typedef struct _EthCListRow EthCListRow;
+
+typedef struct _EthCell EthCell;
+typedef struct _EthCellText EthCellText;
+typedef struct _EthCellPixmap EthCellPixmap;
+typedef struct _EthCellPixText EthCellPixText;
+typedef struct _EthCellWidget EthCellWidget;
+
+typedef gint (*EthCListCompareFunc) (EthCList     *clist,
                                     gconstpointer ptr1,
                                     gconstpointer ptr2);
 
-typedef struct _GtkCListCellInfo GtkCListCellInfo;
-typedef struct _GtkCListDestInfo GtkCListDestInfo;
+typedef struct _EthCListCellInfo EthCListCellInfo;
+typedef struct _EthCListDestInfo EthCListDestInfo;
 
-struct _GtkCListCellInfo
+struct _EthCListCellInfo
 {
   gint row;
   gint column;
 };
 
-struct _GtkCListDestInfo
+struct _EthCListDestInfo
 {
-  GtkCListCellInfo cell;
-  GtkCListDragPos  insert_pos;
+  EthCListCellInfo cell;
+  EthCListDragPos  insert_pos;
 };
 
-struct _GtkCList
+struct _EthCList
 {
   GtkContainer container;
 
@@ -171,7 +171,7 @@ struct _GtkCList
   GdkWindow *title_window;
 
   /* dynamicly allocated array of column structures */
-  GtkCListColumn *column;
+  EthCListColumn *column;
 
   /* the scrolling window and its height and width to
    * make things a little speedier */
@@ -203,7 +203,7 @@ struct _GtkCList
   guint8 drag_button;
 
   /* dnd */
-  GtkCListCellInfo click_cell;
+  EthCListCellInfo click_cell;
 
   /* scroll adjustments */
   GtkAdjustment *hadjustment;
@@ -233,90 +233,90 @@ struct _GtkCList
   gint vtimer;
 
   GtkSortType sort_type;
-  GtkCListCompareFunc compare;
+  EthCListCompareFunc compare;
   gint sort_column;
 };
 
-struct _GtkCListClass
+struct _EthCListClass
 {
   GtkContainerClass parent_class;
 
-  void  (*set_scroll_adjustments) (GtkCList       *clist,
+  void  (*set_scroll_adjustments) (EthCList       *clist,
                                   GtkAdjustment  *hadjustment,
                                   GtkAdjustment  *vadjustment);
-  void   (*refresh)             (GtkCList       *clist);
-  void   (*select_row)          (GtkCList       *clist,
+  void   (*refresh)             (EthCList       *clist);
+  void   (*select_row)          (EthCList       *clist,
                                 gint            row,
                                 gint            column,
                                 GdkEvent       *event);
-  void   (*unselect_row)        (GtkCList       *clist,
+  void   (*unselect_row)        (EthCList       *clist,
                                 gint            row,
                                 gint            column,
                                 GdkEvent       *event);
-  void   (*row_move)            (GtkCList       *clist,
+  void   (*row_move)            (EthCList       *clist,
                                 gint            source_row,
                                 gint            dest_row);
-  void   (*click_column)        (GtkCList       *clist,
+  void   (*click_column)        (EthCList       *clist,
                                 gint            column);
-  void   (*resize_column)       (GtkCList       *clist,
+  void   (*resize_column)       (EthCList       *clist,
                                 gint            column,
                                  gint            width);
-  void   (*toggle_focus_row)    (GtkCList       *clist);
-  void   (*select_all)          (GtkCList       *clist);
-  void   (*unselect_all)        (GtkCList       *clist);
-  void   (*undo_selection)      (GtkCList       *clist);
-  void   (*start_selection)     (GtkCList       *clist);
-  void   (*end_selection)       (GtkCList       *clist);
-  void   (*extend_selection)    (GtkCList       *clist,
+  void   (*toggle_focus_row)    (EthCList       *clist);
+  void   (*select_all)          (EthCList       *clist);
+  void   (*unselect_all)        (EthCList       *clist);
+  void   (*undo_selection)      (EthCList       *clist);
+  void   (*start_selection)     (EthCList       *clist);
+  void   (*end_selection)       (EthCList       *clist);
+  void   (*extend_selection)    (EthCList       *clist,
                                 GtkScrollType   scroll_type,
                                 gfloat          position,
                                 gboolean        auto_start_selection);
-  void   (*scroll_horizontal)   (GtkCList       *clist,
+  void   (*scroll_horizontal)   (EthCList       *clist,
                                 GtkScrollType   scroll_type,
                                 gfloat          position);
-  void   (*scroll_vertical)     (GtkCList       *clist,
+  void   (*scroll_vertical)     (EthCList       *clist,
                                 GtkScrollType   scroll_type,
                                 gfloat          position);
-  void   (*toggle_add_mode)     (GtkCList       *clist);
-  void   (*abort_column_resize) (GtkCList       *clist);
-  void   (*resync_selection)    (GtkCList       *clist,
+  void   (*toggle_add_mode)     (EthCList       *clist);
+  void   (*abort_column_resize) (EthCList       *clist);
+  void   (*resync_selection)    (EthCList       *clist,
                                 GdkEvent       *event);
-  GList* (*selection_find)      (GtkCList       *clist,
+  GList* (*selection_find)      (EthCList       *clist,
                                 gint            row_number,
                                 GList          *row_list_element);
-  void   (*draw_row)            (GtkCList       *clist,
+  void   (*draw_row)            (EthCList       *clist,
                                 GdkRectangle   *area,
                                 gint            row,
-                                GtkCListRow    *clist_row);
-  void   (*draw_drag_highlight) (GtkCList        *clist,
-                                GtkCListRow     *target_row,
+                                EthCListRow    *clist_row);
+  void   (*draw_drag_highlight) (EthCList        *clist,
+                                EthCListRow     *target_row,
                                 gint             target_row_number,
-                                GtkCListDragPos  drag_pos);
-  void   (*clear)               (GtkCList       *clist);
-  void   (*fake_unselect_all)   (GtkCList       *clist,
+                                EthCListDragPos  drag_pos);
+  void   (*clear)               (EthCList       *clist);
+  void   (*fake_unselect_all)   (EthCList       *clist,
                                 gint            row);
-  void   (*sort_list)           (GtkCList       *clist);
-  gint   (*insert_row)          (GtkCList       *clist,
+  void   (*sort_list)           (EthCList       *clist);
+  gint   (*insert_row)          (EthCList       *clist,
                                 gint            row,
                                 gchar          *text[]);
-  void   (*remove_row)          (GtkCList       *clist,
+  void   (*remove_row)          (EthCList       *clist,
                                 gint            row);
-  void   (*set_cell_contents)   (GtkCList       *clist,
-                                GtkCListRow    *clist_row,
+  void   (*set_cell_contents)   (EthCList       *clist,
+                                EthCListRow    *clist_row,
                                 gint            column,
-                                GtkCellType     type,
+                                EthCellType     type,
                                 const gchar    *text,
                                 guint8          spacing,
                                 GdkPixmap      *pixmap,
                                 GdkBitmap      *mask);
-  void   (*cell_size_request)   (GtkCList       *clist,
-                                GtkCListRow    *clist_row,
+  void   (*cell_size_request)   (EthCList       *clist,
+                                EthCListRow    *clist_row,
                                 gint            column,
                                 GtkRequisition *requisition);
 
 };
 
-struct _GtkCListColumn
+struct _EthCListColumn
 {
   gchar *title;
   GdkRectangle area;
@@ -336,9 +336,9 @@ struct _GtkCListColumn
   guint button_passive : 1;
 };
 
-struct _GtkCListRow
+struct _EthCListRow
 {
-  GtkCell *cell;
+  EthCell *cell;
   GtkStateType state;
 
   GdkColor foreground;
@@ -355,9 +355,9 @@ struct _GtkCListRow
 };
 
 /* Cell Structures */
-struct _GtkCellText
+struct _EthCellText
 {
-  GtkCellType type;
+  EthCellType type;
 
   gint16 vertical;
   gint16 horizontal;
@@ -367,9 +367,9 @@ struct _GtkCellText
   gchar *text;
 };
 
-struct _GtkCellPixmap
+struct _EthCellPixmap
 {
-  GtkCellType type;
+  EthCellType type;
 
   gint16 vertical;
   gint16 horizontal;
@@ -380,9 +380,9 @@ struct _GtkCellPixmap
   GdkBitmap *mask;
 };
 
-struct _GtkCellPixText
+struct _EthCellPixText
 {
-  GtkCellType type;
+  EthCellType type;
 
   gint16 vertical;
   gint16 horizontal;
@@ -395,9 +395,9 @@ struct _GtkCellPixText
   GdkBitmap *mask;
 };
 
-struct _GtkCellWidget
+struct _EthCellWidget
 {
-  GtkCellType type;
+  EthCellType type;
 
   gint16 vertical;
   gint16 horizontal;
@@ -407,9 +407,9 @@ struct _GtkCellWidget
   GtkWidget *widget;
 };
 
-struct _GtkCell
+struct _EthCell
 {
-  GtkCellType type;
+  EthCellType type;
 
   gint16 vertical;
   gint16 horizontal;
@@ -435,42 +435,42 @@ struct _GtkCell
   } u;
 };
 
-GtkType gtk_clist_get_type (void);
+GtkType eth_clist_get_type (void);
 
 /* constructors useful for gtk-- wrappers */
-void gtk_clist_construct (GtkCList *clist,
+void eth_clist_construct (EthCList *clist,
                          gint      columns,
                          gchar    *titles[]);
 
-/* create a new GtkCList */
-GtkWidget* gtk_clist_new             (gint   columns);
-GtkWidget* gtk_clist_new_with_titles (gint   columns,
+/* create a new EthCList */
+GtkWidget* eth_clist_new             (gint   columns);
+GtkWidget* eth_clist_new_with_titles (gint   columns,
                                      gchar *titles[]);
 
 /* set adjustments of clist */
-void gtk_clist_set_hadjustment (GtkCList      *clist,
+void eth_clist_set_hadjustment (EthCList      *clist,
                                GtkAdjustment *adjustment);
-void gtk_clist_set_vadjustment (GtkCList      *clist,
+void eth_clist_set_vadjustment (EthCList      *clist,
                                GtkAdjustment *adjustment);
 
 /* get adjustments of clist */
-GtkAdjustment* gtk_clist_get_hadjustment (GtkCList *clist);
-GtkAdjustment* gtk_clist_get_vadjustment (GtkCList *clist);
+GtkAdjustment* eth_clist_get_hadjustment (EthCList *clist);
+GtkAdjustment* eth_clist_get_vadjustment (EthCList *clist);
 
 /* set the border style of the clist */
-void gtk_clist_set_shadow_type (GtkCList      *clist,
+void eth_clist_set_shadow_type (EthCList      *clist,
                                GtkShadowType  type);
 
 /* set the clist's selection mode */
-void gtk_clist_set_selection_mode (GtkCList         *clist,
+void eth_clist_set_selection_mode (EthCList         *clist,
                                   GtkSelectionMode  mode);
 
 /* enable clists reorder ability */
-void gtk_clist_set_reorderable (GtkCList *clist,
+void eth_clist_set_reorderable (EthCList *clist,
                                gboolean  reorderable);
-void gtk_clist_set_use_drag_icons (GtkCList *clist,
+void eth_clist_set_use_drag_icons (EthCList *clist,
                                   gboolean  use_icons);
-void gtk_clist_set_button_actions (GtkCList *clist,
+void eth_clist_set_button_actions (EthCList *clist,
                                   guint     button,
                                   guint8    button_actions);
 
@@ -478,88 +478,88 @@ void gtk_clist_set_button_actions (GtkCList *clist,
  * you have made a number of changes and the updates wil occure in a
  * more efficent mannor than if you made them on a unfrozen list
  */
-void gtk_clist_freeze (GtkCList *clist);
-void gtk_clist_thaw   (GtkCList *clist);
+void eth_clist_freeze (EthCList *clist);
+void eth_clist_thaw   (EthCList *clist);
 
 /* show and hide the column title buttons */
-void gtk_clist_column_titles_show (GtkCList *clist);
-void gtk_clist_column_titles_hide (GtkCList *clist);
+void eth_clist_column_titles_show (EthCList *clist);
+void eth_clist_column_titles_hide (EthCList *clist);
 
 /* set the column title to be a active title (responds to button presses,
  * prelights, and grabs keyboard focus), or passive where it acts as just
  * a title
  */
-void gtk_clist_column_title_active   (GtkCList *clist,
+void eth_clist_column_title_active   (EthCList *clist,
                                      gint      column);
-void gtk_clist_column_title_passive  (GtkCList *clist,
+void eth_clist_column_title_passive  (EthCList *clist,
                                      gint      column);
-void gtk_clist_column_titles_active  (GtkCList *clist);
-void gtk_clist_column_titles_passive (GtkCList *clist);
+void eth_clist_column_titles_active  (EthCList *clist);
+void eth_clist_column_titles_passive (EthCList *clist);
 
 /* set the title in the column title button */
-void gtk_clist_set_column_title (GtkCList    *clist,
+void eth_clist_set_column_title (EthCList    *clist,
                                 gint         column,
                                 const gchar *title);
 
 /* returns the title of column. Returns NULL if title is not set */
-gchar * gtk_clist_get_column_title (GtkCList *clist,
+gchar * eth_clist_get_column_title (EthCList *clist,
                                    gint      column);
 
 /* set a widget instead of a title for the column title button */
-void gtk_clist_set_column_widget (GtkCList  *clist,
+void eth_clist_set_column_widget (EthCList  *clist,
                                  gint       column,
                                  GtkWidget *widget);
 
 /* returns the column widget */
-GtkWidget * gtk_clist_get_column_widget (GtkCList *clist,
+GtkWidget * eth_clist_get_column_widget (EthCList *clist,
                                         gint      column);
 
 /* set the justification on a column */
-void gtk_clist_set_column_justification (GtkCList         *clist,
+void eth_clist_set_column_justification (EthCList         *clist,
                                         gint              column,
                                         GtkJustification  justification);
 
 /* set visibility of a column */
-void gtk_clist_set_column_visibility (GtkCList *clist,
+void eth_clist_set_column_visibility (EthCList *clist,
                                      gint      column,
                                      gboolean  visible);
 
 /* enable/disable column resize operations by mouse */
-void gtk_clist_set_column_resizeable (GtkCList *clist,
+void eth_clist_set_column_resizeable (EthCList *clist,
                                      gint      column,
                                      gboolean  resizeable);
 
 /* resize column automatically to its optimal width */
-void gtk_clist_set_column_auto_resize (GtkCList *clist,
+void eth_clist_set_column_auto_resize (EthCList *clist,
                                       gint      column,
                                       gboolean  auto_resize);
 
-gint gtk_clist_columns_autosize (GtkCList *clist);
+gint eth_clist_columns_autosize (EthCList *clist);
 
 /* return the optimal column width, i.e. maximum of all cell widths */
-gint gtk_clist_optimal_column_width (GtkCList *clist,
+gint eth_clist_optimal_column_width (EthCList *clist,
                                     gint      column);
 
 /* set the pixel width of a column; this is a necessary step in
  * creating a CList because otherwise the column width is chozen from
  * the width of the column title, which will never be right
  */
-void gtk_clist_set_column_width (GtkCList *clist,
+void eth_clist_set_column_width (EthCList *clist,
                                 gint      column,
                                 gint      width);
 
 /* set column minimum/maximum width. min/max_width < 0 => no restriction */
-void gtk_clist_set_column_min_width (GtkCList *clist,
+void eth_clist_set_column_min_width (EthCList *clist,
                                     gint      column,
                                     gint      min_width);
-void gtk_clist_set_column_max_width (GtkCList *clist,
+void eth_clist_set_column_max_width (EthCList *clist,
                                     gint      column,
                                     gint      max_width);
 
 /* change the height of the rows, the default (height=0) is
  * the hight of the current font.
  */
-void gtk_clist_set_row_height (GtkCList *clist,
+void eth_clist_set_row_height (EthCList *clist,
                               guint     height);
 
 /* scroll the viewing area of the list to the given column and row;
@@ -567,23 +567,23 @@ void gtk_clist_set_row_height (GtkCList *clist,
  * row should appear on the screnn, 0.0 being top or left, 1.0 being
  * bottom or right; if row or column is -1 then then there is no change
  */
-void gtk_clist_moveto (GtkCList *clist,
+void eth_clist_moveto (EthCList *clist,
                       gint      row,
                       gint      column,
                       gfloat    row_align,
                       gfloat    col_align);
 
 /* returns whether the row is visible */
-GtkVisibility gtk_clist_row_is_visible (GtkCList *clist,
+GtkVisibility eth_clist_row_is_visible (EthCList *clist,
                                        gint      row);
 
 /* returns the cell type */
-GtkCellType gtk_clist_get_cell_type (GtkCList *clist,
+EthCellType eth_clist_get_cell_type (EthCList *clist,
                                     gint      row,
                                     gint      column);
 
 /* sets a given cell's text, replacing its current contents */
-void gtk_clist_set_text (GtkCList    *clist,
+void eth_clist_set_text (EthCList    *clist,
                         gint         row,
                         gint         column,
                         const gchar *text);
@@ -591,26 +591,26 @@ void gtk_clist_set_text (GtkCList    *clist,
 /* for the "get" functions, any of the return pointer can be
  * NULL if you are not interested
  */
-gint gtk_clist_get_text (GtkCList  *clist,
+gint eth_clist_get_text (EthCList  *clist,
                         gint       row,
                         gint       column,
                         gchar    **text);
 
 /* sets a given cell's pixmap, replacing its current contents */
-void gtk_clist_set_pixmap (GtkCList  *clist,
+void eth_clist_set_pixmap (EthCList  *clist,
                           gint       row,
                           gint       column,
                           GdkPixmap *pixmap,
                           GdkBitmap *mask);
 
-gint gtk_clist_get_pixmap (GtkCList   *clist,
+gint eth_clist_get_pixmap (EthCList   *clist,
                           gint        row,
                           gint        column,
                           GdkPixmap **pixmap,
                           GdkBitmap **mask);
 
 /* sets a given cell's pixmap and text, replacing its current contents */
-void gtk_clist_set_pixtext (GtkCList    *clist,
+void eth_clist_set_pixtext (EthCList    *clist,
                            gint         row,
                            gint         column,
                            const gchar *text,
@@ -618,7 +618,7 @@ void gtk_clist_set_pixtext (GtkCList    *clist,
                            GdkPixmap   *pixmap,
                            GdkBitmap   *mask);
 
-gint gtk_clist_get_pixtext (GtkCList   *clist,
+gint eth_clist_get_pixtext (EthCList   *clist,
                            gint        row,
                            gint        column,
                            gchar     **text,
@@ -629,152 +629,152 @@ gint gtk_clist_get_pixtext (GtkCList   *clist,
 /* sets the foreground color of a row, the color must already
  * be allocated
  */
-void gtk_clist_set_foreground (GtkCList *clist,
+void eth_clist_set_foreground (EthCList *clist,
                               gint      row,
                               GdkColor *color);
 
 /* sets the background color of a row, the color must already
  * be allocated
  */
-void gtk_clist_set_background (GtkCList *clist,
+void eth_clist_set_background (EthCList *clist,
                               gint      row,
                               GdkColor *color);
 
 /* set / get cell styles */
-void gtk_clist_set_cell_style (GtkCList *clist,
+void eth_clist_set_cell_style (EthCList *clist,
                               gint      row,
                               gint      column,
                               GtkStyle *style);
 
-GtkStyle *gtk_clist_get_cell_style (GtkCList *clist,
+GtkStyle *eth_clist_get_cell_style (EthCList *clist,
                                    gint      row,
                                    gint      column);
 
-void gtk_clist_set_row_style (GtkCList *clist,
+void eth_clist_set_row_style (EthCList *clist,
                              gint      row,
                              GtkStyle *style);
 
-GtkStyle *gtk_clist_get_row_style (GtkCList *clist,
+GtkStyle *eth_clist_get_row_style (EthCList *clist,
                                   gint      row);
 
 /* this sets a horizontal and vertical shift for drawing
  * the contents of a cell; it can be positive or negitive;
  * this is particulary useful for indenting items in a column
  */
-void gtk_clist_set_shift (GtkCList *clist,
+void eth_clist_set_shift (EthCList *clist,
                          gint      row,
                          gint      column,
                          gint      vertical,
                          gint      horizontal);
 
 /* set/get selectable flag of a single row */
-void gtk_clist_set_selectable (GtkCList *clist,
+void eth_clist_set_selectable (EthCList *clist,
                               gint      row,
                               gboolean  selectable);
-gboolean gtk_clist_get_selectable (GtkCList *clist,
+gboolean eth_clist_get_selectable (EthCList *clist,
                                   gint      row);
 
 /* prepend/append returns the index of the row you just added,
  * making it easier to append and modify a row
  */
-gint gtk_clist_prepend (GtkCList    *clist,
+gint eth_clist_prepend (EthCList    *clist,
                        gchar       *text[]);
-gint gtk_clist_append  (GtkCList    *clist,
+gint eth_clist_append  (EthCList    *clist,
                        gchar       *text[]);
 
 /* inserts a row at index row and returns the row where it was
  * actually inserted (may be different from "row" in auto_sort mode)
  */
-gint gtk_clist_insert (GtkCList    *clist,
+gint eth_clist_insert (EthCList    *clist,
                       gint         row,
                       gchar       *text[]);
 
 /* removes row at index row */
-void gtk_clist_remove (GtkCList *clist,
+void eth_clist_remove (EthCList *clist,
                       gint      row);
 
 /* sets a arbitrary data pointer for a given row */
-void gtk_clist_set_row_data (GtkCList *clist,
+void eth_clist_set_row_data (EthCList *clist,
                             gint      row,
                             gpointer  data);
 
 /* sets a data pointer for a given row with destroy notification */
-void gtk_clist_set_row_data_full (GtkCList         *clist,
+void eth_clist_set_row_data_full (EthCList         *clist,
                                  gint              row,
                                  gpointer          data,
                                  GtkDestroyNotify  destroy);
 
 /* returns the data set for a row */
-gpointer gtk_clist_get_row_data (GtkCList *clist,
+gpointer eth_clist_get_row_data (EthCList *clist,
                                 gint      row);
 
 /* givin a data pointer, find the first (and hopefully only!)
  * row that points to that data, or -1 if none do
  */
-gint gtk_clist_find_row_from_data (GtkCList *clist,
+gint eth_clist_find_row_from_data (EthCList *clist,
                                   gpointer  data);
 
 /* force selection of a row */
-void gtk_clist_select_row (GtkCList *clist,
+void eth_clist_select_row (EthCList *clist,
                           gint      row,
                           gint      column);
 
 /* force unselection of a row */
-void gtk_clist_unselect_row (GtkCList *clist,
+void eth_clist_unselect_row (EthCList *clist,
                             gint      row,
                             gint      column);
 
 /* undo the last select/unselect operation */
-void gtk_clist_undo_selection (GtkCList *clist);
+void eth_clist_undo_selection (EthCList *clist);
 
 /* clear the entire list -- this is much faster than removing
- * each item with gtk_clist_remove
+ * each item with eth_clist_remove
  */
-void gtk_clist_clear (GtkCList *clist);
+void eth_clist_clear (EthCList *clist);
 
 /* return the row column corresponding to the x and y coordinates,
  * the returned values are only valid if the x and y coordinates
  * are respectively to a window == clist->clist_window
  */
-gint gtk_clist_get_selection_info (GtkCList *clist,
+gint eth_clist_get_selection_info (EthCList *clist,
                                   gint      x,
                                   gint      y,
                                   gint     *row,
                                   gint     *column);
 
 /* in multiple or extended mode, select all rows */
-void gtk_clist_select_all (GtkCList *clist);
+void eth_clist_select_all (EthCList *clist);
 
 /* in all modes except browse mode, deselect all rows */
-void gtk_clist_unselect_all (GtkCList *clist);
+void eth_clist_unselect_all (EthCList *clist);
 
 /* swap the position of two rows */
-void gtk_clist_swap_rows (GtkCList *clist,
+void eth_clist_swap_rows (EthCList *clist,
                          gint      row1,
                          gint      row2);
 
 /* move row from source_row position to dest_row position */
-void gtk_clist_row_move (GtkCList *clist,
+void eth_clist_row_move (EthCList *clist,
                         gint      source_row,
                         gint      dest_row);
 
 /* sets a compare function different to the default */
-void gtk_clist_set_compare_func (GtkCList            *clist,
-                                GtkCListCompareFunc  cmp_func);
+void eth_clist_set_compare_func (EthCList            *clist,
+                                EthCListCompareFunc  cmp_func);
 
 /* the column to sort by */
-void gtk_clist_set_sort_column (GtkCList *clist,
+void eth_clist_set_sort_column (EthCList *clist,
                                gint      column);
 
 /* how to sort : ascending or descending */
-void gtk_clist_set_sort_type (GtkCList    *clist,
+void eth_clist_set_sort_type (EthCList    *clist,
                              GtkSortType  sort_type);
 
 /* sort the list with the current compare function */
-void gtk_clist_sort (GtkCList *clist);
+void eth_clist_sort (EthCList *clist);
 
 /* Automatically sort upon insertion */
-void gtk_clist_set_auto_sort (GtkCList *clist,
+void eth_clist_set_auto_sort (EthCList *clist,
                              gboolean  auto_sort);
 
 
@@ -782,4 +782,4 @@ void gtk_clist_set_auto_sort (GtkCList *clist,
 }
 #endif                         /* __cplusplus */
 
-#endif                         /* __GTK_CLIST_H__ */
+#endif                         /* __ETH_CLIST_H__ */
index 64d09ab1055be3f10314e0f293ed3d154eb5c09a..b95dbe0c71277570840ea632953eaee76d8f8d6b 100644 (file)
@@ -1,7 +1,7 @@
 /* gtkglobals.h
  * GTK-related Global defines, etc.
  *
- * $Id: gtkglobals.h,v 1.23 2003/12/24 01:21:32 guy Exp $
+ * $Id: gtkglobals.h,v 1.24 2004/01/09 08:36:23 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -31,14 +31,9 @@ extern GdkFont   *m_r_font, *m_b_font;
 extern guint      m_font_height, m_font_width;
 
 extern GtkStyle  *item_style;
-
-void set_plist_font(GdkFont *font);
 #else
 extern PangoFontDescription *m_r_font, *m_b_font;
-
-void set_plist_font(PangoFontDescription *font);
 #endif
-void set_plist_sel_browse(gboolean);
 
 #if GTK_MAJOR_VERSION >= 2 || GTK_MINOR_VERSION >= 3
 /*
index b3190fc7edbae0d66faa2960ddf0ea54a27cfe37..52e99f63e8d06799d5628c14946c9638181aa28f 100644 (file)
@@ -1,7 +1,7 @@
 /* gui_prefs.c
  * Dialog box for GUI preferences
  *
- * $Id: gui_prefs.c,v 1.49 2004/01/01 13:16:40 ulfl Exp $
+ * $Id: gui_prefs.c,v 1.50 2004/01/09 08:36:23 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -45,6 +45,7 @@
 #include "dlg_utils.h"
 #include "proto_draw.h"
 #include "main.h"
+#include "packet_list.h"
 #include "compat_macros.h"
 #include "toolbar.h"
 
index ffbfd1fd082cc206e77ed69ea60579f864628b73..bbd26618d306cb59a5a12e66c01f149ad4a05802 100644 (file)
@@ -1,6 +1,6 @@
 /* main.c
  *
- * $Id: main.c,v 1.350 2004/01/09 02:57:54 obiot Exp $
+ * $Id: main.c,v 1.351 2004/01/09 08:36:23 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
 #include "register.h"
 #include <prefs-int.h>
 #include "ringbuffer.h"
+#include "../ui_util.h"
 #include "ui_util.h"
 #include "toolbar.h"
-#include "image/clist_ascend.xpm"
-#include "image/clist_descend.xpm"
 #include "../tap.h"
 #include "../util.h"
 #include "compat_macros.h"
 #include "find_dlg.h"
+#include "packet_list.h"
 
 #ifdef WIN32
 #include "capture-wpcap.h"
@@ -134,8 +134,7 @@ typedef struct column_arrows {
 
 capture_file cfile;
 GtkWidget   *main_display_filter_widget=NULL;
-GtkWidget   *top_level = NULL, *packet_list, *tree_view, *byte_nb_ptr,
-            *tv_scrollw, *pkt_scrollw;
+GtkWidget   *top_level = NULL, *tree_view, *byte_nb_ptr, *tv_scrollw;
 static GtkWidget       *info_bar;
 #if GTK_MAJOR_VERSION < 2
 GdkFont     *m_r_font, *m_b_font;
@@ -479,7 +478,7 @@ get_text_from_packet_list(gpointer data)
 {
     gint       row = (gint)OBJECT_GET_DATA(data, E_MPACKET_LIST_ROW_KEY);
     gint       column = (gint)OBJECT_GET_DATA(data, E_MPACKET_LIST_COL_KEY);
-    frame_data *fdata = (frame_data *)gtk_clist_get_row_data(GTK_CLIST(packet_list), row);
+    frame_data *fdata = (frame_data *)packet_list_get_row_data(row);
     epan_dissect_t *edt;
     gchar      *buf=NULL;
     int         len;
@@ -830,84 +829,6 @@ filter_reset_cb(GtkWidget *w, gpointer data _U_)
   filter_packets(&cfile, NULL);
 }
 
-/* GTKClist compare routine, overrides default to allow numeric comparison */
-static gint
-packet_list_compare(GtkCList *clist, gconstpointer  ptr1, gconstpointer  ptr2)
-{
-  /* Get row text strings */
-  char *text1 = GTK_CELL_TEXT (((const GtkCListRow *)ptr1)->cell[clist->sort_column])->text;
-  char *text2 = GTK_CELL_TEXT (((const GtkCListRow *)ptr2)->cell[clist->sort_column])->text;
-
-  /* Attempt to convert to numbers */
-  double  num1 = atof(text1);
-  double  num2 = atof(text2);
-
-  gint  col_fmt = cfile.cinfo.col_fmt[clist->sort_column];
-
-  if ((col_fmt == COL_NUMBER) || (col_fmt == COL_REL_TIME) || (col_fmt == COL_DELTA_TIME) ||
-      ((col_fmt == COL_CLS_TIME) && (timestamp_type == RELATIVE)) ||
-      ((col_fmt == COL_CLS_TIME) && (timestamp_type == DELTA))    ||
-      (col_fmt == COL_UNRES_SRC_PORT) || (col_fmt == COL_UNRES_DST_PORT) ||
-      ((num1 != 0) && (num2 != 0) && ((col_fmt == COL_DEF_SRC_PORT) || (col_fmt == COL_RES_SRC_PORT) ||
-                                      (col_fmt == COL_DEF_DST_PORT) || (col_fmt == COL_RES_DST_PORT))) ||
-      (col_fmt == COL_PACKET_LENGTH) || (col_fmt == COL_CULMULATIVE_BYTES)) {
-
-    /* Compare numeric column */
-
-    if (num1 < num2)
-      return -1;
-    else if (num1 > num2)
-      return 1;
-    else
-      return 0;
-  }
-
-  else {
-
-    /* Compare text column */
-    if (!text2)
-      return (text1 != NULL);
-
-    if (!text1)
-      return -1;
-
-    return strcmp(text1, text2);
-  }
-}
-
-/* What to do when a column is clicked */
-static void
-packet_list_click_column_cb(GtkCList *clist, gint column, gpointer data)
-{
-  column_arrows *col_arrows = (column_arrows *) data;
-  int i;
-
-  gtk_clist_freeze(clist);
-
-  for (i = 0; i < cfile.cinfo.num_cols; i++) {
-    gtk_widget_hide(col_arrows[i].ascend_pm);
-    gtk_widget_hide(col_arrows[i].descend_pm);
-  }
-
-  if (column == clist->sort_column) {
-    if (clist->sort_type == GTK_SORT_ASCENDING) {
-      clist->sort_type = GTK_SORT_DESCENDING;
-      gtk_widget_show(col_arrows[column].descend_pm);
-    } else {
-      clist->sort_type = GTK_SORT_ASCENDING;
-      gtk_widget_show(col_arrows[column].ascend_pm);
-    }
-  }
-  else {
-    clist->sort_type = GTK_SORT_ASCENDING;
-    gtk_widget_show(col_arrows[column].ascend_pm);
-    gtk_clist_set_sort_column(clist, column);
-  }
-  gtk_clist_thaw(clist);
-
-  gtk_clist_sort(clist);
-}
-
 /* mark as reference time frame */
 static void
 set_frame_reftime(gboolean set, frame_data *frame, gint row) {
@@ -921,79 +842,6 @@ set_frame_reftime(gboolean set, frame_data *frame, gint row) {
   reftime_packets(&cfile);
 }
 
-/* mark packets */
-static void
-set_frame_mark(gboolean set, frame_data *frame, gint row) {
-  GdkColor fg, bg;
-
-  if (row == -1)
-    return;
-  if (set) {
-    mark_frame(&cfile, frame);
-    color_t_to_gdkcolor(&fg, &prefs.gui_marked_fg);
-    color_t_to_gdkcolor(&bg, &prefs.gui_marked_bg);
-    gtk_clist_set_foreground(GTK_CLIST(packet_list), row, &fg);
-    gtk_clist_set_background(GTK_CLIST(packet_list), row, &bg);
-  } else {
-    color_filter_t *cfilter = frame->color_filter;
-    unmark_frame(&cfile, frame);
-    /* Restore the color from the matching color filter if any */
-    if (cfilter) { /* The packet matches a color filter */
-      color_t_to_gdkcolor(&fg, &cfilter->fg_color);
-      color_t_to_gdkcolor(&bg, &cfilter->bg_color);
-      gtk_clist_set_foreground(GTK_CLIST(packet_list), row, &fg);
-      gtk_clist_set_background(GTK_CLIST(packet_list), row, &bg);
-    } else { /* No color filter match */
-      gtk_clist_set_foreground(GTK_CLIST(packet_list), row, NULL);
-      gtk_clist_set_background(GTK_CLIST(packet_list), row, NULL);
-    }
-  }
-  file_set_save_marked_sensitive();
-}
-
-#if GTK_MAJOR_VERSION < 2
-static void
-packet_list_button_pressed_cb(GtkWidget *w, GdkEvent *event, gpointer data _U_)
-{
-    GdkEventButton *event_button = (GdkEventButton *)event;
-    gint row, column;
-
-    if (w == NULL || event == NULL)
-        return;
-
-    if (event->type == GDK_BUTTON_PRESS && event_button->button == 2 &&
-        event_button->window == GTK_CLIST(w)->clist_window &&
-        gtk_clist_get_selection_info(GTK_CLIST(w), 
-                                    (gint) event_button->x, (gint) event_button->y, 
-                                    &row, &column)) {
-        frame_data *fdata = (frame_data *) gtk_clist_get_row_data(GTK_CLIST(w),
-                                                                  row);
-        set_frame_mark(!fdata->flags.marked, fdata, row);
-    }
-}
-#else
-static gint
-packet_list_button_pressed_cb(GtkWidget *w, GdkEvent *event, gpointer data _U_)
-{
-    GdkEventButton *event_button = (GdkEventButton *)event;
-    gint row, column;
-
-    if (w == NULL || event == NULL)
-        return FALSE;
-
-    if (event->type == GDK_BUTTON_PRESS && event_button->button == 2 &&
-        event_button->window == GTK_CLIST(w)->clist_window &&
-        gtk_clist_get_selection_info(GTK_CLIST(w), (gint) event_button->x,
-                                     (gint) event_button->y, &row, &column)) {
-        frame_data *fdata = (frame_data *)gtk_clist_get_row_data(GTK_CLIST(w),
-                                                                 row);
-        set_frame_mark(!fdata->flags.marked, fdata, row);
-        return TRUE;
-    }
-    return FALSE;
-}
-#endif
-
 /* 0: toggle ref time status for the selected frame 
  * 1: find next ref time frame
  * 2: find previous reftime frame
@@ -1008,8 +856,7 @@ reftime_frame_cb(GtkWidget *w _U_, gpointer data _U_, guint action)
       /* XXX hum, should better have a "cfile->current_row" here ... */
       set_frame_reftime(!cfile.current_frame->flags.ref_time,
                     cfile.current_frame,
-                    gtk_clist_find_row_from_data(GTK_CLIST(packet_list),
-                                                 cfile.current_frame));
+                    packet_list_find_row_from_data(cfile.current_frame));
     }
     break;
   case 1: /* find next ref frame */
@@ -1021,67 +868,6 @@ reftime_frame_cb(GtkWidget *w _U_, gpointer data _U_, guint action)
   }
 }
 
-void mark_frame_cb(GtkWidget *w _U_, gpointer data _U_) {
-  if (cfile.current_frame) {
-    /* XXX hum, should better have a "cfile->current_row" here ... */
-    set_frame_mark(!cfile.current_frame->flags.marked,
-                  cfile.current_frame,
-                  gtk_clist_find_row_from_data(GTK_CLIST(packet_list),
-                                               cfile.current_frame));
-  }
-}
-
-static void mark_all_frames(gboolean set) {
-  frame_data *fdata;
-  
-  cfile.marked_count = 0;      
-  for (fdata = cfile.plist; fdata != NULL; fdata = fdata->next) {
-    set_frame_mark(set,
-                  fdata,
-                  gtk_clist_find_row_from_data(GTK_CLIST(packet_list), fdata));
-  }
-}
-
-void update_marked_frames(void) {
-  frame_data *fdata;
-  if (cfile.plist == NULL) return;
-  for (fdata = cfile.plist; fdata != NULL; fdata = fdata->next) {
-    if (fdata->flags.marked)
-      set_frame_mark(TRUE,
-                    fdata,
-                    gtk_clist_find_row_from_data(GTK_CLIST(packet_list),
-                                                 fdata));
-  }
-}
-
-void mark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_) {
-  mark_all_frames(TRUE);
-}
-
-void unmark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_) {
-  mark_all_frames(FALSE);
-}
-
-/* What to do when a list item is selected/unselected */
-static void
-packet_list_select_cb(GtkWidget *w _U_, gint row, gint col _U_, gpointer evt _U_) {
-
-/* Remove the hex display tabbed pages */
-  while( (gtk_notebook_get_nth_page( GTK_NOTEBOOK(byte_nb_ptr), 0)))
-    gtk_notebook_remove_page( GTK_NOTEBOOK(byte_nb_ptr), 0);
-
-  select_packet(&cfile, row);
-  gtk_widget_grab_focus(packet_list);
-}
-
-
-static void
-packet_list_unselect_cb(GtkWidget *w _U_, gint row _U_, gint col _U_, gpointer evt _U_) {
-
-  unselect_packet(&cfile);
-}
-
-
 #if GTK_MAJOR_VERSION < 2
 static void
 tree_view_select_row_cb(GtkCTree *ctree, GList *node, gint column _U_,
@@ -1244,86 +1030,6 @@ void resolve_name_cb(GtkWidget *widget _U_, gpointer data _U_) {
   }
 }
 
-/* Set the selection mode of the packet list window. */
-void
-set_plist_sel_browse(gboolean val)
-{
-        GtkSelectionMode new_mode;
-        /* initialize with a mode we don't use, so that the mode == new_mode
-         * test will fail the first time */
-        static GtkSelectionMode mode = GTK_SELECTION_MULTIPLE;
-
-        /* Yeah, GTK uses "browse" in the case where we do not, but oh well. I
-         * think "browse" in Ethereal makes more sense than "SINGLE" in GTK+ */
-        new_mode = val ? GTK_SELECTION_SINGLE : GTK_SELECTION_BROWSE;
-
-       if (mode == new_mode) {
-               /*
-                * The mode isn't changing, so don't do anything.
-                * In particular, don't gratuitiously unselect the
-                * current packet.
-                *
-                * XXX - why do we have to unselect the current packet
-                * ourselves?  The documentation for the GtkCList at
-                *
-                *      http://developer.gnome.org/doc/API/gtk/gtkclist.html
-                *
-                * says "Note that setting the widget's selection mode to
-                * one of GTK_SELECTION_BROWSE or GTK_SELECTION_SINGLE will
-                * cause all the items in the GtkCList to become deselected."
-                */
-               return;
-       }
-
-       if (cfile.finfo_selected)
-               unselect_packet(&cfile);
-
-        mode = new_mode;
-        gtk_clist_set_selection_mode(GTK_CLIST(packet_list), mode);
-}
-
-/* Set the font of the packet list window. */
-#if GTK_MAJOR_VERSION < 2
-void
-set_plist_font(GdkFont *font)
-#else
-void
-set_plist_font(PangoFontDescription *font)
-#endif
-{
-       int i;
-       gint col_width;
-#if GTK_MAJOR_VERSION < 2
-       GtkStyle *style;
-
-       style = gtk_style_new();
-       gdk_font_unref(style->font);
-       style->font = font;
-       gdk_font_ref(font);
-
-       gtk_widget_set_style(packet_list, style);
-#else
-        PangoLayout *layout;
-
-        gtk_widget_modify_font(packet_list, font);
-#endif
-
-       /* Compute default column sizes. */
-       for (i = 0; i < cfile.cinfo.num_cols; i++) {
-#if GTK_MAJOR_VERSION < 2
-               col_width = gdk_string_width(font,
-                       get_column_longest_string(get_column_format(i)));
-#else
-                layout = gtk_widget_create_pango_layout(packet_list,
-                   get_column_longest_string(get_column_format(i)));
-                pango_layout_get_pixel_size(layout, &col_width, NULL);
-                g_object_unref(G_OBJECT(layout));
-#endif
-               gtk_clist_set_column_width(GTK_CLIST(packet_list), i,
-                       col_width);
-       }
-}
-
 /*
  * Push a message referring to file access onto the statusbar.
  */
@@ -3067,17 +2773,12 @@ static void
 create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
 {
     GtkWidget     *main_vbox, *menubar, *u_pane, *l_pane,
-                  *stat_hbox, *column_lb,
+                  *stat_hbox,
                   *filter_bt, *filter_cm, *filter_te,
                   *filter_apply,
                   *filter_reset;
     GList         *filter_list = NULL;
     GtkAccelGroup *accel;
-    GtkStyle      *win_style;
-    GdkBitmap     *ascend_bm, *descend_bm;
-    GdkPixmap     *ascend_pm, *descend_pm;
-    column_arrows *col_arrows;
-    int            i;
     /* Display filter construct dialog has an Apply button, and "OK" not
        only sets our text widget, it activates it (i.e., it causes us to
        filter the capture). */
@@ -3135,44 +2836,7 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
     gtk_widget_show(u_pane);
 
     /* Packet list */
-    pkt_scrollw = scrolled_window_new(NULL, NULL);
-    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(pkt_scrollw),
-                                    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-    gtk_widget_show(pkt_scrollw);
-    gtk_paned_add1(GTK_PANED(u_pane), pkt_scrollw);
-
-    packet_list = gtk_clist_new(cfile.cinfo.num_cols);
-    /* Column titles are filled in below */
-    gtk_container_add(GTK_CONTAINER(pkt_scrollw), packet_list);
-
-    col_arrows = (column_arrows *) g_malloc(sizeof(column_arrows) *
-                                            cfile.cinfo.num_cols);
-
-    set_plist_sel_browse(prefs->gui_plist_sel_browse);
-    set_plist_font(m_r_font);
-    gtk_widget_set_name(packet_list, "packet list");
-    SIGNAL_CONNECT(packet_list, "click-column", packet_list_click_column_cb,
-                   col_arrows);
-    SIGNAL_CONNECT(packet_list, "select-row", packet_list_select_cb, NULL);
-    SIGNAL_CONNECT(packet_list, "unselect-row", packet_list_unselect_cb, NULL);
-    for (i = 0; i < cfile.cinfo.num_cols; i++) {
-        /* Columns do not automatically resize, but are resizeable by
-           the user. */
-        gtk_clist_set_column_auto_resize(GTK_CLIST(packet_list), i, FALSE);
-        gtk_clist_set_column_resizeable(GTK_CLIST(packet_list), i, TRUE);
-
-        /* Right-justify the packet number column. */
-        if (cfile.cinfo.col_fmt[i] == COL_NUMBER)
-            gtk_clist_set_column_justification(GTK_CLIST(packet_list), i,
-                                               GTK_JUSTIFY_RIGHT);
-    }
-    WIDGET_SET_SIZE(packet_list, -1, pl_size);
-    SIGNAL_CONNECT(packet_list, "button_press_event", popup_menu_handler,
-                   OBJECT_GET_DATA(popup_menu_object, PM_PACKET_LIST_KEY));
-    SIGNAL_CONNECT(packet_list, "button_press_event",
-                   packet_list_button_pressed_cb, NULL);
-    gtk_clist_set_compare_func(GTK_CLIST(packet_list), packet_list_compare);
-    gtk_widget_show(packet_list);
+    packet_list_new(u_pane, prefs, pl_size);
 
     /* Tree view */
 #if GTK_MAJOR_VERSION < 2
@@ -3292,37 +2956,10 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
     gtk_widget_show(top_level);
 
     /* Fill in column titles.  This must be done after the top level window
-       is displayed. */
-    win_style = gtk_widget_get_style(top_level);
-    ascend_pm = gdk_pixmap_create_from_xpm_d(top_level->window, &ascend_bm,
-                                             &win_style->bg[GTK_STATE_NORMAL],
-                                             (gchar **)clist_ascend_xpm);
-    descend_pm = gdk_pixmap_create_from_xpm_d(top_level->window, &descend_bm,
-                                              &win_style->bg[GTK_STATE_NORMAL],
-                                              (gchar **)clist_descend_xpm);
-    for (i = 0; i < cfile.cinfo.num_cols; i++) {
-        col_arrows[i].table = gtk_table_new(2, 2, FALSE);
-        gtk_table_set_col_spacings(GTK_TABLE(col_arrows[i].table), 5);
-        column_lb = gtk_label_new(cfile.cinfo.col_title[i]);
-        gtk_table_attach(GTK_TABLE(col_arrows[i].table), column_lb, 0, 1, 0, 2,
-                         GTK_SHRINK, GTK_SHRINK, 0, 0);
-        gtk_widget_show(column_lb);
-        col_arrows[i].ascend_pm = gtk_pixmap_new(ascend_pm, ascend_bm);
-        gtk_table_attach(GTK_TABLE(col_arrows[i].table),
-                         col_arrows[i].ascend_pm,
-                         1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);
-        if (i == 0) {
-            gtk_widget_show(col_arrows[i].ascend_pm);
-        }
-        col_arrows[i].descend_pm = gtk_pixmap_new(descend_pm, descend_bm);
-        gtk_table_attach(GTK_TABLE(col_arrows[i].table),
-                         col_arrows[i].descend_pm,
-                         1, 2, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
-        gtk_clist_set_column_widget(GTK_CLIST(packet_list), i,
-                                    col_arrows[i].table);
-        gtk_widget_show(col_arrows[i].table);
-    }
-    gtk_clist_column_titles_show(GTK_CLIST(packet_list));
+       is displayed.
+
+       XXX - is that still true, with fixed-width columns? */
+    packet_list_set_column_titles();
 }
 
 
index 8a96ecfe21d1eb2036b29eccb4865ea6260a2510..d4db4865f55c20c5cd9980fdf41d8ba5ab52cc27 100644 (file)
@@ -1,7 +1,7 @@
 /* main.h
  * Global defines, etc.
  *
- * $Id: main.h,v 1.34 2003/12/13 18:01:30 ulfl Exp $
+ * $Id: main.h,v 1.35 2004/01/09 08:36:23 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -95,10 +95,6 @@ void expand_all_cb(GtkWidget *, gpointer);
 void collapse_all_cb(GtkWidget *, gpointer);
 void resolve_name_cb(GtkWidget *, gpointer);
 void reftime_frame_cb(GtkWidget *, gpointer, guint);
-void mark_frame_cb(GtkWidget *, gpointer);
-void mark_all_frames_cb(GtkWidget *w, gpointer);
-void unmark_all_frames_cb(GtkWidget *w, gpointer);
-void update_marked_frames(void);
 
 #define RECENT_KEY_CAPTURE_FILE "recent.capture_file"
 #define RECENT_KEY_DISPLAY_FILTER "recent.display_filter"
index 4294868b6ae266248867ddf71205304139d69fd9..72c2e2dc8caed44b27751b0b1f15424d3e140bfc 100644 (file)
@@ -1,7 +1,7 @@
 /* menu.c
  * Menu routines
  *
- * $Id: menu.c,v 1.135 2004/01/06 22:38:07 guy Exp $
+ * $Id: menu.c,v 1.136 2004/01/09 08:36:23 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -64,6 +64,8 @@
 #include "../tap.h"
 #include "../menu.h"
 #include "../ipproto.h"
+#include "packet_list.h"
+#include "ethclist.h"
 
 GtkWidget *popup_menu_object;
 
@@ -888,7 +890,6 @@ popup_menu_handler(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
     GtkWidget *menu = NULL;
     GdkEventButton *event_button = NULL;
-    GtkCList *packet_list = NULL;
     gint row, column;
 
     if(widget == NULL || event == NULL || data == NULL) {
@@ -897,18 +898,15 @@ popup_menu_handler(GtkWidget *widget, GdkEvent *event, gpointer data)
 
     /*
      * If we ever want to make the menu differ based on what row
-     * and/or column we're above, we'd use "gtk_clist_get_selection_info()"
+     * and/or column we're above, we'd use "eth_clist_get_selection_info()"
      * to find the row and column number for the coordinates; a CTree is,
      * I guess, like a CList with one column(?) and the expander widget
      * as a pixmap.
      */
     /* Check if we are on packet_list object */
     if (widget == OBJECT_GET_DATA(popup_menu_object, E_MPACKET_LIST_KEY)) {
-        packet_list=GTK_CLIST(widget);
-        if (gtk_clist_get_selection_info(GTK_CLIST(packet_list),
-                                         (gint) (((GdkEventButton *)event)->x),
-                                         (gint) (((GdkEventButton *)event)->y),
-                                         &row,&column)) {
+        if (packet_list_get_event_row_column(widget, (GdkEventButton *)event,
+                                             &row, &column)) {
             OBJECT_SET_DATA(popup_menu_object, E_MPACKET_LIST_ROW_KEY,
                             GINT_TO_POINTER(row));
             OBJECT_SET_DATA(popup_menu_object, E_MPACKET_LIST_COL_KEY,
index 38efaf5aeb9f529f9c83ebce6f876af74608ff39..012c9dca8b053f0f7681f002bd4caa35eaf4f618 100644 (file)
@@ -1,7 +1,7 @@
 /* packet_list.c
  * packet list related functions   2002 Olivier Abad
  *
- * $Id: packet_list.c,v 1.7 2003/12/09 06:48:40 guy Exp $
+ * $Id: packet_list.c,v 1.8 2004/01/09 08:36:23 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
 
 #include <gtk/gtk.h>
 
+#include "globals.h"
 #include "gtkglobals.h"
 #include "epan/epan.h"
 #include "color.h"
 #include "../ui_util.h"
+#include "ui_util.h"
+#include "menu.h"
 #include "color_utils.h"
 #include "column.h"
 #include "epan/column_info.h"
 #include "compat_macros.h"
+#include "../prefs.h"
+#include "file_dlg.h"
+#include "packet_list.h"
+#include "keys.h"
+
+#include "image/clist_ascend.xpm"
+#include "image/clist_descend.xpm"
+
+/*
+ * XXX - gross hack.
+ * This lets us use GtkCList in GTK+ 1.3[.x] and later, and EthCList on
+ * GTK+ 1.2[.x], at least until we either use GTK+ 2.x's native widgets
+ * or make EthCList work on 1.3[.x] and 2.x.
+ */
+#if GTK_MAJOR_VERSION >= 2 || GTK_MINOR_VERSION >= 3
+#define EthCList                               GtkCList
+#define EthCListRow                            GtkCListRow
+#define eth_clist_append                       gtk_clist_append
+#define eth_clist_clear                                gtk_clist_clear
+#define eth_clist_column_titles_show           gtk_clist_column_titles_show
+#define eth_clist_find_row_from_data           gtk_clist_find_row_from_data
+#define eth_clist_freeze                       gtk_clist_freeze
+#define eth_clist_get_row_data                 gtk_clist_get_row_data
+#define eth_clist_get_selection_info           gtk_clist_get_selection_info
+#define eth_clist_moveto                       gtk_clist_moveto
+#define eth_clist_new                          gtk_clist_new
+#define eth_clist_row_is_visible               gtk_clist_row_is_visible
+#define eth_clist_select_row                   gtk_clist_select_row
+#define eth_clist_set_background               gtk_clist_set_background
+#define eth_clist_set_column_auto_resize       gtk_clist_set_column_auto_resize
+#define eth_clist_set_column_justification     gtk_clist_set_column_justification
+#define eth_clist_set_column_resizeable                gtk_clist_set_column_resizeable
+#define eth_clist_set_column_width             gtk_clist_set_column_width
+#define eth_clist_set_column_widget            gtk_clist_set_column_widget
+#define eth_clist_set_compare_func             gtk_clist_set_compare_func
+#define eth_clist_set_foreground               gtk_clist_set_foreground
+#define eth_clist_set_row_data                 gtk_clist_set_row_data
+#define eth_clist_set_selection_mode           gtk_clist_set_selection_mode
+#define eth_clist_set_sort_column              gtk_clist_set_sort_column
+#define eth_clist_set_text                     gtk_clist_set_text
+#define eth_clist_sort                         gtk_clist_sort
+#define eth_clist_thaw                         gtk_clist_thaw
+#define ETH_CLIST                              GTK_CLIST
+#else
+#include "ethclist.h"
+#endif
+
+typedef struct column_arrows {
+  GtkWidget *table;
+  GtkWidget *ascend_pm;
+  GtkWidget *descend_pm;
+} column_arrows;
+
+GtkWidget *packet_list;
+
+/* GTKClist compare routine, overrides default to allow numeric comparison */
+static gint
+packet_list_compare(EthCList *clist, gconstpointer  ptr1, gconstpointer  ptr2)
+{
+  /* Get row text strings */
+  char *text1 = GTK_CELL_TEXT (((const EthCListRow *)ptr1)->cell[clist->sort_column])->text;
+  char *text2 = GTK_CELL_TEXT (((const EthCListRow *)ptr2)->cell[clist->sort_column])->text;
+
+  /* Attempt to convert to numbers */
+  double  num1 = atof(text1);
+  double  num2 = atof(text2);
+
+  gint  col_fmt = cfile.cinfo.col_fmt[clist->sort_column];
+
+  if ((col_fmt == COL_NUMBER) || (col_fmt == COL_REL_TIME) || (col_fmt == COL_DELTA_TIME) ||
+      ((col_fmt == COL_CLS_TIME) && (timestamp_type == RELATIVE)) ||
+      ((col_fmt == COL_CLS_TIME) && (timestamp_type == DELTA))    ||
+      (col_fmt == COL_UNRES_SRC_PORT) || (col_fmt == COL_UNRES_DST_PORT) ||
+      ((num1 != 0) && (num2 != 0) && ((col_fmt == COL_DEF_SRC_PORT) || (col_fmt == COL_RES_SRC_PORT) ||
+                                      (col_fmt == COL_DEF_DST_PORT) || (col_fmt == COL_RES_DST_PORT))) ||
+      (col_fmt == COL_PACKET_LENGTH) || (col_fmt == COL_CULMULATIVE_BYTES)) {
+
+    /* Compare numeric column */
+
+    if (num1 < num2)
+      return -1;
+    else if (num1 > num2)
+      return 1;
+    else
+      return 0;
+  }
+
+  else {
+
+    /* Compare text column */
+    if (!text2)
+      return (text1 != NULL);
+
+    if (!text1)
+      return -1;
+
+    return strcmp(text1, text2);
+  }
+}
+
+/* What to do when a column is clicked */
+static void
+packet_list_click_column_cb(EthCList *clist, gint column, gpointer data)
+{
+  column_arrows *col_arrows = (column_arrows *) data;
+  int i;
+
+  eth_clist_freeze(clist);
+
+  for (i = 0; i < cfile.cinfo.num_cols; i++) {
+    gtk_widget_hide(col_arrows[i].ascend_pm);
+    gtk_widget_hide(col_arrows[i].descend_pm);
+  }
+
+  if (column == clist->sort_column) {
+    if (clist->sort_type == GTK_SORT_ASCENDING) {
+      clist->sort_type = GTK_SORT_DESCENDING;
+      gtk_widget_show(col_arrows[column].descend_pm);
+    } else {
+      clist->sort_type = GTK_SORT_ASCENDING;
+      gtk_widget_show(col_arrows[column].ascend_pm);
+    }
+  }
+  else {
+    clist->sort_type = GTK_SORT_ASCENDING;
+    gtk_widget_show(col_arrows[column].ascend_pm);
+    eth_clist_set_sort_column(clist, column);
+  }
+  eth_clist_thaw(clist);
+
+  eth_clist_sort(clist);
+}
+
+/* What to do when a list item is selected/unselected */
+static void
+packet_list_select_cb(GtkWidget *w _U_, gint row, gint col _U_, gpointer evt _U_) {
+
+/* Remove the hex display tabbed pages */
+  while( (gtk_notebook_get_nth_page( GTK_NOTEBOOK(byte_nb_ptr), 0)))
+    gtk_notebook_remove_page( GTK_NOTEBOOK(byte_nb_ptr), 0);
+
+  select_packet(&cfile, row);
+  gtk_widget_grab_focus(packet_list);
+}
+
+static void
+packet_list_unselect_cb(GtkWidget *w _U_, gint row _U_, gint col _U_, gpointer evt _U_) {
+
+  unselect_packet(&cfile);
+}
+
+/* mark packets */
+static void
+set_frame_mark(gboolean set, frame_data *frame, gint row) {
+  GdkColor fg, bg;
+
+  if (row == -1)
+    return;
+  if (set) {
+    mark_frame(&cfile, frame);
+    color_t_to_gdkcolor(&fg, &prefs.gui_marked_fg);
+    color_t_to_gdkcolor(&bg, &prefs.gui_marked_bg);
+    eth_clist_set_foreground(ETH_CLIST(packet_list), row, &fg);
+    eth_clist_set_background(ETH_CLIST(packet_list), row, &bg);
+  } else {
+    color_filter_t *cfilter = frame->color_filter;
+
+    unmark_frame(&cfile, frame);
+    /* Restore the color from the matching color filter if any */
+    if (cfilter) { /* The packet matches a color filter */
+      color_t_to_gdkcolor(&fg, &cfilter->fg_color);
+      color_t_to_gdkcolor(&bg, &cfilter->bg_color);
+      eth_clist_set_foreground(ETH_CLIST(packet_list), row, &fg);
+      eth_clist_set_background(ETH_CLIST(packet_list), row, &bg);
+    } else { /* No color filter match */
+      eth_clist_set_foreground(ETH_CLIST(packet_list), row, NULL);
+      eth_clist_set_background(ETH_CLIST(packet_list), row, NULL);
+    }
+  }
+  file_set_save_marked_sensitive();
+}
+
+void mark_frame_cb(GtkWidget *w _U_, gpointer data _U_) {
+  if (cfile.current_frame) {
+    /* XXX hum, should better have a "cfile->current_row" here ... */
+    set_frame_mark(!cfile.current_frame->flags.marked,
+                  cfile.current_frame,
+                  eth_clist_find_row_from_data(ETH_CLIST(packet_list),
+                                               cfile.current_frame));
+  }
+}
+
+static void mark_all_frames(gboolean set) {
+  frame_data *fdata;
+  
+  cfile.marked_count = 0;      
+  for (fdata = cfile.plist; fdata != NULL; fdata = fdata->next) {
+    set_frame_mark(set,
+                  fdata,
+                  eth_clist_find_row_from_data(ETH_CLIST(packet_list), fdata));
+  }
+}
+
+void update_marked_frames(void) {
+  frame_data *fdata;
+  if (cfile.plist == NULL) return;
+  for (fdata = cfile.plist; fdata != NULL; fdata = fdata->next) {
+    if (fdata->flags.marked)
+      set_frame_mark(TRUE,
+                    fdata,
+                    eth_clist_find_row_from_data(ETH_CLIST(packet_list),
+                                                 fdata));
+  }
+}
+
+void mark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_) {
+  mark_all_frames(TRUE);
+}
+
+void unmark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_) {
+  mark_all_frames(FALSE);
+}
+
+gboolean
+packet_list_get_event_row_column(GtkWidget *w, GdkEventButton *event_button,
+                                gint *row, gint *column)
+{
+    return eth_clist_get_selection_info(ETH_CLIST(w), 
+                                 (gint) event_button->x, (gint) event_button->y, 
+                                  row, column);
+}
+
+#if GTK_MAJOR_VERSION < 2
+static void
+packet_list_button_pressed_cb(GtkWidget *w, GdkEvent *event, gpointer data _U_)
+{
+    GdkEventButton *event_button = (GdkEventButton *)event;
+    gint row, column;
+
+    if (w == NULL || event == NULL)
+        return;
+
+    if (event->type == GDK_BUTTON_PRESS && event_button->button == 2 &&
+        event_button->window == ETH_CLIST(w)->clist_window &&
+        packet_list_get_event_row_column(w, event_button, &row, &column)) {
+        frame_data *fdata = (frame_data *) eth_clist_get_row_data(ETH_CLIST(w),
+                                                                  row);
+        set_frame_mark(!fdata->flags.marked, fdata, row);
+    }
+}
+#else
+static gint
+packet_list_button_pressed_cb(GtkWidget *w, GdkEvent *event, gpointer data _U_)
+{
+    GdkEventButton *event_button = (GdkEventButton *)event;
+    gint row, column;
+
+    if (w == NULL || event == NULL)
+        return FALSE;
+
+    if (event->type == GDK_BUTTON_PRESS && event_button->button == 2 &&
+        event_button->window == ETH_CLIST(w)->clist_window &&
+        eth_clist_get_selection_info(ETH_CLIST(w), (gint) event_button->x,
+                                     (gint) event_button->y, &row, &column)) {
+        frame_data *fdata = (frame_data *)eth_clist_get_row_data(ETH_CLIST(w),
+                                                                 row);
+        set_frame_mark(!fdata->flags.marked, fdata, row);
+        return TRUE;
+    }
+    return FALSE;
+}
+#endif
+
+/* Set the selection mode of the packet list window. */
+void
+set_plist_sel_browse(gboolean val)
+{
+        GtkSelectionMode new_mode;
+        /* initialize with a mode we don't use, so that the mode == new_mode
+         * test will fail the first time */
+        static GtkSelectionMode mode = GTK_SELECTION_MULTIPLE;
+
+        /* Yeah, GTK uses "browse" in the case where we do not, but oh well. I
+         * think "browse" in Ethereal makes more sense than "SINGLE" in GTK+ */
+        new_mode = val ? GTK_SELECTION_SINGLE : GTK_SELECTION_BROWSE;
+
+       if (mode == new_mode) {
+               /*
+                * The mode isn't changing, so don't do anything.
+                * In particular, don't gratuitiously unselect the
+                * current packet.
+                *
+                * XXX - why do we have to unselect the current packet
+                * ourselves?  The documentation for the GtkCList at
+                *
+                *      http://developer.gnome.org/doc/API/gtk/gtkclist.html
+                *
+                * says "Note that setting the widget's selection mode to
+                * one of GTK_SELECTION_BROWSE or GTK_SELECTION_SINGLE will
+                * cause all the items in the GtkCList to become deselected."
+                */
+               return;
+       }
+
+       if (cfile.finfo_selected)
+               unselect_packet(&cfile);
+
+        mode = new_mode;
+        eth_clist_set_selection_mode(ETH_CLIST(packet_list), mode);
+}
+
+/* Set the font of the packet list window. */
+#if GTK_MAJOR_VERSION < 2
+void
+set_plist_font(GdkFont *font)
+#else
+void
+set_plist_font(PangoFontDescription *font)
+#endif
+{
+       int i;
+       gint col_width;
+#if GTK_MAJOR_VERSION < 2
+       GtkStyle *style;
+
+       style = gtk_style_new();
+       gdk_font_unref(style->font);
+       style->font = font;
+       gdk_font_ref(font);
+
+       gtk_widget_set_style(packet_list, style);
+#else
+        PangoLayout *layout;
+
+        gtk_widget_modify_font(packet_list, font);
+#endif
+
+       /* Compute default column sizes. */
+       for (i = 0; i < cfile.cinfo.num_cols; i++) {
+#if GTK_MAJOR_VERSION < 2
+               col_width = gdk_string_width(font,
+                       get_column_longest_string(get_column_format(i)));
+#else
+                layout = gtk_widget_create_pango_layout(packet_list,
+                   get_column_longest_string(get_column_format(i)));
+                pango_layout_get_pixel_size(layout, &col_width, NULL);
+                g_object_unref(G_OBJECT(layout));
+#endif
+               eth_clist_set_column_width(ETH_CLIST(packet_list), i,
+                       col_width);
+       }
+}
+
+void
+packet_list_new(GtkWidget *u_pane, e_prefs *prefs, gint pl_size)
+{
+    GtkWidget *pkt_scrollw;
+    int            i;
+
+    /* Packet list */
+    pkt_scrollw = scrolled_window_new(NULL, NULL);
+    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(pkt_scrollw),
+                                    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+    gtk_widget_show(pkt_scrollw);
+    gtk_paned_add1(GTK_PANED(u_pane), pkt_scrollw);
+
+    packet_list = eth_clist_new(cfile.cinfo.num_cols);
+    /* Column titles are filled in below */
+    gtk_container_add(GTK_CONTAINER(pkt_scrollw), packet_list);
+
+    set_plist_sel_browse(prefs->gui_plist_sel_browse);
+    set_plist_font(m_r_font);
+    gtk_widget_set_name(packet_list, "packet list");
+    SIGNAL_CONNECT(packet_list, "select-row", packet_list_select_cb, NULL);
+    SIGNAL_CONNECT(packet_list, "unselect-row", packet_list_unselect_cb, NULL);
+    for (i = 0; i < cfile.cinfo.num_cols; i++) {
+        /* Columns do not automatically resize, but are resizeable by
+           the user. */
+        eth_clist_set_column_auto_resize(ETH_CLIST(packet_list), i, FALSE);
+        eth_clist_set_column_resizeable(ETH_CLIST(packet_list), i, TRUE);
+
+        /* Right-justify the packet number column. */
+        if (cfile.cinfo.col_fmt[i] == COL_NUMBER)
+            eth_clist_set_column_justification(ETH_CLIST(packet_list), i,
+                                               GTK_JUSTIFY_RIGHT);
+    }
+    WIDGET_SET_SIZE(packet_list, -1, pl_size);
+    SIGNAL_CONNECT(packet_list, "button_press_event", popup_menu_handler,
+                   OBJECT_GET_DATA(popup_menu_object, PM_PACKET_LIST_KEY));
+    SIGNAL_CONNECT(packet_list, "button_press_event",
+                   packet_list_button_pressed_cb, NULL);
+    eth_clist_set_compare_func(ETH_CLIST(packet_list), packet_list_compare);
+    gtk_widget_show(packet_list);
+}
+
+void
+packet_list_set_column_titles(void)
+{
+    GtkStyle      *win_style;
+    GdkPixmap     *ascend_pm, *descend_pm;
+    GdkBitmap     *ascend_bm, *descend_bm;
+    column_arrows *col_arrows;
+    int            i;
+    GtkWidget     *column_lb;
+
+    win_style = gtk_widget_get_style(top_level);
+    ascend_pm = gdk_pixmap_create_from_xpm_d(top_level->window, &ascend_bm,
+                                             &win_style->bg[GTK_STATE_NORMAL],
+                                             (gchar **)clist_ascend_xpm);
+    descend_pm = gdk_pixmap_create_from_xpm_d(top_level->window, &descend_bm,
+                                              &win_style->bg[GTK_STATE_NORMAL],
+                                              (gchar **)clist_descend_xpm);
+
+    col_arrows = (column_arrows *) g_malloc(sizeof(column_arrows) *
+                                            cfile.cinfo.num_cols);
+    for (i = 0; i < cfile.cinfo.num_cols; i++) {
+        col_arrows[i].table = gtk_table_new(2, 2, FALSE);
+        gtk_table_set_col_spacings(GTK_TABLE(col_arrows[i].table), 5);
+        column_lb = gtk_label_new(cfile.cinfo.col_title[i]);
+        gtk_table_attach(GTK_TABLE(col_arrows[i].table), column_lb, 0, 1, 0, 2,
+                         GTK_SHRINK, GTK_SHRINK, 0, 0);
+        gtk_widget_show(column_lb);
+        col_arrows[i].ascend_pm = gtk_pixmap_new(ascend_pm, ascend_bm);
+        gtk_table_attach(GTK_TABLE(col_arrows[i].table),
+                         col_arrows[i].ascend_pm,
+                         1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);
+        if (i == 0) {
+            gtk_widget_show(col_arrows[i].ascend_pm);
+        }
+        col_arrows[i].descend_pm = gtk_pixmap_new(descend_pm, descend_bm);
+        gtk_table_attach(GTK_TABLE(col_arrows[i].table),
+                         col_arrows[i].descend_pm,
+                         1, 2, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
+        eth_clist_set_column_widget(ETH_CLIST(packet_list), i,
+                                    col_arrows[i].table);
+        gtk_widget_show(col_arrows[i].table);
+    }
+    eth_clist_column_titles_show(ETH_CLIST(packet_list));
+    SIGNAL_CONNECT(packet_list, "click-column", packet_list_click_column_cb,
+                   col_arrows);
+}
 
 void
 packet_list_clear(void)
 {
-    gtk_clist_clear(GTK_CLIST(packet_list));
+    eth_clist_clear(ETH_CLIST(packet_list));
 }
 
 void
 packet_list_freeze(void)
 {
-    gtk_clist_freeze(GTK_CLIST(packet_list));
+    eth_clist_freeze(ETH_CLIST(packet_list));
 }
 
 void
 packet_list_thaw(void)
 {
-    gtk_clist_thaw(GTK_CLIST(packet_list));
+    eth_clist_thaw(ETH_CLIST(packet_list));
 }
 
 void
@@ -64,8 +508,8 @@ packet_list_select_row(gint row)
 void
 packet_list_moveto_end(void)
 {
-    gtk_clist_moveto(GTK_CLIST(packet_list),
-                     GTK_CLIST(packet_list)->rows - 1, -1, 1.0, 1.0);
+    eth_clist_moveto(ETH_CLIST(packet_list),
+                     ETH_CLIST(packet_list)->rows - 1, -1, 1.0, 1.0);
 }
 
 gint
@@ -73,8 +517,8 @@ packet_list_append(gchar *text[], gpointer data)
 {
     gint row;
 
-    row = gtk_clist_append(GTK_CLIST(packet_list), text);
-    gtk_clist_set_row_data(GTK_CLIST(packet_list), row, data);
+    row = eth_clist_append(ETH_CLIST(packet_list), text);
+    eth_clist_set_row_data(ETH_CLIST(packet_list), row, data);
     return row;
 }
 
@@ -86,25 +530,25 @@ packet_list_set_colors(gint row, color_t *fg, color_t *bg)
     if (fg)
     {
         color_t_to_gdkcolor(&gdkfg, fg);
-        gtk_clist_set_foreground(GTK_CLIST(packet_list), row, &gdkfg);
+        eth_clist_set_foreground(ETH_CLIST(packet_list), row, &gdkfg);
     }
     if (bg)
     {
         color_t_to_gdkcolor(&gdkbg, bg);
-        gtk_clist_set_background(GTK_CLIST(packet_list), row, &gdkbg);
+        eth_clist_set_background(ETH_CLIST(packet_list), row, &gdkbg);
     }
 }
 
 gint
 packet_list_find_row_from_data(gpointer data)
 {
-    return gtk_clist_find_row_from_data(GTK_CLIST(packet_list), data);
+    return eth_clist_find_row_from_data(ETH_CLIST(packet_list), data);
 }
 
 void
 packet_list_set_text(gint row, gint column, const gchar *text)
 {
-    gtk_clist_set_text(GTK_CLIST(packet_list), row, column, text);
+    eth_clist_set_text(ETH_CLIST(packet_list), row, column, text);
 }
 
 /* Set the column widths of those columns that show the time in
@@ -127,13 +571,13 @@ packet_list_set_cls_time_width(gint column)
     pango_layout_get_pixel_size(layout, &width, NULL);
     g_object_unref(G_OBJECT(layout));
 #endif
-    gtk_clist_set_column_width(GTK_CLIST(packet_list), column, width);
+    eth_clist_set_column_width(ETH_CLIST(packet_list), column, width);
 }
 
 gpointer
 packet_list_get_row_data(gint row)
 {
-    return gtk_clist_get_row_data(GTK_CLIST(packet_list), row);
+    return eth_clist_get_row_data(ETH_CLIST(packet_list), row);
 }
 
 /* Set the selected row and the focus row of the packet list to the specified
@@ -141,23 +585,23 @@ packet_list_get_row_data(gint row)
 void
 packet_list_set_selected_row(gint row)
 {
-    if (gtk_clist_row_is_visible(GTK_CLIST(packet_list), row) !=
+    if (eth_clist_row_is_visible(ETH_CLIST(packet_list), row) !=
         GTK_VISIBILITY_FULL)
-        gtk_clist_moveto(GTK_CLIST(packet_list), row, -1, 0.0, 0.0);
+        eth_clist_moveto(ETH_CLIST(packet_list), row, -1, 0.0, 0.0);
 
-    /* XXX - why is there no "gtk_clist_set_focus_row()", so that we
+    /* XXX - why is there no "eth_clist_set_focus_row()", so that we
      * can make the row for the frame we found the focus row?
      *
      * See http://www.gnome.org/mailing-lists/archives/gtk-list/2000-January/0038.shtml
      */
-    GTK_CLIST(packet_list)->focus_row = row;
+    ETH_CLIST(packet_list)->focus_row = row;
 
-    gtk_clist_select_row(GTK_CLIST(packet_list), row, -1);
+    eth_clist_select_row(ETH_CLIST(packet_list), row, -1);
 }
 
 /* Return the column number that the clist is currently sorted by */
 gint
 packet_list_get_sort_column(void)
 {
-    return GTK_CLIST(packet_list)->sort_column;
+    return ETH_CLIST(packet_list)->sort_column;
 }
diff --git a/gtk/packet_list.h b/gtk/packet_list.h
new file mode 100644 (file)
index 0000000..9ffb03d
--- /dev/null
@@ -0,0 +1,47 @@
+/* packet_list.h
+ * Declarations of GTK+-specific routines for managing the packet list.
+ *
+ * $Id: packet_list.h,v 1.1 2004/01/09 08:36:23 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifndef __PACKET_LIST_H__
+#define __PACKET_LIST_H__
+
+extern void packet_list_new(GtkWidget *u_pane, e_prefs *prefs, gint pl_size);
+extern void packet_list_set_column_titles(void);
+
+extern void mark_frame_cb(GtkWidget *, gpointer);
+extern void mark_all_frames_cb(GtkWidget *w, gpointer);
+extern void unmark_all_frames_cb(GtkWidget *w, gpointer);
+extern void update_marked_frames(void);
+
+extern gboolean packet_list_get_event_row_column(GtkWidget *w,
+    GdkEventButton *event_button, gint *row, gint *column);
+
+#if GTK_MAJOR_VERSION < 2
+extern void set_plist_font(GdkFont *font);
+#else
+extern void set_plist_font(PangoFontDescription *font);
+#endif
+
+extern void set_plist_sel_browse(gboolean);
+
+#endif /* __PACKET_LIST_H__ */