diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp index c1bdd31..72ae293 100644 --- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp +++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp @@ -26,6 +26,7 @@ namespace CalculatorApp::Common::Automation StringReference GraphModeChanged(L"GraphModeChanged"); StringReference GraphViewChanged(L"GraphViewChanged"); StringReference FunctionRemoved(L"FunctionRemoved"); + StringReference GraphViewBestFitChanged(L"GraphViewBestFitChanged"); } } @@ -170,3 +171,12 @@ NarratorAnnouncement ^ CalculatorAnnouncement::GetFunctionRemovedAnnouncement(St AutomationNotificationKind::ItemRemoved, AutomationNotificationProcessing::MostRecent); } + +NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphViewBestFitChangedAnnouncement(Platform::String ^ announcement) +{ + return ref new NarratorAnnouncement( + announcement, + CalculatorActivityIds::GraphViewBestFitChanged, + AutomationNotificationKind::ActionCompleted, + AutomationNotificationProcessing::MostRecent); +} diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h index ddfa64a..b378e52 100644 --- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h +++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h @@ -69,6 +69,7 @@ public static NarratorAnnouncement ^ GetGraphModeChangedAnnouncement(Platform::String ^ announcement); static NarratorAnnouncement ^ GetGraphViewChangedAnnouncement(Platform::String ^ announcement); + static NarratorAnnouncement ^ GetGraphViewBestFitChangedAnnouncement(Platform::String ^ announcement); static NarratorAnnouncement ^ GetFunctionRemovedAnnouncement(Platform::String ^ announcement); diff --git a/src/CalcViewModel/Common/TraceLogger.cpp b/src/CalcViewModel/Common/TraceLogger.cpp index 26f17e2..f58513d 100644 --- a/src/CalcViewModel/Common/TraceLogger.cpp +++ b/src/CalcViewModel/Common/TraceLogger.cpp @@ -272,11 +272,12 @@ namespace CalculatorApp TraceLoggingCommon::GetInstance()->LogLevel2Event(StringReference(EVENT_NAME_SHOW_HIDE_BUTTON_CLICKED), fields); } - void TraceLogger::LogGraphButtonClicked(GraphButton buttonName) + void TraceLogger::LogGraphButtonClicked(GraphButton buttonName, GraphButtonValue buttonValue) { auto fields = ref new LoggingFields(); fields->AddString(StringReference(CALC_MODE), StringReference(GRAPHING_MODE)); fields->AddInt16(StringReference(L"ButtonName"), static_cast(buttonName)); + fields->AddInt16(StringReference(L"ButtonValue"), static_cast(buttonValue)); TraceLoggingCommon::GetInstance()->LogLevel2Event(StringReference(EVENT_NAME_GRAPH_BUTTON_CLICKED), fields); } diff --git a/src/CalcViewModel/Common/TraceLogger.h b/src/CalcViewModel/Common/TraceLogger.h index c6b205d..cef592e 100644 --- a/src/CalcViewModel/Common/TraceLogger.h +++ b/src/CalcViewModel/Common/TraceLogger.h @@ -41,7 +41,14 @@ namespace CalculatorApp Share, ZoomIn, ZoomOut, - ZoomReset + GraphView + }; + + public enum class GraphButtonValue + { + None, + AutomaticBestFit, + ManualAdjustment }; public enum class LineStyleType @@ -70,7 +77,7 @@ namespace CalculatorApp void LogNavBarOpened(); void LogError(CalculatorApp::Common::ViewMode mode, Platform::String ^ functionName, Platform::String ^ errorString); void LogShowHideButtonClicked(bool isHideButton); - void LogGraphButtonClicked(GraphButton buttonName); + void LogGraphButtonClicked(GraphButton buttonName, GraphButtonValue buttonValue); void LogGraphLineStyleChanged(LineStyleType style); void LogVariableChanged(Platform::String ^ inputChangedType, Platform::String ^ variableName); void LogVariableSettingsChanged(Platform::String ^ setting); diff --git a/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp b/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp index 36510cf..3c7de35 100644 --- a/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp +++ b/src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp @@ -56,19 +56,19 @@ void GraphingSettingsViewModel::InitRanges() m_YMaxValue = yMax; auto valueStr = to_wstring(m_XMinValue); TrimTrailingZeros(valueStr); - m_XMin = ref new String(valueStr.c_str()); + XMin = ref new String(valueStr.c_str()); valueStr = to_wstring(m_XMaxValue); TrimTrailingZeros(valueStr); - m_XMax = ref new String(valueStr.c_str()); + XMax = ref new String(valueStr.c_str()); valueStr = to_wstring(m_YMinValue); TrimTrailingZeros(valueStr); - m_YMin = ref new String(valueStr.c_str()); + YMin = ref new String(valueStr.c_str()); valueStr = to_wstring(m_YMaxValue); TrimTrailingZeros(valueStr); - m_YMax = ref new String(valueStr.c_str()); + YMax = ref new String(valueStr.c_str()); m_dontUpdateDisplayRange = false; } diff --git a/src/Calculator/Assets/CalcMDL2.ttf b/src/Calculator/Assets/CalcMDL2.ttf index fda4992..9ee5deb 100644 Binary files a/src/Calculator/Assets/CalcMDL2.ttf and b/src/Calculator/Assets/CalcMDL2.ttf differ diff --git a/src/Calculator/Controls/EquationTextBox.cpp b/src/Calculator/Controls/EquationTextBox.cpp index 3c4f147..b9daab3 100644 --- a/src/Calculator/Controls/EquationTextBox.cpp +++ b/src/Calculator/Controls/EquationTextBox.cpp @@ -272,7 +272,7 @@ void EquationTextBox::OnRemoveButtonClicked(Object ^ sender, RoutedEventArgs ^ e IsEquationLineDisabled = false; } - TraceLogger::GetInstance()->LogGraphButtonClicked(GraphButton::RemoveFunction); + TraceLogger::GetInstance()->LogGraphButtonClicked(GraphButton::RemoveFunction, GraphButtonValue::None); VisualStateManager::GoToState(this, "Normal", true); } @@ -282,7 +282,7 @@ void EquationTextBox::OnColorChooserButtonClicked(Object ^ sender, RoutedEventAr if (ColorChooserFlyout != nullptr && m_richEditBox != nullptr) { ColorChooserFlyout->ShowAt(m_richEditBox); - TraceLogger::GetInstance()->LogGraphButtonClicked(GraphButton::StylePicker); + TraceLogger::GetInstance()->LogGraphButtonClicked(GraphButton::StylePicker, GraphButtonValue::None); } } diff --git a/src/Calculator/Resources/en-US/Resources.resw b/src/Calculator/Resources/en-US/Resources.resw index 7b5acc9..b8ddffc 100644 --- a/src/Calculator/Resources/en-US/Resources.resw +++ b/src/Calculator/Resources/en-US/Resources.resw @@ -3867,17 +3867,25 @@ ^ {Locked}This is the character that should trigger this button. Note that it is a character and not a key, so it does not come from the Windows::System::VirtualKey enum. - + Home - {Locked}This is the shortcut for the zoom reset button. + {Locked}This is the shortcut for the graph view button. - - Reset View (Ctrl + 0) - This is the tool tip automation name for the Calculator zoom reset button. + + Refresh view automatically (Ctrl + 0) + This is the tool tip automation name for the Calculator graph view button. - - Reset View - Screen reader prompt for the reset zoom button. + + Graph View + Screen reader prompt for the graph view button. + + + Automatic Best Fit + Announcement used in Graphing Calculator when button is clicked and automatic best fit is set + + + Manual Adjustment + Announcement used in Graphing Calculator when button is clicked and manual adjustment is set Zoom In (Ctrl + plus) diff --git a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml index f504900..6a2da85 100644 --- a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml +++ b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml @@ -570,7 +570,7 @@ - + @@ -596,7 +596,7 @@ Style="{ThemeResource ButtonRevealStyle}" FontFamily="{StaticResource CalculatorFontFamily}" AutomationProperties.AccessibilityView="Raw" - Content="" + Content="" IsTabStop="False" Visibility="Collapsed"> diff --git a/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml b/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml index b539770..a10fc8a 100644 --- a/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml +++ b/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml @@ -286,6 +286,79 @@ + #000000 @@ -296,6 +369,7 @@ #4F4F4F + @@ -323,7 +397,11 @@ TargetType="ToggleButton"> - + +