public void UpdateMouse() { if (Scene.View != null) { //Mouse over handling var mp = Scene.View.LocalMousePosition; var position = new Vector2(mp.X, mp.Y); Entity mouseover = null; if (mouseOver) { mouseover = (Entity)ClickablesProbe.Pick(); } if (mouseover != MouseOverEntity) { if (MouseOverEntity != null) { MouseOverEntity.ProcessMessage(MessageType.MouseLeave, new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0)); } MouseOverEntity = mouseover; if (MouseOverEntity != null) { MouseOverEntity.ProcessMessage(MessageType.MouseEnter, new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0)); } } prevMousePosition = position; } }
protected virtual void OnEntityRemoved(Entity e) { var mp = Scene.View.LocalMousePosition; if (mouseDownEntity == e) { mouseDownEntity.ProcessMessage(MessageType.MouseUp, new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0)); mouseDownEntity = null; } if (MouseOverEntity == e) { MouseOverEntity.ProcessMessage(MessageType.MouseLeave, new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0)); MouseOverEntity = null; } if (IsClickable(e)) { Clickables.Remove(e); } e.ClickableChanged -= new EventHandler(UpdateEntityBounding); e.IsVisibleChanged -= new EventHandler(UpdateEntityBounding); e.PickingLocalBoundingChanged -= new EventHandler(UpdateEntityBounding); e.Transformed -= new EventHandler(UpdateEntityBounding); if (e.Updateable) { updateables.Remove(e); } }
protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs e) { base.OnMouseUp(e); if (MouseOverEntity != null) { MouseOverEntity.ProcessMessage(MessageType.MouseUp, e); } }