calc.py
1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import appModuleHandler
import NVDAObjects.IAccessible
import speech
class AppModule(appModuleHandler.AppModule):
def chooseNVDAObjectOverlayClasses(self, obj, clsList):
windowClassName=obj.windowClassName
windowControlID=obj.windowControlID
if ((windowClassName=="Edit" and windowControlID==403)
or (windowClassName=="Static" and windowControlID==150)
):
clsList.insert(0, Display)
class Display(NVDAObjects.IAccessible.IAccessible):
shouldAllowIAccessibleFocusEvent=True
calcCommandChars=['!','=','@','#']
calcCommandGestures=(
"kb:backspace","kb:escape","kb:enter","kb:numpadEnter",
"kb:f2","kb:f3","kb:f4","kb:f5","kb:f6","kb:f7","kb:f8","kb:f9",
"kb:l","kb:n","kb:o","kb:p","kb:r","kb:s","kb:t",
)
def _get_name(self):
name=super(Display,self).name
if not name:
name=_("Display")
return name
def event_typedCharacter(self,ch):
super(Display,self).event_typedCharacter(ch)
if ch in self.calcCommandChars:
speech.speakObjectProperties(self,value=True)
def script_executeAndRead(self,gesture):
gesture.send()
speech.speakObjectProperties(self,value=True)
def initOverlayClass(self):
for g in Display.calcCommandGestures:
self.bindGesture(g,"executeAndRead")