AtspiUiaSource.Element.Element C# (CSharp) Method

Element() public method

public Element ( Accessible accessible ) : System
accessible Atspi.Accessible
return System
		public Element (Accessible accessible)
		{
			extraChildren = new List<Element> ();
			if (!elements.ContainsKey (accessible))
				elements [accessible] = this;
			patterns = new List<ISourceEventHandler> ();
			this.accessible = accessible;
			runtimeId = -1;

			if (accessible.Role == Role.Dialog &&
				accessible.Parent.Role == Role.Application &&
				accessible.QueryComponent () != null) {
				// Try to figure out if the dialog is painted
				// on top of another window
				BoundingBox curExtents = accessible.QueryComponent ().GetExtents (CoordType.Screen);
				int count = accessible.Parent.Children.Count;
				for (int i = 0; i < count; i++) {
					Accessible child = accessible.Parent.Children [i];
					if (child == null ||
						child.Role != Role.Frame)
						continue;
					Component childComponent = child.QueryComponent ();
					if (childComponent == null)
						continue;
					BoundingBox windowExtents = childComponent.GetExtents (CoordType.Screen);
					if (windowExtents.X <= curExtents.X &&
						windowExtents.Y <= curExtents.Y &&
						(windowExtents.X + windowExtents.Width) > curExtents.X &&
						(windowExtents.Y + windowExtents.Height) > curExtents.Y) {
						parent = GetElement (child);
						parent.extraChildren.Add (this);
						break;
					}
				}
			}
			if (parent == null)
				parent = GetElement (accessible.Parent);
			AddEvents (true);
		}