Mac OS X Porting - Native Spellchecking
From Apache OpenOffice Wiki
Contributors
- Mox Soini: Mox
Introduction
To get native spellchecking in OpenOffice.org for Mac OS X (Aqua), there are two parts. First making and providing the hunspell spellchecker server for Mac OS X (this is optional). And second, integrating Mac OS X's spellchecking services into OOo UI.
The advantage of having native hunspell server, would be to take advantage of all the languages in OOo that Mac OS X System does not support. At the same time, this would make hunspell available to all Apple's native applications.
Roadmap
- Investigate and evaluate the effort for including apple spell checking (client) into OOo Aqua
- Investigate and evaluate the effort for making hunspell into a Apple spell server.
Material
Spellchecking (client) part:
- Solution 1: Cocoa-Carbon bridge for spellchecking - With this we can retrofit Mac OS X spellchecking in to OOo UI.
- Solution 2: The ideal approach would be to use Cocoa directly, i.e. NSView, and use the Apple provided UI, It is not easy, but should be feasible, with Apple Docs on Cocoa UI in Carbon.
Server part:
Documentation
Documentation on spellchecking is a bit on the light side. Here's some additional info:
- Install location: /Library/Services
- Bundle's name: AcmeSpell.service --> service_name = AcmeSpell
- Binary: AcmeSpell.service/Contents/MacOS/AcmeSpell --> binary_name = AcmeSpell
- Info: AcmeSpell.service/Contents/Info.plist
Infoplist stuff:
- CFBundleExecutable: AcmeSpell ---> binary_name
- CFBundleName: AcmeSpell ---> service_name
- NSPrincipalClass: AcmeSpellChecker ---> the name of your service implementation (function)
- NSServices / NSExecutable: AcmeSpell ---> binary_name??
- NSServices / NSPortName: AcmeSpell ---> service_name??
- NSServices / NSSpellChecker: Acme ---> The name that appears in the UI, e.g. English (Acme)