bool IUiController.MouseDown(object sender, MouseEventArgs e) { var width = Rect.East - Rect.West; var height = Rect.North - Rect.South; var range = Math.Max(width / 40, height / 40); var cursor = Earth3d.MainWindow.GetCoordinatesForScreenPoint(e.X, e.Y); if (cursor.Distance(Coordinates.FromLatLng(Rect.North, Rect.West)) < range) { dragCorner = DragCorners.NW; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Rect.North, (Rect.West + Rect.East) / 2)) < range) { dragCorner = DragCorners.N; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Rect.North, Rect.East)) < range) { dragCorner = DragCorners.NE; drag = true; } if (cursor.Distance(Coordinates.FromLatLng((Rect.North + Rect.South) / 2, Rect.West)) < range) { dragCorner = DragCorners.W; drag = true; } if (cursor.Distance(Coordinates.FromLatLng((Rect.North + Rect.South) / 2, (Rect.West + Rect.East) / 2)) < range) { dragCorner = DragCorners.C; drag = true; } if (cursor.Distance(Coordinates.FromLatLng((Rect.North + Rect.South) / 2, Rect.East)) < range) { dragCorner = DragCorners.E; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Rect.South, Rect.West)) < range) { dragCorner = DragCorners.SW; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Rect.South, (Rect.West + Rect.East) / 2)) < range) { dragCorner = DragCorners.S; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Rect.South, Rect.East)) < range) { dragCorner = DragCorners.SE; drag = true; } if (drag) { mouseDown = cursor; } return drag; }
bool IUiController.MouseMove(object sender, MouseEventArgs e) { if (drag) { Coordinates cursor = Earth3d.MainWindow.GetCoordinatesForScreenPoint(e.X, e.Y); switch (dragCorner) { case DragCorners.NW: Overlay.north = cursor.Lat; Overlay.west = cursor.Lng; break; case DragCorners.N: Overlay.north = cursor.Lat; break; case DragCorners.NE: Overlay.north = cursor.Lat; Overlay.east = cursor.Lng; break; case DragCorners.W: Overlay.west = cursor.Lng; break; case DragCorners.C: Overlay.north -= (mouseDown.Lat - cursor.Lat); Overlay.west -= (mouseDown.Lng - cursor.Lng); Overlay.south -= (mouseDown.Lat - cursor.Lat); Overlay.east -= (mouseDown.Lng - cursor.Lng); break; case DragCorners.E: Overlay.east = cursor.Lng; break; case DragCorners.SW: Overlay.south = cursor.Lat; Overlay.west = cursor.Lng; break; case DragCorners.S: Overlay.south = cursor.Lat; break; case DragCorners.SE: Overlay.south = cursor.Lat; Overlay.east = cursor.Lng; break; default: break; } mouseDown = cursor; UpdateTextBoxes(); UpdateLines(); return(true); } else { Control wnd = (Control)sender; double width = Overlay.east - Overlay.west; double height = Overlay.north - Overlay.south; double range = Math.Max(width / 40, height / 40); Coordinates cursor = Earth3d.MainWindow.GetCoordinatesForScreenPoint(e.X, e.Y); DragCorners dragCorner = DragCorners.None; if (cursor.Distance(Coordinates.FromLatLng(Overlay.north, Overlay.west)) < range) { dragCorner = DragCorners.NW; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.north, (Overlay.west + Overlay.east) / 2)) < range) { dragCorner = DragCorners.N; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.north, Overlay.east)) < range) { dragCorner = DragCorners.NE; } if (cursor.Distance(Coordinates.FromLatLng((Overlay.north + Overlay.south) / 2, Overlay.west)) < range) { dragCorner = DragCorners.W; } if (cursor.Distance(Coordinates.FromLatLng((Overlay.north + Overlay.south) / 2, (Overlay.west + Overlay.east) / 2)) < range) { dragCorner = DragCorners.C; } if (cursor.Distance(Coordinates.FromLatLng((Overlay.north + Overlay.south) / 2, Overlay.east)) < range) { dragCorner = DragCorners.E; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.south, Overlay.west)) < range) { dragCorner = DragCorners.SW; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.south, (Overlay.west + Overlay.east) / 2)) < range) { dragCorner = DragCorners.S; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.south, Overlay.east)) < range) { dragCorner = DragCorners.SE; } switch (dragCorner) { case DragCorners.SE: case DragCorners.NW: wnd.Cursor = Cursors.SizeNWSE; break; case DragCorners.N: case DragCorners.S: wnd.Cursor = Cursors.SizeNS; break; case DragCorners.W: case DragCorners.E: wnd.Cursor = Cursors.SizeWE; break; case DragCorners.C: wnd.Cursor = Cursors.Hand; break; case DragCorners.SW: case DragCorners.NE: wnd.Cursor = Cursors.SizeNESW; break; default: wnd.Cursor = Cursors.Default; break; } } return(false); }
bool IUiController.MouseMove(object sender, MouseEventArgs e) { if (drag) { var cursor = Earth3d.MainWindow.GetCoordinatesForScreenPoint(e.X, e.Y); switch (dragCorner) { case DragCorners.NW: Rect.North = cursor.Lat; Rect.West = cursor.Lng; break; case DragCorners.N: Rect.North = cursor.Lat; break; case DragCorners.NE: Rect.North = cursor.Lat; Rect.East = cursor.Lng; break; case DragCorners.W: Rect.West = cursor.Lng; break; case DragCorners.C: Rect.North -= (mouseDown.Lat - cursor.Lat); Rect.West -= (mouseDown.Lng - cursor.Lng); Rect.South -= (mouseDown.Lat - cursor.Lat); Rect.East -= (mouseDown.Lng - cursor.Lng); break; case DragCorners.E: Rect.East = cursor.Lng; break; case DragCorners.SW: Rect.South = cursor.Lat; Rect.West = cursor.Lng; break; case DragCorners.S: Rect.South = cursor.Lat; break; case DragCorners.SE: Rect.South = cursor.Lat; Rect.East = cursor.Lng; break; default: break; } mouseDown = cursor; UpdateTextBoxes(); UpdateLines(); return true; } else { var wnd = (Control)sender; var width = Rect.East - Rect.West; var height = Rect.North - Rect.South; var range = Math.Max(width / 40, height / 40); var cursor = Earth3d.MainWindow.GetCoordinatesForScreenPoint(e.X, e.Y); var dragCorner = DragCorners.None; if (cursor.Distance(Coordinates.FromLatLng(Rect.North, Rect.West)) < range) { dragCorner = DragCorners.NW; } if (cursor.Distance(Coordinates.FromLatLng(Rect.North, (Rect.West + Rect.East) / 2)) < range) { dragCorner = DragCorners.N; } if (cursor.Distance(Coordinates.FromLatLng(Rect.North, Rect.East)) < range) { dragCorner = DragCorners.NE; } if (cursor.Distance(Coordinates.FromLatLng((Rect.North + Rect.South) / 2, Rect.West)) < range) { dragCorner = DragCorners.W; } if (cursor.Distance(Coordinates.FromLatLng((Rect.North + Rect.South) / 2, (Rect.West + Rect.East) / 2)) < range) { dragCorner = DragCorners.C; } if (cursor.Distance(Coordinates.FromLatLng((Rect.North + Rect.South) / 2, Rect.East)) < range) { dragCorner = DragCorners.E; } if (cursor.Distance(Coordinates.FromLatLng(Rect.South, Rect.West)) < range) { dragCorner = DragCorners.SW; } if (cursor.Distance(Coordinates.FromLatLng(Rect.South, (Rect.West + Rect.East) / 2)) < range) { dragCorner = DragCorners.S; } if (cursor.Distance(Coordinates.FromLatLng(Rect.South, Rect.East)) < range) { dragCorner = DragCorners.SE; } switch (dragCorner) { case DragCorners.SE: case DragCorners.NW: wnd.Cursor = Cursors.SizeNWSE; break; case DragCorners.N: case DragCorners.S: wnd.Cursor = Cursors.SizeNS; break; case DragCorners.W: case DragCorners.E: wnd.Cursor = Cursors.SizeWE; break; case DragCorners.C: wnd.Cursor = Cursors.Hand; break; case DragCorners.SW: case DragCorners.NE: wnd.Cursor = Cursors.SizeNESW; break; default: wnd.Cursor = Cursors.Default; break; } } return false; }
bool IUiController.MouseDown(object sender, MouseEventArgs e) { double width = Overlay.east - Overlay.west; double height = Overlay.north - Overlay.south; double range = Math.Max(width / 40, height / 40); Coordinates cursor = Earth3d.MainWindow.GetCoordinatesForScreenPoint(e.X, e.Y); if (cursor.Distance(Coordinates.FromLatLng(Overlay.north, Overlay.west)) < range) { dragCorner = DragCorners.NW; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.north, (Overlay.west + Overlay.east) / 2)) < range) { dragCorner = DragCorners.N; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.north, Overlay.east)) < range) { dragCorner = DragCorners.NE; drag = true; } if (cursor.Distance(Coordinates.FromLatLng((Overlay.north + Overlay.south) / 2, Overlay.west)) < range) { dragCorner = DragCorners.W; drag = true; } if (cursor.Distance(Coordinates.FromLatLng((Overlay.north + Overlay.south) / 2, (Overlay.west + Overlay.east) / 2)) < range) { dragCorner = DragCorners.C; drag = true; } if (cursor.Distance(Coordinates.FromLatLng((Overlay.north + Overlay.south) / 2, Overlay.east)) < range) { dragCorner = DragCorners.E; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.south, Overlay.west)) < range) { dragCorner = DragCorners.SW; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.south, (Overlay.west + Overlay.east) / 2)) < range) { dragCorner = DragCorners.S; drag = true; } if (cursor.Distance(Coordinates.FromLatLng(Overlay.south, Overlay.east)) < range) { dragCorner = DragCorners.SE; drag = true; } if (drag) { mouseDown = cursor; } return(drag); }