I have a tree in which, with GTK+ 1.2[.x] (but not 1.3[.x] or 2.x), we
use an EthClist widget for the packet list.
Currently, that widget is just the GTK+ 1.2[.x] GtkClist widget, from
"gtkclist_v12.[ch]", with a lot of global search and replace done.
However, that lets us, at least for the GTK+ 1.2[.x] users, make
performance and other improvements to the widget. (It should also get
rid of problems on some platforms where supplying our own GtkClist
breaks things, e.g. AIX and, I think, some Darwin/Mac OS X builds - the
latter may be a problem only with dynamically-loaded GTK+ libraries; I
haven't seen it with my builds against a static GTK+ library.)
I have not done test builds against 1.3[.x] or 2.x.
We should probably either
1) tweak the widget so that it can be built for GTK+ 1.2[.x],
1.3[.x], and 2.x (perhaps by looking at the differences
between 1.2[.x]'s and 2.x's GtkClists, and putting in
#ifdeffed code for those cases where the code has to differ
and using the "better" code in other cases)
or
2) use the new GTK+ 2.x widget for displaying the packet list,
if the performance of that widget is acceptable (we'd
probably still have to have a #ifdeffed version for 1.3[.x]
if 1.3[.x] doesn't have the new tree widgets - I think 1.3[.x]
uses UTF-8 for strings, while 1.2[.x] doesn't).
I can send the patch out, along with the new "ethclist.[ch]" files.
Note that the patch moves some code into "gtk/packet_list.c", so that
the GtkClist vs. EthClist stuff is localized.