public static void BindToControl(this IInputView2D view, Control c) { //mouse events c.MouseDown += view.DoMouseDown_ScreenSpace; c.MouseEnter += delegate(object sender, EventArgs e) { view.DoMouseEnter(sender); }; c.MouseLeave += delegate(object sender, EventArgs e) { view.DoMouseLeave(sender); }; c.MouseHover += delegate(object sender, EventArgs e) { view.DoMouseHover(sender); }; c.MouseMove += view.DoMouseMove_ScreenSpace; c.MouseUp += view.DoMouseUp_ScreenSpace; c.MouseWheel += delegate(object sender, MouseEventArgs e) { view.DoMouseWheel(sender, view.ScreenSpace2WorldSpace(e.X, e.Y)); }; c.MouseClick += view.DoMouseClick_ScreenSpace; c.MouseDoubleClick += view.DoMouseDoubleClick_ScreenSpace; //drag drop does not have the current mouse pos. c.DragDrop += delegate(object sender, DragEventArgs e) { //view.DoDragDrop(sender, e.Data, view.ScreenSpace2WorldSpace(e.X, e.Y)); Point client = c.PointToClient(new Point(e.X, e.Y)); view.DoDragDrop(sender, e.Data, view.ScreenSpace2WorldSpace(client)); }; //mouse cursor view.OnMouseCursorChange += delegate(object sender, Cursor cursor) { c.Cursor = cursor ?? (Cursors.Default); }; //context menu //clipboard //keyboard c.KeyDown += view.DoKeyDown; c.KeyUp += view.DoKeyUp; c.KeyPress += view.DoKeyPress; //status }
public static void DoMouseDoubleClick_ScreenSpace(this IInputView2D view, object sender, MouseEventArgs e) { view.DoMouseDoubleClick(sender, e.Button, view.ScreenSpace2WorldSpace(e.X, e.Y)); }