Mac/Cocoa port: the changes


Subject: Mac/Cocoa port: the changes
From: Hubert Figuiere (hfiguiere@teaser.fr)
Date: Wed Dec 05 2001 - 08:25:26 CST


As you may have noticed or are already aware of, I committed code to port
AbiWord over Cocoa. I'll explain the choices.

Q: What is Cocoa ?

A: Cocoa is the Objective-C API that is available in MacOS X. It inherits
from the 10 yr experience of OpenStep from NeXT Software (actually it is an
evolution of OpenStep).

Q: Why Cocoa while you had worked on Carbon ?

A: The choice of Carbon was solely because Carbon is C API while Cocoa is
Objective-C API. AbiWord being written in C++, it was an easier path to go
with a C API. Now that MacOS X 10.1 has Objective-C++ support, that allow
mixing Objective-C and C++ within the same source file, Cocoa use was made
easy from the AbiWord source code. Given how steep is Carbon learning curve
and how complex are some of its API and given how easy is Cocoa development,
the choice was natural.

Q: What about MacOS 9 compatibilty ?

A: In the past, I planned 90% source compatibility with MacOS 9 (with
CarbonLib) by using Carbon. I no longer care about that. But the Carbon code
will remain in the tree in case someone want to take over it. I just don't
feel like it. In short, there won't be MacOS 9 compatibility with Cocoa port.

Q: How will this integrate within the AbiWord source tree ?

A: All the Cocoa code will reside in the cocoa platform subdirs. This ports
also makes a step forward by seperating Back-End to Front-End. It'll use
UNIX Back-End and Cocoa Front-End. The Back-End is in src/af/util.
Everything else is Front-End but src/text. All the Cocoa code is
Objective-C++ (.mm files) and will remain as such.
Carbon code was in mac platform subdirectories.
Note that the required changes to the build system won't be committed before
0.9.6 gets release.

Q: What are other requirements ?

A: InterfaceBuilder will be used for most GUI stuff, and we'll probably need
to port glib as it is part of the Back-End. Otherwise nothing special.

Q: What is the timeframe ?

A: There is currently none. I just expect to gain some time by having done
that switch despite the fact the I must start over.

Q: Can I help ?

A: Sure.

Hub



This archive was generated by hypermail 2b25 : Wed Dec 05 2001 - 08:30:32 CST