diff --git a/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp b/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp index 02b9189..a1031a1 100644 --- a/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp +++ b/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp @@ -71,6 +71,26 @@ void GraphingSettingsViewModel::InitRanges() m_dontUpdateDisplayRange = false; } +void GraphingSettingsViewModel::ResetView() +{ + if (m_Graph != nullptr) + { + m_Graph->ResetGrid(); + InitRanges(); + m_XMinError = false; + m_XMaxError = false; + m_YMinError = false; + m_YMaxError = false; + + RaisePropertyChanged("XError"); + RaisePropertyChanged("XMin"); + RaisePropertyChanged("XMax"); + RaisePropertyChanged("YError"); + RaisePropertyChanged("YMin"); + RaisePropertyChanged("YMax"); + } +} + void GraphingSettingsViewModel::UpdateDisplayRange() { if (m_Graph == nullptr || m_dontUpdateDisplayRange || HasError()) diff --git a/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.h b/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.h index a16facd..60c5e16 100644 --- a/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.h +++ b/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.h @@ -275,6 +275,7 @@ namespace CalculatorApp::ViewModel public: void SetGrapher(GraphControl::Grapher ^ grapher); void InitRanges(); + void ResetView(); bool HasError(); private: diff --git a/src/Calculator/Resources/en-US/Resources.resw b/src/Calculator/Resources/en-US/Resources.resw index edb1da9..6e232db 100644 --- a/src/Calculator/Resources/en-US/Resources.resw +++ b/src/Calculator/Resources/en-US/Resources.resw @@ -4226,6 +4226,10 @@ Units Heading for Unit's on the settings + + Reset view + Hyperlink button to reset the view of the graph + X-Max X maximum value header diff --git a/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml b/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml index bac5491..0897b11 100644 --- a/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml +++ b/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml @@ -102,11 +102,19 @@ FontSize="20" FontWeight="Medium" AutomationProperties.HeadingLevel="Level1"/> - + + + + + + + + diff --git a/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.cpp b/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.cpp index e023bea..1be3a3f 100644 --- a/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.cpp +++ b/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.cpp @@ -61,3 +61,8 @@ void GraphingSettings::RefreshRanges() { ViewModel->InitRanges(); } + +void GraphingSettings::ResetViewButton_Clicked(Object ^ sender, RoutedEventArgs ^ e) +{ + ViewModel->ResetView(); +} diff --git a/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.h b/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.h index 0b31146..0250787 100644 --- a/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.h +++ b/src/Calculator/Views/GraphingCalculator/GraphingSettings.xaml.h @@ -23,5 +23,6 @@ namespace CalculatorApp void RefreshRanges(); private: void GridSettingsTextBox_PreviewKeyDown(Platform::Object ^ sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs ^ e); + void ResetViewButton_Clicked(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e); }; }