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.