def Advance(self):
"""Advance to the next error.
This method advances the SpellChecker to the next error, if
any. It then displays the error and some surrounding context,
and well as listing the suggested replacements.
"""
# Disable interaction if no checker
if self._checker is None:
self.EnableButtons(False)
return False
# Advance to next error, disable if not available
try:
self._checker.next()
except StopIteration:
self.EnableButtons(False)
self.error_text.SetValue("")
self.replace_list.Clear()
self.replace_text.SetValue("")
if self.IsModal(): # test needed for SetSpellChecker call
# auto-exit when checking complete
self.EndModal(wx.ID_OK)
return False
self.EnableButtons()
# Display error context with erroneous word in red.
# Restoring default style was misbehaving under win32, so
# I am forcing the rest of the text to be black.
self.error_text.SetValue("")
self.error_text.SetDefaultStyle(wx.TextAttr(wx.BLACK))
lContext = self._checker.leading_context(self._numContext)
self.error_text.AppendText(lContext)
self.error_text.SetDefaultStyle(wx.TextAttr(wx.RED))
self.error_text.AppendText(self._checker.word)
self.error_text.SetDefaultStyle(wx.TextAttr(wx.BLACK))
tContext = self._checker.trailing_context(self._numContext)
self.error_text.AppendText(tContext)
# Display suggestions in the replacements list
suggs = self._checker.suggest()
self.replace_list.Set(suggs)
self.replace_text.SetValue(suggs and suggs[0] or '')
return True
评论列表
文章目录