Ethereal-dev: RE: [Ethereal-dev] Adding our own private widget for the packet l ist

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Biot Olivier <Olivier.Biot@xxxxxxxxxxx>
Date: Fri, 9 Jan 2004 18:09:55 +0100
Hi list,

It looks however like GtkCList is being deprecated in Gtk+2.x.

http://developer.gnome.org/doc/API/2.0/gtk/DeprecatedObjects.html
http://developer.gnome.org/doc/API/2.0/gtk/GtkCList.html

Instead we should use the new Tree and List Widgets...

http://developer.gnome.org/doc/API/2.0/gtk/TreeWidget.html

... if we want to stick with Gtk+. I suppose this is Guy's 2nd option (see
below).

Has anyone tried switching from GtkCList to TreeWidget and its MVC paradigm?

Regards,

Olivier

| -----Original Message-----
| From: Guy Harris
| 
| On Tue, Dec 30, 2003 at 12:34:35AM -0800, Guy Harris wrote:
| > 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.
| 
| I've done a test build with the replacement of GtkClist with EthClist
| turned off; it succeeded.  I *suspect* that means it'll work with
| 1.3[.x] and 2.x as well.
| 
| I've checked in that change.  As indicated earlier, 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).