private bool TryHandleMouseEvent(IMouseEvent args) { var rect = cText.Node.GetComponent <IRectangleComponent>().Rectangle; var textBox = cText.TextBox; if (!args.RayHitResult.HasValue) { return(false); } var hmgnPoint = args.RayHitResult.Value.LocalHitPoint.Xy; var textBoxPoint = new Vector2( (1 + hmgnPoint.X) / 2 * rect.Width * textBox.PixelScaling, (1 - hmgnPoint.Y) / 2 * rect.Height * textBox.PixelScaling); var layout = textBox.Layout; if (layout.TryGetSpanAt(textBoxPoint, out var lspan) && lspan.Embedding != null && lspan.EmbeddingHandler != null && lspan.EmbeddingHandler.TryHandleMouseEvent(lspan.Embedding, args)) { return(true); } if (args.IsLeftDownEvent()) { var newPos = layout.GetPosition(textBoxPoint); HeadlessEditor.MoveCursor(newPos, args.KeyModifiers == KeyModifiers.Shift); inputHandler.AddLock(new InputLock <object>(null, MouseDownLockProc)); return(true); } return(false); }
private bool TryHandleMouseEvent(IMouseEvent args) { if (args.IsLeftDownEvent()) { inputHandler.AddLock(new ResizeRectangleInputLock(getRectAspect(master), undoRedo, getSpace(master), getPlace(master))); return(true); } return(false); }
private bool TryHandleMouseEvent(IMouseEvent args) { if (args.IsLeftDownEvent()) { var rectAspect = getRectAspect(master); var space = getSpace(master); var globalRay = args.Viewport.GetGlobalRayForPixelPos(args.State.Position); if (!space.TryFindPoint2D(globalRay, out var initialPoint)) { return(false); } //if (rectAspect.Rectangle.DistanceToBorderFrom(initialPoint) > 0.05f) // return false; var anchor = initialPoint - rectAspect.Rectangle.MinMin; inputHandler.AddLock(new DragRectangleInputLock(undoRedo, rectAspect, space, anchor)); return(true); } return(false); }