[webkit-dev] Widget / Drawing API thoughts
Maciej Stachowiak
mjs at apple.com
Mon Jun 20 15:35:32 PDT 2005
On Jun 20, 2005, at 2:06 PM, Kent Sandvik wrote:
> On 6/19/05, Maciej Stachowiak <mjs at apple.com> 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
More information about the webkit-dev
mailing list