Пример #1
0
		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);
		}
Пример #2
0
		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;
		}
Пример #3
0
		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;
		}
Пример #4
0
		public void Set(IEnumerable<StatusLine> NewLines)
		{
			InvalidateElements();
			Lines.Clear();
			Lines.AddRange(NewLines);
			LayoutElements();
			InvalidateElements();

			MouseOverElement = null;
			MouseDownElement = null;
			SetMouseOverLocation(MouseOverLocation);
			SetMouseDownLocation(MouseDownLocation);
		}
Пример #5
0
 public void Add(StatusElement Element)
 {
     Elements.Add(Element);
     bModified = true;
 }