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;
     }
 }
예제 #3
0
        /// <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;
        }