tdf#124172: Use the MacOSXSpell library on iOS, too The code needed just a small amount of ifdefs to use UITextChecker on iOS instead of NSSpellChecker. Change-Id: I19edfffd3cc317a79beacc0b94668a6fd5ea3b32
diff --git a/Repository.mkb/Repository.mk index 6508d68..20ba9b0 100644 --- a/Repository.mk +++ b/Repository.mk 
@@ -484,6+484,8 @@  ) \ fps_aqua \ vclplug_osx \ ) \ $(if $(filter iOS MACOSX,$(OS)), \ MacOSXSpell \ ) \))
diff --git a/lingucomponent/Module_lingucomponent.mkb/lingucomponent/Module_lingucomponent.mk index 4f3d242..2bde5d5 100644 --- a/lingucomponent/Module_lingucomponent.mk +++ b/lingucomponent/Module_lingucomponent.mk 
@@ -14,7+14,7 @@  Library_guesslang \ Library_hyphen \ Library_lnth \ $(if $(filter MACOSX,$(OS)),Library_MacOSXSpell) \ $(if $(filter iOS MACOSX,$(OS)),Library_MacOSXSpell) \ Library_spell \ StaticLibrary_ulingu \ Library_numbertext \
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxxb/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx index 084b08c..fea3ba7 100644 --- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx +++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx 
@@ -22,12+22,14 @@ #include <cppuhelper/implbase.hxx>#ifdef MACOSX#include <premac.h>#ifdef MACOSX#include <Carbon/Carbon.h>#import <Cocoa/Cocoa.h>#include <postmac.h>#else#include <UIKit/UIKit.h>#endif#include <postmac.h>#include <com/sun/star/lang/XComponent.hpp>#include <com/sun/star/lang/XInitialization.hpp>#include <com/sun/star/lang/XServiceDisplayName.hpp>@@ -62,8+64,11 @@  Locale * aDLocs; OUString * aDNames; sal_Int32 numdict;#ifdef MACOSX int macTag; // unique tag for this doc#else UITextChecker * pChecker;#endif ::comphelper::OInterfaceContainerHelper2 aEvtListeners; Reference< XPropertyChangeListener > xPropHelper; linguistic::PropertyHelper_Spell * pPropHelper;@@ -79,6+84,7 @@  } sal_Int16 GetSpellFailure( const OUString &rWord, const Locale &rLocale ); Reference< XSpellAlternatives > GetProposals( const OUString &rWord, const Locale &rLocale );public: MacSpellChecker();
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.mmb/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm index 9eb7e65..d66e714 100644 --- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm +++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm 
@@ -54,10+54,14 @@  bDisposing = false; pPropHelper = nullptr; numdict = 0;#ifndef IOS NSApplicationLoad(); NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; macTag = [NSSpellChecker uniqueSpellDocumentTag]; [pool release];#else pChecker = [[UITextChecker alloc] init];#endif}@@ -109,7+113,11 @@  // TODO How on macOS? // invoke a second dictionary manager to get the shared dictionary list#ifdef MACOSX NSArray *aSpellCheckLanguages = [[NSSpellChecker sharedSpellChecker] availableLanguages];#else NSArray *aSpellCheckLanguages = [UITextChecker availableLanguages];#endif for (NSUInteger i = 0; i < [aSpellCheckLanguages count]; i++) {@@ -332,8+340,12 @@  aLang = [aLang stringByAppendingString:aTaggedCountry]; }#ifdef MACOSX NSInteger aCount; NSRange range = [[NSSpellChecker sharedSpellChecker] checkSpellingOfString:aNSStr startingAt:0 language:aLang wrap:false inSpellDocumentWithTag:macTag wordCount:&aCount];#else NSRange range = [pChecker rangeOfMisspelledWordInString:aNSStr range:NSMakeRange(0, [aNSStr length]) startingAt:0 wrap:NO language:aLang];#endif int rVal = 0; if(range.length>0) {@@ -394,10+406,8 @@  return (nFailure == -1);}namespace {Reference< XSpellAlternatives > GetProposals( const OUString &rWord, const Locale &rLocale )MacSpellChecker::GetProposals( const OUString &rWord, const Locale &rLocale ){ // Retrieves the return values for the 'spell' function call in case // of a misspelled word.@@ -432,8+442,12 @@  NSString* aTaggedCountry = [@"_" stringByAppendingString:aCountry]; aLang = [aLang stringByAppendingString:aTaggedCountry]; }#ifdef MACOSX [[NSSpellChecker sharedSpellChecker] setLanguage:aLang]; NSArray *guesses = [[NSSpellChecker sharedSpellChecker] guessesForWordRange:NSMakeRange(0, [aNSStr length]) inString:aNSStr language:aLang inSpellDocumentWithTag:0];#else NSArray *guesses = [pChecker guessesForWordRange:NSMakeRange(0, [aNSStr length]) inString:aNSStr language:aLang];#endif count = [guesses count]; if (count) {@@ -460,8+474,6 @@ }}Reference< XSpellAlternatives > SAL_CALL MacSpellChecker::spell( const OUString& rWord, const Locale& rLocale, const css::uno::Sequence<PropertyValue>& rProperties )
diff --git a/postprocess/Rdb_services.mkb/postprocess/Rdb_services.mk index 342f19b..6f6c8d3 100644 --- a/postprocess/Rdb_services.mk +++ b/postprocess/Rdb_services.mk 
@@ -128,11+128,13 @@  writerperfect/source/calc/wpftcalc \ $(if $(filter MACOSX,$(OS)), \ $(call gb_Helper_optional,AVMEDIA,avmedia/source/macavf/avmediaMacAVF) \ lingucomponent/source/spellcheck/macosxspell/MacOSXSpell \ fpicker/source/aqua/fps_aqua \ shell/source/backends/macbe/macbe1 \ vcl/vcl.macosx \ ) \ $(if $(filter iOS MACOSX,$(OS)), \ lingucomponent/source/spellcheck/macosxspell/MacOSXSpell \ ) \ $(if $(filter WNT,$(OS)), \ avmedia/source/win/avmediawin \ dtrans/source/generic/dtrans \
diff --git a/solenv/bin/native-code.pyb/solenv/bin/native-code.py index 0a47b8c..1848e68 100755 --- a/solenv/bin/native-code.py +++ b/solenv/bin/native-code.py 
@@ -62,7+62,8 @@  ("libpdffilterlo.a", "pdffilter_component_getFactory"), ("libsvgiolo.a", "svgio_component_getFactory"), ("libsvtlo.a", "svt_component_getFactory"), ("libctllo.a", "ctl_component_getFactory") ("libctllo.a", "ctl_component_getFactory"), ("libMacOSXSpelllo.a", "MacOSXSpell_component_getFactory", "#ifdef IOS"), ]core_constructor_list = [
close