mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-08-25 17:39:23 +00:00
35 lines
923 B
Python
35 lines
923 B
Python
from __future__ import absolute_import
|
|
import win32gui
|
|
from libloader.com import load_com
|
|
import pywintypes
|
|
|
|
from .base import Output, OutputError
|
|
|
|
class Jaws (Output):
|
|
"""Output supporting the Jaws for Windows screen reader."""
|
|
|
|
name = 'jaws'
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super (Jaws, self).__init__(*args, **kwargs)
|
|
try:
|
|
self.object = load_com("FreedomSci.JawsApi", "jfwapi")
|
|
except pywintypes.com_error:
|
|
raise OutputError
|
|
|
|
def braille(self, text, **options):
|
|
# HACK: replace " with ', Jaws doesn't seem to understand escaping them with \
|
|
text = text.replace('"', "'")
|
|
self.object.RunFunction("BrailleString(\"%s\")" % text)
|
|
|
|
def speak(self, text, interrupt=False):
|
|
self.object.SayString(' %s' % text, interrupt)
|
|
|
|
def is_active(self):
|
|
try:
|
|
return self.object.SayString('',0) == True or win32gui.FindWindow("JFWUI2", "JAWS") != 0
|
|
except:
|
|
return False
|
|
|
|
output_class = Jaws
|