12
import appModuleHandler
13
from keyUtils import key, sendKey
14
from keyboardHandler import KeyboardInputGesture
15
from NVDAObjects.IAccessible import sysListView32
15
18
#Labels for the header fields of an email, by control ID
44
47
obj.useITextDocumentSupport=True
45
48
obj.editValueUnit=textInfos.UNIT_STORY
50
def chooseNVDAObjectOverlayClasses(self,obj,clsList):
51
if obj.windowClassName=="SysListView32" and obj.windowControlID in (128,129,130) and obj.role==controlTypes.ROLE_LISTITEM:
52
clsList.insert(0,MessageRuleListItem)
53
elif "SysListView32" in obj.windowClassName and obj.role==controlTypes.ROLE_LISTITEM and obj.parent.name=="Outlook Express Message List":
54
clsList.insert(0,MessageListItem)
47
56
def event_gainFocus(self,obj,nextHandler):
49
58
#Force focus to move to something sane when landing on an outlook express message window
50
59
if obj.windowClassName=="ATH_Note" and obj.event_objectID==winUser.OBJID_CLIENT and obj.IAccessibleChildID==0:
51
60
api.processPendingEvents()
52
61
if obj==api.getFocusObject() and controlTypes.STATE_FOCUSED in obj.states:
53
return sendKey(key("SHIFT+TAB"))
62
return KeyboardInputGesture.fromName("shift+tab").send()
64
class MessageRuleListItem(sysListView32.ListItem):
65
"""Used for the checkbox list items used to select message rule types in in message filters"""
67
role=controlTypes.ROLE_CHECKBOX
69
def _get_states(self):
70
states=super(MessageRuleListItem,self).states
71
if (watchdog.cancellableSendMessage(self.windowHandle,sysListView32.LVM_GETITEMSTATE,self.IAccessibleChildID-1,sysListView32.LVIS_STATEIMAGEMASK)>>12)==8:
72
states.add(controlTypes.STATE_CHECKED)
75
class MessageListItem(sysListView32.ListItem):
77
def _get_isUnread(self):
78
info=displayModel.DisplayModelTextInfo(self,textInfos.POSITION_FIRST)
79
info.expand(textInfos.UNIT_CHARACTER)
80
fields=info.getTextWithFields()
82
isUnread=fields[1].field['bold']
89
imageState=watchdog.cancellableSendMessage(self.windowHandle,sysListView32.LVM_GETITEMSTATE,self.IAccessibleChildID-1,sysListView32.LVIS_STATEIMAGEMASK)>>12
91
nameList.append(controlTypes.speechStateLabels[controlTypes.STATE_COLLAPSED])
93
nameList.append(controlTypes.speechStateLabels[controlTypes.STATE_EXPANDED])
95
nameList.append(_("unread"))
96
name=super(MessageListItem,self).name
99
return " ".join(nameList)