Mono.UIAutomation.Winforms.ListBoxProvider.GetItemPropertyValue C# (CSharp) Method

GetItemPropertyValue() public method

public GetItemPropertyValue ( ListItemProvider item, int propertyId ) : object
item ListItemProvider
propertyId int
return object
		public override object GetItemPropertyValue (ListItemProvider item,
		                                             int propertyId)
		{
			if (propertyId == AutomationElementIdentifiers.NameProperty.Id)
				return listboxControl.GetItemText (item.ObjectItem);
			
			if (ContainsItem (item) == false)
				return null;

			if (propertyId == AutomationElementIdentifiers.HasKeyboardFocusProperty.Id)
				return listboxControl.Focused && item.Index == listboxControl.FocusedItem;
			else if (propertyId == AutomationElementIdentifiers.BoundingRectangleProperty.Id) {
				System.Drawing.Rectangle itemRec = System.Drawing.Rectangle.Empty;
				System.Drawing.Rectangle rectangle = listboxControl.Bounds;

				itemRec = listboxControl.GetItemRectangle (item.Index);
				itemRec.X += rectangle.X;
				itemRec.Y += rectangle.Y;
				
				if (listboxControl.FindForm () == listboxControl.Parent)
					itemRec = listboxControl.TopLevelControl.RectangleToScreen (itemRec);
				else
					itemRec = listboxControl.Parent.RectangleToScreen (itemRec);
	
				return Helper.RectangleToRect (itemRec);
			} else if (propertyId == AutomationElementIdentifiers.IsOffscreenProperty.Id)
				return Helper.IsListItemOffScreen ((Rect) item.GetPropertyValue (AutomationElementIdentifiers.BoundingRectangleProperty.Id),
				                                   listboxControl,
				                                   false,
				                                   System.Drawing.Rectangle.Empty,
				                                   ScrollBehaviorObserver);
			else
				return null;
		}