On Mon, 31 Jan 2005, Stephan Schaefer wrote:
> Most of those points are valid but at least some are may be not as bad
> you might think.
> - Porting: I think the lack of an Aqua port is not only due to the
> complexity of VCL. VCL comes with an X11 and a Win32 implementation that
> provide the same functionality on quite different platforms.
> Additionaly, there is a Java implementation that serves as the base for
> NeoOffice/J. In other words, there are fully functional VCL
> implementations for 3 major APIs. It should be possible to derive
> another one.

I might point out that its not incredibly hard to get the _widgets_ to
work (aside from the Aqua pinstripe background problem, its quite hard to
get the VCL to think everything except the controls are transparent), but
what seems to be really hard is to integrate the Mac OS X event model, as
exposed via Cocoa, into OOo.  Carbon events would probably be easier, but
still a bit difficult.

Having done native widgets twice over (GTK, and then Aqua for NeoOffice/C)
I spent the majority of my time with the Aqua stuff being frustrated with
tying together the event model.  There needed to be a couple threads: 1)
The cocoa event loop for the NSApplication object, 2) The OOo event
thread, and 3) The actual OOo drawing/everything-else thread.  It seemed
that even on a dual-processor machine, events took a while to get from
Cocoa to OOo.  The problem with Cocoa is that OOo tries to do too many
things when an event is processed, including drawing and whatnot.  Cocoa
really expects the app to simply update its internal state and then
re-draw itself when _needed_ (and asynchronously when it gets a drawRect:
message) rather thabn OOo's method of "get a mouse click and update
everything before returning".  Or something like that.  I kept running
into really really long call-chains, deadlocks, and crashes resulting from
this issue.

Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to