Package appModules :: Module itunes
[hide private]
[frames] | no frames]

Source Code for Module appModules.itunes

 1  import appModuleHandler 
 2  from comtypes import COMError 
 3  import controlTypes 
 4  import oleacc 
 5  import NVDAObjects.IAccessible 
 6   
7 -class AppModule(appModuleHandler.AppModule):
8
9 - def event_NVDAObject_init(self,obj):
10 if isinstance(obj,NVDAObjects.IAccessible.IAccessible): 11 obj.shouldAllowIAccessibleFocusEvent=True 12 if obj.windowClassName=="WebViewWindowClass": 13 if obj.IAccessibleRole==oleacc.ROLE_SYSTEM_WINDOW: 14 #Disable a safety mechonism in our IAccessible support as in iTunes it causes an infinit ancestry. 15 obj.parentUsesSuperOnWindowRootIAccessible=False 16 else: 17 obj.hasEncodedAccDescription=True
18
19 - def chooseNVDAObjectOverlayClasses(self, obj, clsList):
20 windowClassName=obj.windowClassName 21 role=obj.role 22 if windowClassName in ('iTunesSources','iTunesTrackList') and role in (controlTypes.ROLE_LISTITEM,controlTypes.ROLE_TREEVIEWITEM): 23 clsList.insert(0, ITunesItem)
24
25 -class ITunesItem(NVDAObjects.IAccessible.IAccessible):
26 """Retreaves position information encoded in the accDescription""" 27 28 hasEncodedAccDescription=True 29 value = None 30
31 - def _get_next(self):
32 next=super(ITunesItem,self).next 33 try: 34 parentChildCount=self.IAccessibleObject.accParent.accChildCount 35 except COMError: 36 parentChildCount=0 37 if not next and self.IAccessibleChildID>0 and self.IAccessibleChildID<parentChildCount: 38 next=NVDAObjects.IAccessible.IAccessible(windowHandle=self.windowHandle,IAccessibleObject=self.IAccessibleObject,IAccessibleChildID=self.IAccessibleChildID+1) 39 return next
40
41 - def _get_previous(self):
42 previous=super(ITunesItem,self).previous 43 if not previous and self.IAccessibleChildID>1: 44 previous=NVDAObjects.IAccessible.IAccessible(windowHandle=self.windowHandle,IAccessibleObject=self.IAccessibleObject,IAccessibleChildID=self.IAccessibleChildID-1) 45 return previous
46