Ajout du GUI
This commit is contained in:
64
kivy/core/spelling/spelling_osxappkit.py
Normal file
64
kivy/core/spelling/spelling_osxappkit.py
Normal file
@@ -0,0 +1,64 @@
|
||||
'''
|
||||
AppKit Spelling: Implements spelling backend based on OSX's spellchecking
|
||||
features provided by the ApplicationKit.
|
||||
|
||||
NOTE:
|
||||
Requires pyobjc and setuptools to be installed!
|
||||
`sudo easy_install pyobjc setuptools`
|
||||
|
||||
Developers should read:
|
||||
http://developer.apple.com/mac/library/documentation/
|
||||
Cocoa/Conceptual/SpellCheck/SpellCheck.html
|
||||
http://developer.apple.com/cocoa/pyobjc.html
|
||||
'''
|
||||
|
||||
|
||||
from AppKit import NSSpellChecker, NSMakeRange
|
||||
|
||||
from kivy.core.spelling import SpellingBase, NoSuchLangError
|
||||
|
||||
|
||||
class SpellingOSXAppKit(SpellingBase):
|
||||
'''
|
||||
Spelling backend based on OSX's spelling features provided by AppKit.
|
||||
'''
|
||||
|
||||
def __init__(self, language=None):
|
||||
self._language = NSSpellChecker.alloc().init()
|
||||
super(SpellingOSXAppKit, self).__init__(language)
|
||||
|
||||
def select_language(self, language):
|
||||
success = self._language.setLanguage_(language)
|
||||
if not success:
|
||||
err = 'AppKit Backend: No language "%s" ' % (language, )
|
||||
raise NoSuchLangError(err)
|
||||
|
||||
def list_languages(self):
|
||||
return list(self._language.availableLanguages())
|
||||
|
||||
def check(self, word):
|
||||
# TODO Implement this!
|
||||
# NSSpellChecker provides several functions that look like what we
|
||||
# need, but they're a) slooow and b) return a strange result.
|
||||
# Might be a snow leopard bug. Have to test further.
|
||||
# See: http://paste.pocoo.org/show/217968/
|
||||
if not word:
|
||||
return None
|
||||
err = 'check() not currently supported by the OSX AppKit backend'
|
||||
raise NotImplementedError(err)
|
||||
|
||||
def suggest(self, fragment):
|
||||
l = self._language
|
||||
# XXX Both ways below work on OSX 10.6. It has not been tested on any
|
||||
# other version, but it should work.
|
||||
try:
|
||||
# This is deprecated as of OSX 10.6, hence the try-except
|
||||
return list(l.guessesForWord_(fragment))
|
||||
except AttributeError:
|
||||
# From 10.6 onwards you're supposed to do it like this:
|
||||
checkrange = NSMakeRange(0, len(fragment))
|
||||
g = l.\
|
||||
guessesForWordRange_inString_language_inSpellDocumentWithTag_(
|
||||
checkrange, fragment, l.language(), 0)
|
||||
# Right, this was much easier, Apple! :-)
|
||||
return list(g)
|
||||
Reference in New Issue
Block a user