> I really would like to have a native version of LyX for Winxx. Problem is,
> I could barely find the time to do the rather straightforward port using
> Cygwin. So on the one hand I totally agree with what you are saying here,
> but on the other hand I am concerned I won't have the time to dive into all
> this GUI-stuff and make this nice, clean native version (this is assuming
> that nobody else is interested in doing it of course). My question is: how
> much work would it be to provide a native layer? How likely is it that a
> layer will be built for another platform that uses a toolkit which is
> available for Winxx?

The job of porting LyX to a different platform is split up into a few
categories:

1) Porting the painter.

This can be done in a day.  It's small.

2) Porting the dialogs.

This is the most work.  Each dialog has to be drawn and the logic code
has to be put in.  
On the other hand, this is a no-brainer for the most part.  
Take an existing dialog from some existing port that resembles your port 
the most. Have a look a the minimal code that does the logic, and build 
your own version of it.
I'd say you can do a dialog a day.  (How many dialogs do we have?
I don't know.)

If this can be automated to some extend, you'll gain a lot.  After all,
the dialogs are described logically with the fd-files, so maybe some
converter can be build.  (This was done for Qt, I think.  Alejandro?)

3) The event model -- main loop stuff.

The event model of the port has to be implemented.  Since we have
not abstracted this yet, it's hard to guess.  I hope it will be
similar to the job of porting the painter.  It will probably be
an interface with maybe 20 methods.

4) The fonts.

You have to implement the font loader and font metrics routines for
your platform.  This has not been abstracted fully yet, so it's hard
to say how much work it will be.  Maybe two days, maybe more.

5) The rest.

There are a few issues with regard to how to update the canvas,
that we have not abstracted fully yet, and other small issues (cursor
shape and similar stuff.)
Add N days for this, for the setup, finetuning, testing, and multiply 
the whole thing by two.

-

Notice that this is the task of porting LyX to an entirely new platform.
Porting LyX to GTK+ is easier, because some of the code is common:
The font loader, some of the extra stuff that is done directly with X11
calls, and things like that.

-

For reference, the task of porting Netscape to Qt was done in a week
by a skilled team of eight (I think.)  Netscape is bigger than LyX.

Greets,

Asger

Reply via email to