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);
};
}