Index: Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs =================================================================== diff -u -rbd36f92950113519dcb8b100e12879b9fb1ab4b6 -rfb4ad486a3c3509edb3c68e6dbde03c3a3003531 --- Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs (.../MapControl.cs) (revision bd36f92950113519dcb8b100e12879b9fb1ab4b6) +++ Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs (.../MapControl.cs) (revision fb4ad486a3c3509edb3c68e6dbde03c3a3003531) @@ -72,8 +72,10 @@ InitializeComponent(); InitializeMap(); - TogglePanning(); + panningToggleButton.CheckState = CheckState.Checked; + showCoordinatesToggleButton.CheckState = CheckState.Checked; + mapDataCollectionObserver = new RecursiveObserver(HandleMapDataCollectionChange, mdc => mdc.Collection); backGroundMapDataObserver = new Observer(HandleBackgroundMapDataChange); @@ -137,17 +139,17 @@ protected override void Dispose(bool disposing) { - if (disposing && (components != null)) - { - components.Dispose(); - } - map.Dispose(); mouseCoordinatesMapExtension.Dispose(); mapDataCollectionObserver.Dispose(); backGroundMapDataObserver.Dispose(); backgroundLayerStatus.Dispose(); + if (disposing) + { + components?.Dispose(); + } + base.Dispose(disposing); } @@ -183,13 +185,11 @@ Projection = MapDataConstants.FeatureBasedMapDataCoordinateSystem }; - // Configure the map pan function MapFunctionPan mapFunctionPan = map.MapFunctions.OfType().First(); mapFunctionPan.FunctionActivated += MapFunctionActivateFunction; mapFunctionPan.MouseDown += MapFunctionPanOnMouseDown; mapFunctionPan.MouseUp += MapFunctionOnMouseUp; - // Add and configure the map selection zoom function mapFunctionSelectionZoom = new MapFunctionSelectionZoom(map); map.MapFunctions.Add(mapFunctionSelectionZoom); mapFunctionSelectionZoom.FunctionActivated += MapFunctionActivateFunction; @@ -198,9 +198,6 @@ mouseCoordinatesMapExtension = new RdNewMouseCoordinatesMapExtension(map); - panningToggleButton.CheckState = CheckState.Checked; - showCoordinatesToggleButton.CheckState = CheckState.Checked; - Controls.Add(map); } @@ -236,81 +233,6 @@ } } - private void PanningToggleButtonClicked(object sender, EventArgs e) - { - if (handlingToggleButtonClicked) - { - return; - } - - if (IsPanningEnabled) - { - panningToggleButton.CheckState = CheckState.Checked; - - return; - } - - handlingToggleButtonClicked = true; - - TogglePanning(); - - zoomToRectangleToggleButton.CheckState = CheckState.Unchecked; - - map.Focus(); - - handlingToggleButtonClicked = false; - } - - private void ZoomToRectangleToggleButtonClicked(object sender, EventArgs e) - { - if (handlingToggleButtonClicked) - { - return; - } - - if (IsRectangleZoomingEnabled) - { - zoomToRectangleToggleButton.CheckState = CheckState.Checked; - - return; - } - - handlingToggleButtonClicked = true; - - ToggleRectangleZooming(); - - panningToggleButton.CheckState = CheckState.Unchecked; - - map.Focus(); - - handlingToggleButtonClicked = false; - } - - private void ZoomToAllVisibleLayersButtonClicked(object sender, EventArgs e) - { - if (handlingZoomToExtentsButtonClicked) - { - return; - } - - handlingZoomToExtentsButtonClicked = true; - - zoomToAllVisibleLayersButton.CheckState = CheckState.Unchecked; - - map.Focus(); - - ZoomToAllVisibleLayers(); - - handlingZoomToExtentsButtonClicked = false; - } - - private void ShowCoordinatesToggleButtonClicked(object sender, EventArgs e) - { - ToggleMouseCoordinatesVisibility(); - - map.Focus(); - } - #region Background layer /// @@ -401,40 +323,6 @@ #endregion - #region Event handlers - - private void MapFunctionActivateFunction(object sender, EventArgs e) - { - map.Cursor = defaultCursor; - } - - private void MapFunctionOnMouseUp(object sender, GeoMouseArgs e) - { - map.Cursor = defaultCursor; - } - - private void MapFunctionPanOnMouseDown(object sender, GeoMouseArgs geoMouseArgs) - { - map.Cursor = geoMouseArgs.Button != MouseButtons.Right ? Cursors.Hand : defaultCursor; - } - - private void MapFunctionSelectionZoomOnMouseDown(object sender, GeoMouseArgs geoMouseArgs) - { - switch (geoMouseArgs.Button) - { - case MouseButtons.Left: - map.Cursor = Cursors.SizeNWSE; - break; - default: - map.Cursor = map.IsBusy - ? Cursors.SizeNWSE - : defaultCursor; - break; - } - } - - #endregion - #region DrawMapData /// @@ -697,6 +585,111 @@ map.FunctionMode = FunctionMode.None; } + private void MapFunctionActivateFunction(object sender, EventArgs e) + { + map.Cursor = defaultCursor; + } + + private void MapFunctionOnMouseUp(object sender, GeoMouseArgs e) + { + map.Cursor = defaultCursor; + } + + private void MapFunctionPanOnMouseDown(object sender, GeoMouseArgs geoMouseArgs) + { + map.Cursor = geoMouseArgs.Button != MouseButtons.Right ? Cursors.Hand : defaultCursor; + } + + private void MapFunctionSelectionZoomOnMouseDown(object sender, GeoMouseArgs geoMouseArgs) + { + switch (geoMouseArgs.Button) + { + case MouseButtons.Left: + map.Cursor = Cursors.SizeNWSE; + break; + default: + map.Cursor = map.IsBusy + ? Cursors.SizeNWSE + : defaultCursor; + break; + } + } + + private void PanningToggleButtonClicked(object sender, EventArgs e) + { + if (handlingToggleButtonClicked) + { + return; + } + + if (IsPanningEnabled) + { + panningToggleButton.CheckState = CheckState.Checked; + + return; + } + + handlingToggleButtonClicked = true; + + TogglePanning(); + + zoomToRectangleToggleButton.CheckState = CheckState.Unchecked; + + map.Focus(); + + handlingToggleButtonClicked = false; + } + + private void ZoomToRectangleToggleButtonClicked(object sender, EventArgs e) + { + if (handlingToggleButtonClicked) + { + return; + } + + if (IsRectangleZoomingEnabled) + { + zoomToRectangleToggleButton.CheckState = CheckState.Checked; + + return; + } + + handlingToggleButtonClicked = true; + + ToggleRectangleZooming(); + + panningToggleButton.CheckState = CheckState.Unchecked; + + map.Focus(); + + handlingToggleButtonClicked = false; + } + + private void ZoomToAllVisibleLayersButtonClicked(object sender, EventArgs e) + { + if (handlingZoomToExtentsButtonClicked) + { + return; + } + + handlingZoomToExtentsButtonClicked = true; + + zoomToAllVisibleLayersButton.CheckState = CheckState.Unchecked; + + map.Focus(); + + ZoomToAllVisibleLayers(); + + handlingZoomToExtentsButtonClicked = false; + } + + private void ShowCoordinatesToggleButtonClicked(object sender, EventArgs e) + { + ToggleMouseCoordinatesVisibility(); + + map.Focus(); + } + #endregion #region Update timer