public override void OnLeftMouseButtonDown(OverlayShapeVM item, Point p, TEMouseArgs e) { // initiate drawing process Point mousep = overlay.Rasterizer.RasterizePixel(p); origin = new Point(mousep.X, overlay.Height - mousep.Y); if (IsReferenceable(item)) { originRef = item; } else { originRef = null; } PreviewEllipse.SetPosition(origin.X, origin.Y, 0, 0); double angle = -Helper.RotationFromMatrix(overlay.Rasterizer.View.CoordinateTransform) * 180 / Math.PI; PreviewEllipse.Rotation = angle; PreviewEllipse.Visible = true; overlay.MouseCaptured = true; }
public override void OnLeftMouseButtonDown(OverlayShapeVM item, Point p, TEMouseArgs e) { // initiate drawing process Point mousep = overlay.Rasterizer.RasterizePixel(p); origin = new Point(mousep.X, overlay.Height - mousep.Y); if (IsReferenceable(item)) { originRef = item; } else { originRef = null; } PreviewRect.SetPosition(origin.X, origin.Y, 0, 0); // adjust rotation in case we are in a rotated frame double angle = -Helper.RotationFromMatrix(overlay.Rasterizer.View.CoordinateTransform) * 180 / Math.PI; PreviewRect.Rotation = angle; ////if (!overlay.canvas.Children.Contains(PreviewRect)) //// overlay.canvas.Children.Add(PreviewRect); /////PreviewRect.Visibility = Visibility.Visible; PreviewRect.Visible = true; overlay.MouseCaptured = true; }
public override void OnLeftMouseButtonDown(OverlayShape item, Point p, TEMouseArgs e) { if (e.ClickCount == 2 && (item is OverlayScope)) // Select for editing { overlay.CurEditing = item as OverlayScope; } else if (e.ClickCount == 2 && (item is OverlayNode)) { overlay.JumpToSourceDoIt(item); } else if (item is OverlayShape) { // initiate a drag/drop operation curDragged = (OverlayShape)item; DragOrigin = (Point)((new Point(item.View.GetLeft(), item.View.GetBottom())) - p); ////e.GetPosition(item); ////DragOrigin = new Point(DragOrigin.X, (item as OverlayShape).Height - DragOrigin.Y); DragOriginC = p; DragOriginO = new Point(curDragged.View.GetLeft(), curDragged.View.GetBottom()); movedenough = false; //MessageBox.Show(o.ToString()); // select the clicked shape if (overlay.KeyboardModifiers.HasFlag(TEModifierKeys.Control)) { if (!ToggleItem(curDragged)) { // unselected -> start no drag operation curDragged = null; } } else { AddItem(curDragged, !IsItemSelected(curDragged)); } // adjust raster origin/scale/polar/cartesian overlay.SetCorrectRaster(curDragged); // capture mouse. this is important if the user drags sth. outside canvas1's bounds if (curDragged != null) { overlay.MouseCaptured = true; } } else if (item == null) { BeginSelectionChange(overlay.KeyboardModifiers.HasFlag(TEModifierKeys.Control)); // display selection rectangle SelectionRectOrigin = overlay.CursorPosition; //SelectionRect.RenderTransform = new TranslateTransform(SelectionRectOrigin.X, SelectionRectOrigin.Y); SelectionRect.SetPosition(SelectionRectOrigin.X, SelectionRectOrigin.Y, 0, 0); ////Canvas.SetLeft(SelectionRect, SelectionRectOrigin.X); ////Canvas.SetTop(SelectionRect, SelectionRectOrigin.Y); ////SelectionRect.Width = 0; ////SelectionRect.Height = 0; ////Canvas.SetZIndex(SelectionRect, overlay.canvas.Children.Count); ////if (!overlay.canvas.Children.Contains(SelectionRect)) //// overlay.canvas.Children.Add(SelectionRect); ////SelectionRect.Visibility = System.Windows.Visibility.Visible; SelectionRect.Visible = true; overlay.MouseCaptured = true; } }