/// <summary>Sets the parent Screen.</summary> /// <param name="parent">The parent.</param> /// <returns><c>true</c> if the parent was changed successfully; otherwise, <c>false</c>.</returns> public bool SetParent(BrailleIOScreen parent) { bool success = false; if (parent != null) { if (parent.GetViewRange(Name) == null || !parent.GetViewRange(Name).Equals(this)) { parent.AddViewRange(this.Name, this); } Parent = parent; success = true; firePropertyChangedEvent("Parent"); } return(success); }
/// <summary> /// Gets the view at a position. /// </summary> /// <param name="x">The horizontal position on the device.</param> /// <param name="y">The vertical position on the device.</param> /// <returns>The topmost view range that containing the point or <c>null</c></returns> public BrailleIOViewRange GetViewAtPosition(int x, int y) { if (x >= 0 || y >= 0) { var views = getVisibleViews(); if (views != null && views.Count > 0) { var keys = views.Keys; if (keys != null && keys.Count > 0) { var k = keys.ToArray(); for (int i = keys.Count - 1; i >= 0; i--) { var view = views[k[i]]; if (view != null) { if (view is BrailleIOViewRange) { // TODO: check if point is inside if (((BrailleIOViewRange)view).ContainsPoint(x, y)) { return((BrailleIOViewRange)view); } } else if (view is BrailleIOScreen) { BrailleIOScreen s = (BrailleIOScreen)view; // get all visible view ranges of the screen var vv = s.GetVisibleViewRangeAtPosition(x, y); if (vv != null) { return(vv); } } } } } } } return(null); }