public override void HandleMouseEvents(CustomEvents.MouseEvent e) { if (!Scrollbar.CheckBoundingBox(e)) { base.HandleMouseEvents(e); if (CheckBoundingBox(e)) { switch (e.Event) { case CustomEvents.MouseEvent.EventType.MouseWheel: TopListRow -= e.Delta * System.Windows.Forms.SystemInformation.MouseWheelScrollLines / 120; if (TopListRow < 0) TopListRow = 0; if (TopListRow > RowList.Count-1) TopListRow = RowList.Count - 1; UpdateScrollbarValue(); break; } } } //if (!Nodes.Any(a => a.CheckBoundingBox(e))) // base.HandleMouseEvents(e); Scrollbar.HandleMouseEvents(e); }
private void UpdateProgress(CustomEvents.MouseEvent e) { int MousePosition = Orientation == SliderOrientation.Horizontal ? ((CustomEvents.MouseEvent)e).X : ((CustomEvents.MouseEvent)e).Y; if (Orientation == SliderOrientation.Horizontal) { int tmp = MousePosition - RectScreenSpace.X - (int)SL_SPACE; LastMousePoint1 = LastMousePoint2; LastMousePoint2 = tmp; if (MousePosition >= RectScreenSpace.X + 1 + SL_SPACE && MousePosition <= RectScreenSpace.X + RectScreenSpace.W - 1 - SL_SPACE) { if (LastMousePoint1 != tmp) { Value = (float)tmp / (RectScreenSpace.W - 2 * SL_SPACE) /** 100*/; } } else { if (MousePosition < RectScreenSpace.X + 1 + SL_SPACE) { Value = 0f; } if (MousePosition > RectScreenSpace.X + RectScreenSpace.W - 1 - SL_SPACE) { Value = 1f; } } } if (Orientation == SliderOrientation.Vertical) { int tmp = MousePosition - RectScreenSpace.Y - (int)SL_SPACE; LastMousePoint1 = LastMousePoint2; LastMousePoint2 = tmp; if (MousePosition >= RectScreenSpace.Y + 1 + SL_SPACE && MousePosition <= RectScreenSpace.Y + RectScreenSpace.H - 1 - SL_SPACE) { if (LastMousePoint1 != tmp) { Value = (float)tmp / (RectScreenSpace.H - 2 * SL_SPACE) /** 100*/; } } else { if (MousePosition < RectScreenSpace.Y + 1 + SL_SPACE) { Value = 0f; } if (MousePosition > RectScreenSpace.Y + RectScreenSpace.H - 1 - SL_SPACE) { Value = 1f; } } } Change?.Invoke(this, e); }
public override void HandleMouseEvents(CustomEvents.MouseEvent e) { if (!Nodes.Any(a => a.CheckBoundingBox(e))) { base.HandleMouseEvents(e); } Nodes.ForEach(fe => fe.HandleMouseEvents(e)); }
public override void HandleMouseEvents(CustomEvents.MouseEvent e) { base.HandleMouseEvents(e); switch (e.Event) { case CustomEvents.MouseEvent.EventType.MouseMove: if (IsMouseDown) { UpdateProgress(e); } break; case CustomEvents.MouseEvent.EventType.MouseUp: IsMouseDown = false; break; } }
public bool CheckBoundingBox(CustomEvents.MouseEvent e) { return(e.X >= RectScreenSpace.X && e.X < RectScreenSpace.X + RectScreenSpace.W && e.Y >= RectScreenSpace.Y && e.Y < RectScreenSpace.Y + RectScreenSpace.H); }
public virtual void HandleMouseEvents(CustomEvents.MouseEvent e) { if (CheckBoundingBox(e)) { switch (e.Event) { case CustomEvents.MouseEvent.EventType.MouseMove: if (!IsMouseOver) { IsMouseOver = true; MouseEnter?.Invoke(this, e); } break; case CustomEvents.MouseEvent.EventType.MouseDown: ClickStarted = true; MouseDown?.Invoke(this, e); long ClickTime = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; if (ClickTime - LastClickTime < 500) { LastClickTime = 0; DoubleClick?.Invoke(this, e); } else { LastClickTime = ClickTime; } break; case CustomEvents.MouseEvent.EventType.MouseUp: if (ClickStarted) { ClickStarted = false; Click?.Invoke(this, e); } MouseUp?.Invoke(this, e); break; } } else { switch (e.Event) { case CustomEvents.MouseEvent.EventType.MouseMove: if (IsMouseOver) { IsMouseOver = false; MouseLeave?.Invoke(this, e); } break; case CustomEvents.MouseEvent.EventType.MouseDown: ClickStarted = false; break; case CustomEvents.MouseEvent.EventType.MouseUp: ClickStarted = false; break; } } }