def handleInputCandidateListUpdate(candidatesString, selectionIndex,
                                   inputMethod):
    candidateStrings = candidatesString.split('\n')
    import speech
    from NVDAObjects.inputComposition import InputComposition, CandidateList, CandidateItem
    focus = api.getFocusObject()
    if not (0 <= selectionIndex < len(candidateStrings)):
        if isinstance(focus, CandidateItem):
            oldSpeechMode = speech.speechMode
            speech.speechMode = speech.speechMode_off
            eventHandler.executeEvent("gainFocus", focus.parent)
            speech.speechMode = oldSpeechMode
        return
    oldCandidateItemsText = None
    if isinstance(focus, CandidateItem):
        oldCandidateItemsText = focus.visibleCandidateItemsText
        parent = focus.parent
        wasCandidate = True
    else:
        parent = focus
        wasCandidate = False
    item = CandidateItem(parent=parent,
                         candidateStrings=candidateStrings,
                         candidateIndex=selectionIndex,
                         inputMethod=inputMethod)
    if wasCandidate and focus.windowHandle == item.windowHandle and focus.candidateIndex == item.candidateIndex and focus.name == item.name:
        return
    if config.conf["inputComposition"][
            "autoReportAllCandidates"] and item.visibleCandidateItemsText != oldCandidateItemsText:
        import ui
        ui.message(item.visibleCandidateItemsText)
    eventHandler.executeEvent("gainFocus", item)
Exemplo n.º 2
0
def handleInputCandidateListUpdate(candidatesString, selectionIndex,
                                   inputMethod):
    log.debug(u"(%s) (%s) (%s)" % (unicode(candidatesString).replace(
        '\n', '|'), str(selectionIndex), unicode(inputMethod)))
    candidateStrings = candidatesString.split('\n')
    import speech
    from NVDAObjects.inputComposition import InputComposition, CandidateList, CandidateItem
    focus = api.getFocusObject()
    #nvdajp begin
    if config.conf["keyboard"]["nvdajpEnableKeyEvents"]:
        from NVDAObjects import inputComposition
        if inputComposition.lastKeyGesture:
            log.debug("lastKeyCode %x" %
                      inputComposition.lastKeyGesture.vkCode)
        if not inputComposition.needDiscriminantReading(
                inputComposition.lastKeyGesture):
            if isinstance(focus, CandidateItem):
                oldSpeechMode = speech.speechMode
                speech.speechMode = speech.speechMode_off
                eventHandler.executeEvent("gainFocus", focus.parent)
                speech.speechMode = oldSpeechMode
            return
    #nvdajp end
    if not (0 <= selectionIndex < len(candidateStrings)):
        if isinstance(focus, CandidateItem):
            oldSpeechMode = speech.speechMode
            speech.speechMode = speech.speechMode_off
            eventHandler.executeEvent("gainFocus", focus.parent)
            speech.speechMode = oldSpeechMode
        return
    oldCandidateItemsText = None
    if isinstance(focus, CandidateItem):
        oldCandidateItemsText = focus.visibleCandidateItemsText
        parent = focus.parent
        wasCandidate = True
    else:
        parent = focus
        wasCandidate = False
    item = CandidateItem(parent=parent,
                         candidateStrings=candidateStrings,
                         candidateIndex=selectionIndex,
                         inputMethod=inputMethod)
    if wasCandidate and focus.windowHandle == item.windowHandle and focus.candidateIndex == item.candidateIndex and focus.name == item.name:
        return
    if config.conf["inputComposition"][
            "autoReportAllCandidates"] and item.visibleCandidateItemsText != oldCandidateItemsText:
        import ui
        ui.message(item.visibleCandidateItemsText)
    eventHandler.executeEvent("gainFocus", item)