On Tue, 2003-11-18 at 00:04, Gerald Combs wrote:
> On Mon, 17 Nov 2003, Ulf Lamping wrote:
>
> > Well, that would be nice to look at. But please keep in mind, that
> > making different GUIs for different platforms will force people to
> > maintain different frontends at once, even if they don't have that
> > platform by hand. Currently, you will write code for the GTK, and it
> > will work (hopefully) on all supported platforms.
> > The risk of forking the GUI code seems to become a maintenance
> > *nightmare* and could slow down development of new features a lot...
>
> ...and so the nightmare begins. :) As a proof of concept I've cobbled
> together some Python code that reads XUL interface definitions and
> generates native Windows C SDK code. It combines the redeeming (to me,
> at least) aspects of Mozilla's XPFE and AbiWords Application Framework.
Do i understand right that you wrote a Python program that generates
WIN32-SDK code ? If so than it sounds like the work of maintaining two
or more GUI's moved to maintaining two of more GUI-code generators (one
for WIN32, one for GTK, etc. ). If not than i don't really understand
what you did :-)
>
> The autogenerated code has been combined with some hand-written code
> and linked with the rest of Ethereal to create an application with a
> native look and feel. It isn't much more than a toy at the moment --
> it can only open a file and display a packet list, but it looks promising.
>
> This method has the following advantages:
>
> - The interface layout is easy to change, since it's defined by the
> XUL files.
>
> - Much (but not all) of the code is automatically generated.
>
> - Frontends are truly native, and can be tweaked extensively.
>
> New features will require new code for each platform, but this can
> hopefully be minimized with the use of generated code.
>
> Does this seem like a viable approach? If so, I'll keep plodding along.
> If not, speak up 'cause I finally have time to devote to a cross-platform
> frontend and I'd _really_ like to use it effectively.
One thing that i think is still important is to make it possible to
write separate ( outside the Ethereal source tree, and not by the
Ethereal team) GUI's, by having a well defined interface to the Ethereal
core that somehow is put in a DLL/SO. Comparable to the frontends of GDB
(although the GDB interface is a disaster), you have DDD, xgdb, kgdb
etc.
- Erwin
--
Erwin Rol Software Engineering - http://www.erwinrol.com/