protected void SetMouseDownLocation(Point? NewMouseDownLocation) { MouseDownLocation = NewMouseDownLocation; StatusElement NewMouseDownElement = null; if(MouseDownLocation.HasValue) { HitTest(MouseDownLocation.Value, out NewMouseDownElement); } if(NewMouseDownElement != MouseDownElement) { if(MouseDownElement != null) { MouseDownElement.bMouseDown = false; Invalidate(MouseDownElement.Bounds); } MouseDownElement = NewMouseDownElement; if(MouseDownElement != null) { MouseDownElement.bMouseDown = true; Invalidate(MouseDownElement.Bounds); } } Capture = (MouseDownElement != null || MouseOverElement != null); }
protected bool HitTest(Point Location, out StatusElement OutElement) { OutElement = null; foreach(StatusLine Line in Lines) { if(Line.HitTest(Location, out OutElement)) { return true; } } return false; }
public bool HitTest(Point Location, out StatusElement OutElement) { OutElement = null; if(Bounds.Contains(Location)) { foreach(StatusElement Element in Elements) { if(Element.Bounds.Contains(Location)) { OutElement = Element; return true; } } } return false; }
public void Set(IEnumerable<StatusLine> NewLines) { InvalidateElements(); Lines.Clear(); Lines.AddRange(NewLines); LayoutElements(); InvalidateElements(); MouseOverElement = null; MouseDownElement = null; SetMouseOverLocation(MouseOverLocation); SetMouseDownLocation(MouseDownLocation); }
public void Add(StatusElement Element) { Elements.Add(Element); bModified = true; }