protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); this.Focus(); if (e.Button.HasFlag(MouseButtons.Left)) { // call left down-method in the current tool var mousep = e.Location.ToPoint(); var oo = ObjectAtCursor; TEMouseArgs ee = e.ToTEMouseArgs(); TheOverlayModel.CurrentTool.OnLeftMouseButtonDown(oo, new System.Windows.Point(mousep.X, Height - mousep.Y), ee); //e.Handled = ee.Handled; } else if (e.Button.HasFlag(MouseButtons.Right)) { // call right down-method in the current tool var mousep = e.Location.ToPoint(); var oo = ObjectAtCursor; TEMouseArgs ee = e.ToTEMouseArgs(); TheOverlayModel.CurrentTool.OnRightMouseButtonDown(oo, new System.Windows.Point(mousep.X, Height - mousep.Y), ee); //e.Handled = ee.Handled; // if the tool didn't use the click-> proceed with standard handling if (!ee.Handled) { if (Tool == OverlayToolType.move) { //canvas1.ContextMenu.IsEnabled = true; if (TheOverlayModel.CurEditing != null) { TheOverlayModel.CurEditing = null; //PreventContextMenuOpening = true; } else { // right click not consumed yet -> open context menu TheContextMenu.Show(this, e.Location); } } else { Tool = OverlayToolType.move; //PreventContextMenuOpening = true; } } } }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); var mousep = e.Location.ToPoint(); // convert to bottom left coordinates var p = new System.Windows.Point(mousep.X, Height - mousep.Y); TEMouseArgs ee = e.ToTEMouseArgs(); TheOverlayModel.CurrentTool.OnMouseMove(p, ee); //GlobalUI.UI.AddStatusLine(this, "mm " + mousep+" " + CursorPosition); //e.Handled = ee.Handled; }
protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); if (e.Button.HasFlag(MouseButtons.Left)) { if (MouseCaptured) { MouseCaptured = false; // release mouse capture here to make sure the tools cannot forget } var mousep = e.Location.ToPoint(); TEMouseArgs ee = e.ToTEMouseArgs(); TheOverlayModel.CurrentTool.OnLeftMouseButtonUp(new System.Windows.Point(mousep.X, Height - mousep.Y), ee); //e.Handled = ee.Handled; } else if (e.Button.HasFlag(MouseButtons.Right)) { } }
/* * /// <summary> * /// Sets the current parsetree and updates the overlay. * /// </summary> * /// <param name="t">The new parsetree.</param> * /// <param name="tBB">The new bounding box.</param> * public void SetParseTree(Tikz_ParseTree t, Rect tBB) * { * BB = tBB; * ParseTree = t; * //curSel = null; //curDragged = null; * Resolution = Resolution; // to recalc size * ActivateDefaultTool(); // to reset current tool * RedrawObjects(); * } */ #region Events forwarded to Current tool private void canvas1_MouseMove(object sender, MouseEventArgs e) { Point mousep = e.GetPosition(canvas1); // convert to bottom left coordinates Point p = new Point(mousep.X, Height - mousep.Y); TEMouseArgs ee = e.ToTEMouseArgs(); TheModel.CurrentTool.OnMouseMove(p, ee); e.Handled = ee.Handled; // display the current mouse position /* p.Y /= Resolution; * p.X /= Resolution; * p.X += BB.X; * p.Y += BB.Y; * * String s = "(" + String.Format("{0:f1}", p.X) + "; " + String.Format("{0:f1}", p.Y) + ")"; * ((MainWindow)Application.Current.Windows[0]).AddStatusBarCoordinate(s); */ }
protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); if (e.Button.HasFlag(MouseButtons.Left)) { if (MouseCaptured) MouseCaptured = false; // release mouse capture here to make sure the tools cannot forget var mousep = e.Location.ToPoint(); TEMouseArgs ee = e.ToTEMouseArgs(); TheOverlayModel.CurrentTool.OnLeftMouseButtonUp(new System.Windows.Point(mousep.X, Height - mousep.Y), ee); //e.Handled = ee.Handled; } else if (e.Button.HasFlag(MouseButtons.Right)) { } }