On Jun 20, 2005, at 2:06 PM, Kent Sandvik wrote:

On 6/19/05, Maciej Stachowiak <[EMAIL PROTECTED]> wrote:


The problem with inheriting from platform-independent base classes is

that you would have to use multiple inheritance to get the
inheritance hierarchy right. For instance, QCheckBox would have to
inherit from QButton *and* from QCheckBoxBase, which QButton would
have to inherit from QButtonBase. I think this would be needlessly
complex, and I guess whole separate implementations of the widgets
are likely to be fine.


Yes, it would be cleaner if each platform had their own
platform-specific implementation in a separate source directory, if
there's anything common that never needs a platform-specific file, it
could be placed in a src/common dir or something similar. Note that
you could have C++ member functions for a class that could be
implemented in the system-specific dir, *as well as* common member
function implementations that don't need any platform code.

One step in the current build tree would be to separate the KWQ header
files into a separate directory, and move the existing implementation
files into a macosx dir, as I assume most of the code is
macosx-centric, anyway. Then there could be a migration moving some of
the code into a src/common or something similar.

I could help out with that in case this part of the project starts,
but usually it's best if one person does the big surgical operation
and checks it all in.

I was thinking of maybe a tree structure like this

WebCore
    khtml
bridge (stuff from kwq that's for bridging to a higher level API library, not about replacing Qt/KDE)
    kwq (strictly Qt/KDE replacements)
        headers
        common
        macosx

Then gtk could be added as a peer directory to macosx (and hopefully in the future xwwindows, symbian, win32, and so forth).

One complicating factor here is the fact that we are planning to redo the way form controls are done soon. We want to make the layout engine draw them directly instead of using platform-native widgets, so instead of the various Qt widget classes we'd mostly just end up with a theme API for drawing the native look.

Perhaps temporarily we could set up the tree to work with either model, so ports can convert to the theme API approach on their own schedule.

Any thoughts from Nokia folks on how this would affect the Gtk+ or symbian ports?

Regards,
Maciej



_______________________________________________
webkit-dev mailing list
[email protected]
http://www.opendarwin.org/mailman/listinfo/webkit-dev

Reply via email to