\r
#Window messages\r
LVM_FIRST=0x1000\r
+LVM_GETITEMSTATE=LVM_FIRST+44\r
LVM_GETFOCUSEDGROUP=LVM_FIRST+93\r
LVM_GETGROUPINFOBYINDEX=LVM_FIRST+153\r
LVM_GETITEMCOUNT=LVM_FIRST+4\r
#Item states\r
LVIS_FOCUSED=0x01\r
LVIS_SELECTED=0x02\r
-LVIS_IMAGESTATEMASK=0xF000\r
+LVIS_STATEIMAGEMASK=0xF000\r
\r
LVS_OWNERDRAWFIXED=0x0400\r
\r
import _default\r
import speech\r
from keyUtils import key, sendKey\r
+from NVDAObjects.IAccessible import sysListView32\r
\r
#Labels for the header fields of an email, by control ID\r
envelopeNames={\r
obj.useITextDocumentSupport=True\r
obj.editValueUnit=textInfos.UNIT_STORY\r
\r
+ def chooseNVDAObjectOverlayClasses(self,obj,clsList):\r
+ if obj.windowControlID in (129,130) and obj.role==controlTypes.ROLE_LISTITEM:\r
+ clsList.insert(0,MessageRuleListItem)\r
+\r
def event_gainFocus(self,obj,nextHandler):\r
nextHandler()\r
#Force focus to move to something sane when landing on an outlook express message window\r
if obj==api.getFocusObject() and controlTypes.STATE_FOCUSED in obj.states:\r
return sendKey(key("SHIFT+TAB"))\r
\r
+class MessageRuleListItem(sysListView32.ListItem):\r
+ """Used for the checkbox list items used to select message rule types in in message filters"""\r
+\r
+ def _get_role(self):\r
+ return controlTypes.ROLE_CHECKBOX\r
+\r
+ def _get_states(self):\r
+ states=super(MessageRuleListItem,self).states\r
+ if (winUser.sendMessage(self.windowHandle,sysListView32.LVM_GETITEMSTATE,self.IAccessibleChildID-1,sysListView32.LVIS_STATEIMAGEMASK)>>12)==8:\r
+ states.add(controlTypes.STATE_CHECKED)\r
+ return states\r
def chooseNVDAObjectOverlayClasses(self, obj, clsList):\r
if obj.windowClassName == "Internet Explorer_Server" and obj.role == controlTypes.ROLE_DOCUMENT and obj.HTMLNode and obj.HTMLNode.document.url=="about:blank": \r
clsList.insert(0, AboutBlankDocument)\r
+ elif obj.windowControlID in (129,130) and obj.role==controlTypes.ROLE_LISTITEM:\r
+ import msimn \r
+ clsList.insert(0,msimn.MessageRuleListItem)\r
\r
def event_gainFocus(self,obj,nextHandler):\r
nextHandler()\r