public override Capture ForceEndCapture(InputState input, CaptureData data) { if (pCapturing != null) { pCapturing.EndCapture(InputEvent.Mouse(input)); pCapturing = null; } return(Capture.End); }
public override Capture ForceEndCapture(InputState input, CaptureData data) { if (pCapturing != null) { // if we don't do this, and EndCapture throws, we end up in a loop of exceptions! var temp = pCapturing; pCapturing = null; temp.EndCapture(InputEvent.Mouse(input.ToOrthoLayerInput())); } return(Capture.End); }
public override CaptureRequest WantsCapture(InputState input) { UIRayHit uiHit; if (input.bLeftMousePressed) { if (scene.Find2DCockpitUIHit(input.vMouseOrthoWorldRay, out uiHit)) { bool bCanCapture = uiHit.hitUI.WantsCapture(InputEvent.Mouse(input.ToOrthoLayerInput(), new AnyRayHit(uiHit))); if (bCanCapture) { return(CaptureRequest.Begin(this)); } } } return(CaptureRequest.Ignore); }
public override Capture BeginCapture(InputState input, CaptureSide eSide) { // [TODO] we just did above... pCapturing = null; UIRayHit uiHit; if (input.bLeftMousePressed) { if (scene.Find2DCockpitUIHit(input.vMouseOrthoWorldRay, out uiHit)) { bool bCanCapture = uiHit.hitUI.BeginCapture(InputEvent.Mouse(input.ToOrthoLayerInput(), new AnyRayHit(uiHit))); if (bCanCapture) { pCapturing = uiHit.hitUI; return(Capture.Begin(this)); } } } return(Capture.Ignore); }
public override Capture UpdateCapture(InputState input, CaptureData data) { if (input.bLeftMouseDown) { pCapturing.UpdateCapture(InputEvent.Mouse(input.ToOrthoLayerInput())); return(Capture.Continue); } else if (input.bLeftMouseReleased) { pCapturing.EndCapture(InputEvent.Mouse(input.ToOrthoLayerInput())); pCapturing = null; return(Capture.End); } else { DebugUtil.Log(2, "Mouse2DCockpitUIBehavior.UpdateCapture: somehow ended up here without left mouse release!"); if (pCapturing != null) { pCapturing.EndCapture(InputEvent.Mouse(input.ToOrthoLayerInput())); pCapturing = null; } return(Capture.End); } }