34 lines
762 B
Python
34 lines
762 B
Python
from __future__ import absolute_import
|
|
import win32gui
|
|
from libloader.com import load_com
|
|
from .base import Output, OutputError
|
|
import pywintypes
|
|
|
|
class WindowEyes (Output):
|
|
"""Speech output supporting the WindowEyes screen reader"""
|
|
|
|
name = 'Window-Eyes'
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(WindowEyes, self).__init__(*args, **kwargs)
|
|
try:
|
|
self.object = load_com("gwspeak.speak")
|
|
except pywintypes.com_error:
|
|
raise OutputError
|
|
|
|
def speak(self, text, interrupt=0):
|
|
if interrupt:
|
|
self.silence()
|
|
self.object.SpeakString(text)
|
|
|
|
def silence (self):
|
|
self.object.Silence()
|
|
|
|
def is_active(self):
|
|
try:
|
|
return win32gui.FindWindow("GWMExternalControl", "External Control") != 0
|
|
except:
|
|
return False
|
|
|
|
output_class = WindowEyes
|