Provide a locationHelper module for code related to locations, rectangles and points (PR #7537)
Closes #7423
Previously there were many different ways in which a location is presented in NVDA:
- (left, top, width, height)
- (left, top, right, bottom)
- textInfos.Rect, which has left, top, right and bottom properties
- ctypes.wintypes.Rect, which is a struct and also has left, top, right and bottom properties
- (x,y)
- textInfos.Point, which has x and y properties
- ctypes.wintypes.Point, which is a structure and also has x and y properties
On the fly conversion between the different types is not possible. Also, conversion from screen coordinates to client coordinates, physical to logical coordinates, etc. is somewhat cumbersome.