Changeset 2022
- Timestamp:
- 05/06/08 18:32:38 (7 months ago)
- Location:
- trunk/source
- Files:
-
- 2 modified
-
IAccessibleHandler.py (modified) (2 diffs)
-
NVDAObjects/IAccessible/__init__.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/IAccessibleHandler.py
r2020 r2022 149 149 import itertools 150 150 import time 151 import struct 151 152 from ctypes import * 152 153 from ctypes.wintypes import * … … 935 936 936 937 937 def getIAccIdentityString(pacc,childID): 938 p,s=pacc.QueryInterface(IAccIdentity).getIdentityString(childID) 939 p=cast(p,POINTER(c_char*s)) 940 return p.contents.raw 938 def getIAccIdentity(pacc,childID): 939 stringPtr,stringSize=pacc.QueryInterface(IAccIdentity).getIdentityString(childID) 940 stringPtr=cast(stringPtr,POINTER(c_char*stringSize)) 941 s=p.contents.raw 942 fields=struct.unpack('IIII',s) 943 d={} 944 d['childID']=fields[3] 945 if fields[0]&2: 946 d['menuHandle']=fields[2] 947 else: 948 d['objectID']=fields[2] 949 d['windowHandle']=fields[1] 950 return d 941 951 942 952 def findGroupboxObject(obj): -
trunk/source/NVDAObjects/IAccessible/__init__.py
r2017 r2022 7 7 import weakref 8 8 import re 9 import struct 9 10 import os 10 11 import tones … … 177 178 if not windowHandle: 178 179 windowHandle=IAccessibleHandler.windowFromAccessibleObject(IAccessibleObject) 179 if not windowHandle: 180 if not windowHandle and event_windowHandle: 181 windowHandle=event_windowHandle 182 elif not windowHandle: 180 183 return None #We really do need a window handle 181 184 windowClassName=winUser.getClassName(windowHandle) … … 224 227 self.IAccessibleObject=IAccessibleObject 225 228 self.IAccessibleChildID=IAccessibleChildID 229 Identity=self.IAccessibleIdentity 230 if event_windowHandle is None and Identity and 'windowHandle' in Identity: 231 event_windowHandle=Identity['windowHandle'] 232 if event_objectID is None and Identity and 'objectID' in Identity: 233 event_objectID=Identity['objectID'] 234 if event_childID is None and Identity and 'childID' in Identity: 235 event_childID=Identity['childID'] 236 if event_childID is None: 237 event_childID=IAccessibleChildID 226 238 self.event_windowHandle=event_windowHandle 227 239 self.event_objectID=event_objectID … … 291 303 if not super(IAccessible,self)._isEqual(other): 292 304 return False 293 selfIden=self.IAccessibleIdentity String294 otherIden=other.IAccessibleIdentity String305 selfIden=self.IAccessibleIdentity 306 otherIden=other.IAccessibleIdentity 295 307 if selfIden!=otherIden: 296 308 return False … … 331 343 self.IAccessibleObject.accDoDefaultAction() 332 344 333 def _get_IAccessibleIdentity String(self):334 if not hasattr(self,'_IAccessibleIdentity String'):345 def _get_IAccessibleIdentity(self): 346 if not hasattr(self,'_IAccessibleIdentity'): 335 347 try: 336 self._IAccessibleIdentity String=IAccessibleHandler.getIAccIdentityString(self.IAccessibleObject,self.IAccessibleChildID)348 self._IAccessibleIdentity=IAccessibleHandler.getIAccIdentity(self.IAccessibleObject,self.IAccessibleChildID) 337 349 except: 338 self._IAccessibleIdentity String=None339 return self._IAccessibleIdentity String350 self._IAccessibleIdentity=None 351 return self._IAccessibleIdentity 340 352 341 353 def _get_IAccessibleRole(self):

NVDA is supported by