public void ItemClickedEvent(string ItemName, ref bool Handled) { if (ItemName == GlobalFunctions.c_RemoveVertexButton) { if (m_globals.CurrentMode == GlobalFunctions.Modes.RemoveVertex) { // I'm already in this mode. Clean up everything. Cleanup(); } else { // Save cursor mode information m_globals.SaveCusorMode(); // Set the cursor. MapWindow.Interfaces.View v = m_globals.MapWin.View; v.CursorMode = MapWinGIS.tkCursorMode.cmNone; v.MapCursor = MapWinGIS.tkCursor.crsrUserDefined; v.UserCursorHandle = m_cursor.Handle.ToInt32(); // Start taking events for MouseMove and MouseUp MapMouseMoveDelegate = new MapWindow.Events.MapMouseMoveEvent(MapMouseMoveEvent); m_globals.Events.AddHandler(MapMouseMoveDelegate); MapMouseUpDelegate = new MapWindow.Events.MapMouseUpEvent(MapMouseUpEvent); m_globals.Events.AddHandler(MapMouseUpDelegate); } } else { Cleanup(); } }
private void Cleanup() { if (MapMouseMoveDelegate != null) { m_globals.Events.RemoveHandler(MapMouseMoveDelegate); MapMouseMoveDelegate = null; } if (MapMouseUpDelegate != null) { m_globals.Events.RemoveHandler(MapMouseUpDelegate); MapMouseUpDelegate = null; } }
/// <summary> /// Constructor. /// The AddShapeForm is used when creating a new shape. /// The user can either click on the map to generate new points, lines or polygons, or input coordinates in the text boxes provided on the form. /// </summary> public AddShapeForm(GlobalFunctions g, ref SnapClass snapper) { // // Required for Windows Form Designer support // InitializeComponent(); m_globals = g; m_cursor = new System.Windows.Forms.Cursor(this.GetType(), "InsertPoint.cur"); view = g.MapWin.View; m_oldCursorMode = view.CursorMode; m_oldCursor = view.MapCursor; m_oldCursorHandle = view.UserCursorHandle; view.CursorMode = MapWinGIS.tkCursorMode.cmNone; view.MapCursor = MapWinGIS.tkCursor.crsrWait; m_SFType = g.MapWin.Layers[g.MapWin.Layers.CurrentLayer].LayerType; m_Shape = new ShapeClass(); // Sign me up for these events! m_MapMouseMoveDelegate = new MapWindow.Events.MapMouseMoveEvent(MouseMoveEvent); g.Events.AddHandler(m_MapMouseMoveDelegate); m_MapMouseUpDelegate = new MapWindow.Events.MapMouseUpEvent(MouseUpEvent); g.Events.AddHandler(m_MapMouseUpDelegate); m_LayerSelectedDelegate = new MapWindow.Events.LayerSelectedEvent(LayerSelectedEvent); g.Events.AddHandler(m_LayerSelectedDelegate); MapWindow.Interfaces.eLayerType t = g.MapWin.Layers[g.MapWin.Layers.CurrentLayer].LayerType; m_sf = g.CurrentLayer; if ((m_snapper == null) && ((t == lt.LineShapefile) || (t == lt.PointShapefile) || (t == lt.PolygonShapefile))) { m_snapper = new SnapClass(m_globals.MapWin); } view.MapCursor = MapWinGIS.tkCursor.crsrUserDefined; view.UserCursorHandle = m_cursor.Handle.ToInt32(); m_PointSize = 6; }