Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] GTK1: code cleanup status and some open points

From: Stephen Fisher <stephentfisher@xxxxxxxxx>
Date: Thu, 10 Apr 2008 22:32:12 -0600
On Thu, Apr 10, 2008 at 01:33:03AM +0200, Ulf Lamping wrote:

> Lot's of stuff already done for the GTK1 cleanup, but we could still 
> need a helping hand ...

> OPEN:
> 
> Unix build process: finished?

Yes, it's done as far as I can tell.

> gtk/STATUS.gtk2: very old content (remove items marked as "Done" - or 
> remove the whole file?)

Let's just get rid of that old file :).

> compat_macros.h: GTK1 specific code removed, but a lot more cleanup 
> needed (macro removal throughout the gtk code is now possible) - 
> Stephen Fisher seems to be working on this

Yup.  Unfortunately, there are thousands of instances where a macro from 
compat_macros.h is used throughout the gtk directory so it will take a 
while :(.  I wrote a Perl script to help, but it misses so many of them 
because of the arguments to the macro being split across lines and 
similar issues.  They can't just simply be renamed because some need 
cast/type checking macros added as seen below.

The most commonly used macros need to change as follows:

OBJECT_SET_DATA(widget, key, data);
  to: g_object_set_data(G_OBJECT(widget), key, data);

OBJECT_GET_DATA(widget, key);
  to: g_object_get_data(G_OBJECT(widget), key);

SIGNAL_CONNECT(widget, name, callback, arg);
  to: g_signal_connect(widget, name, G_CALLBACK(callback), arg);
    (depending on the type of arg, it may need to be cast to a gpointer)

> However, seems we're making good progress on this whole topic, and 
> some gtk files already look *a lot* nicer ...

Indeed:).  I think the next step is to get rid of GTK1 features that 
have been deprecated in GTK2, such as the CList (which should be 
possible for all instances except the packet list).  Of course, this 
will take plenty of work to port the code to the new APIs.


Steve