Index: Core/Plugins/src/Core.Plugins.DotSpatial/MapRibbon.xaml.cs =================================================================== diff -u -r33d1826440741f2fa8b53129d59c532f110dc2bf -r60acf2bc6ae22b741f2634a26431187a64fbbd92 --- Core/Plugins/src/Core.Plugins.DotSpatial/MapRibbon.xaml.cs (.../MapRibbon.xaml.cs) (revision 33d1826440741f2fa8b53129d59c532f110dc2bf) +++ Core/Plugins/src/Core.Plugins.DotSpatial/MapRibbon.xaml.cs (.../MapRibbon.xaml.cs) (revision 60acf2bc6ae22b741f2634a26431187a64fbbd92) @@ -93,6 +93,7 @@ ToggleLegendViewButton.IsChecked = ToggleLegendViewCommand != null && ToggleLegendViewCommand.Checked; TogglePanningButton.IsChecked = Map != null && Map.IsPanningEnabled; ToggleRectangleZoomingButton.IsChecked = Map != null && Map.IsRectangleZoomingEnabled; + ToggleMouseCoordinatesButton.IsChecked = Map != null && Map.IsMouseCoordinatesEnabled; } public bool IsContextualTabVisible(string tabGroupName, string tabName) Index: Core/Plugins/test/Core.Plugins.DotSpatial.Test/MapRibbonTest.cs =================================================================== diff -u -r33d1826440741f2fa8b53129d59c532f110dc2bf -r60acf2bc6ae22b741f2634a26431187a64fbbd92 --- Core/Plugins/test/Core.Plugins.DotSpatial.Test/MapRibbonTest.cs (.../MapRibbonTest.cs) (revision 33d1826440741f2fa8b53129d59c532f110dc2bf) +++ Core/Plugins/test/Core.Plugins.DotSpatial.Test/MapRibbonTest.cs (.../MapRibbonTest.cs) (revision 60acf2bc6ae22b741f2634a26431187a64fbbd92) @@ -137,6 +137,88 @@ [Test] [RequiresSTA] + [TestCase(true)] + [TestCase(false)] + public void ValidateItems_Always_TogglePanningButtonIsCheckedEqualToPanningChecked(bool panningChecked) + { + // Setup + var mocks = new MockRepository(); + var map = mocks.DynamicMock(); + + map.Expect(m => m.IsPanningEnabled).Return(panningChecked); + + mocks.ReplayAll(); + + var ribbon = new MapRibbon + { + Map = map + }; + + // Call + ribbon.ValidateItems(); + + // Assert + Assert.AreEqual(panningChecked, map.IsPanningEnabled); + mocks.VerifyAll(); + } + + [Test] + [RequiresSTA] + [TestCase(true)] + [TestCase(false)] + public void ValidateItems_Always_ToggleRectangleZoomingButtonIsCheckedEqualToRectangleZoomChecked(bool rectangleZoomChecked) + { + // Setup + var mocks = new MockRepository(); + var map = mocks.DynamicMock(); + + map.Expect(m => m.IsRectangleZoomingEnabled).Return(rectangleZoomChecked); + + mocks.ReplayAll(); + + var ribbon = new MapRibbon + { + Map = map + }; + + // Call + ribbon.ValidateItems(); + + // Assert + Assert.AreEqual(rectangleZoomChecked, map.IsRectangleZoomingEnabled); + mocks.VerifyAll(); + } + + [Test] + [RequiresSTA] + [TestCase(true)] + [TestCase(false)] + public void ValidateItems_Always_ToggleMouseCoordinatesButtonIsCheckedEqualToMouseCoordinatesChecked(bool mouseCoordinatesChecked) + { + // Setup + var mocks = new MockRepository(); + var map = mocks.DynamicMock(); + + map.Expect(m => m.IsMouseCoordinatesEnabled).Return(mouseCoordinatesChecked); + + mocks.ReplayAll(); + + var ribbon = new MapRibbon + { + Map = map + }; + + // Call + ribbon.ValidateItems(); + + // Assert + Assert.AreEqual(mouseCoordinatesChecked, map.IsMouseCoordinatesEnabled); + mocks.VerifyAll(); + } + + + [Test] + [RequiresSTA] public void ToggleLegendViewButton_OnClick_ExecutesToggleLegendViewCommand() { // Setup