protected override IMouseAction GetMouseAction(MouseEventArgs e, Keys modifierKeys, MapToolContext ctx) { if (modifierKeys.HasFlag(Keys.Alt)) { return(new PanZoomMouseAction()); } else { Point tilePt = ctx.ToTile(e.Location); // If the cursor is not on a selected tile then clear the selection and select // the tile directly under the cursor. if (!selectionService.SelectedItems.Any(i => i.Bounds.Contains(tilePt))) { selectionService.ClearSelection(); selectionService.ModifySelection(e.Location, ctx, SelectionAction.Add); } if (selectionService.SelectedItems.Any()) { return(new MoveItemsDragAction( selectionRenderer, selectionService, historyService)); } return(null); } }
public void OnMouseDown(MouseEventArgs e, MapToolContext ctx) { if (e.Button == MouseButtons.Left) { Point tilePt = ctx.ToTile(e.Location); // If the cursor is not on a selected tile then clear the selection and select // the tile directly under the cursor. if (!selectionService.SelectedItems.Any(i => i.Bounds.Contains(tilePt))) { selectionService.ClearSelection(); selectionService.ModifySelection(e.Location, ctx, SelectionAction.Add); } if (selectionService.SelectedItems.Any()) { this.isDragging = true; this.dragStart = e.Location; } } }