Difference between revisions of "Mac OS X Porting - Native Spellchecking"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(Material)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
===Contributors===
  
 +
* Mox Soini: [[User:Mox|Mox]]
  
[http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSSpellServer_Class/Reference/Reference.html NSSpellServer -reference]
+
=== 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:''' [http://developer.apple.com/documentation/Cocoa/Conceptual/CarbonCocoaDoc/Articles/CocoaInCarbon.html 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 [http://developer.apple.com/documentation/Cocoa/Conceptual/CarbonCocoaDoc/Articles/CocoaUIInCarbon.html Apple Docs on Cocoa UI in Carbon].
 +
 
 +
 
 +
Server part:
 +
* [http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSSpellServer_Class/Reference/Reference.html NSSpellServer -reference]
 +
* [http://developer.apple.com/documentation/Cocoa/Conceptual/SpellCheck/Tasks/CreatingSpellServer.html SpellServer Guide]
 +
 
 +
=== 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)
 +
 
 +
 
 +
[[Category:Porting]]
 +
[[Category:Aqua]]
 +
[[Category:MacOSX]]

Latest revision as of 14:58, 11 March 2007

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:


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)
Personal tools