Wireshark-dev: Re: [Wireshark-dev] Is it time to make Wireshark a native Mac OS X application?

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Sat, 19 Sep 2009 00:16:17 -0700

On Sep 18, 2009, at 5:23 PM, Stephen Fisher wrote:

Is it time to make Wireshark a native Mac OS X application?

For suitable values of "native", possibly.

As I remember, Ulf Lamping has, in the past, expressed the concern that we would have to maintain code for multiple different UIs, so that if a particular dialog box, or a particular graph in a statistics tap, or... had to be modified, the modifications would have to be done in multiple places - and that if *new* UI code is written, multiple versions would have to be written, and that would require that anybody writing new UI code would have to be familiar with all the UI platforms and have development environments available for all of them.

I agree with Ulf that this is a real concern.

One possibility might be to use wxWidgets:

	http://www.wxwidgets.org/

which is a C++ wrapper class around various toolkits, including GTK+, the Windows toolkit and - currently - Carbon.

They're working on using wrapping it around Cocoa for wxWidgets 3.0 - among other things, to support 64-bit applications:

	wxWidgets 2.9.0 released
	2009-09-08

We are pleased to announce the first release in the 2.9 development series. wxWidgets 2.9.0 gives a flavour of what will be provided in the stable wxWidgets 3.0 version next year, and we are interested in your feedback. Enhancements in 2.9 include the removal of the distinction between ANSI and Unicode builds, and a reworked Mac OS X architecture, supporting both 32-bit Carbon and 32-bit/64-bit Cocoa variants (wxOSX/Cocoa at alpha stage). You can get wxWidgets 2.9.0 from the download page.

but that's not there yet.

Their tree control supports only one column, and appears to require that you supply the text for the column when you add an item; there's an add-on tree list control:

	http://wxcode.sourceforge.net/components/treelistctrl/

but it has the same "supply the text for the columns when you add an item" limitation. We'd have to write our own tree control so that the text can be generated on demand.

Some other frameworks of that sort are:

	http://www.lucidtoolkit.org/

and Qt - although Qt

1) isn't, as far as I know, built atop the native widgets on Windows or OS X

and

2) is, as far as I know, built atop Carbon on OS X (hence no 64-bit support)

although it *does* have the potential advantage of being native on Linux distributions/BSD desktops/etc. that use KDE rather than GNOME - and the potential disadvantag of *not* being native on Linux distributions/BSD desktops/Solaris desktops/etc. that use GNOME rather than KDE.

Or we could do our *own* cross-platform framework, but, all other things being equal, I'd rather not own that problem.