From 3a8fcaa18a2a86ae4612fd9cab5b209cf7102217 Mon Sep 17 00:00:00 2001 From: Stephanie Anderl <46726333+sanderl@users.noreply.github.com> Date: Tue, 14 Apr 2020 12:37:23 -0700 Subject: [PATCH] Update Icons Implement the Graph View Button (#1149) * Update icon file * function analysis and negate button icons updated * Replace zoom reset button with graph view button * Fixed issue where the window settings did not update after panning/zooming * Updated icon styling and added logic for updating the graph view button state when user manipulates the graph and when all equations are removed * updated LogGraphButton clicked to have an enum for the button value instead of a string * Updated the logic for how to set the IsManualAdjustment, ensured graphsettings now update IsManualAdjustment when changed --- .../Automation/NarratorAnnouncement.cpp | 10 ++ .../Common/Automation/NarratorAnnouncement.h | 1 + src/CalcViewModel/Common/TraceLogger.cpp | 3 +- src/CalcViewModel/Common/TraceLogger.h | 11 +- .../GraphingSettingsViewModel.cpp | 8 +- src/Calculator/Assets/CalcMDL2.ttf | Bin 27004 -> 27180 bytes src/Calculator/Controls/EquationTextBox.cpp | 4 +- src/Calculator/Resources/en-US/Resources.resw | 24 ++-- .../GraphingCalculator/EquationInputArea.xaml | 4 +- .../GraphingCalculator.xaml | 122 ++++++++++++++++-- .../GraphingCalculator.xaml.cpp | 54 ++++++-- .../GraphingCalculator.xaml.h | 6 +- .../GraphingCalculator/GraphingNumPad.xaml | 2 +- src/GraphControl/Control/Grapher.cpp | 18 +-- src/GraphControl/Control/Grapher.h | 13 +- 15 files changed, 220 insertions(+), 60 deletions(-) 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 fda4992768291b63784fc58cbb7c62fbfd252ead..9ee5deb05d2cee53bc4f7475a4422d4be275f962 100644 GIT binary patch delta 794 zcmYjPUr1AN6#jnq?oKyzdR@8)Q#WT^DzZ?g1g0YlE0j$Gb=a0;&OgKD%25*nuM|Se zEZ9pBY3PGRYQpFxleCwj7e^LU6jn;oQ)UUF>(*Hm`0%^mIp_PnbI!fL8-KwjUa~$g z0BMlHBVapupy))cECMV<)s}{;+NOTjm9qd}1qdHJes@6a>68FX0l<}e&IgT}H=6rE z>UGlZZ40#f6m&y|$9urHa&RoB0N^Pig0QO}msMl}e4$!)Q=fSJOw$ zlj)<;o#eqxFQ(?i^bCW!khi2~l$o+J#GN`W$y}NtrgM_sWHGTHQ+LNFM;vm!G&(Ju znjV$vWyi?m_}!`C7Oj+wMI}%9s;n#Kn0IMS8DMGbODv`sly3vd+LAZM-ZLE&*~i5= z{RH5n6V10+Bjc=`RhSdzpr;jza=A>JYR)g@EF~433eK_K>gwJx=RXwYwk3ayfSPj3Se$hCMvv^UZ|q|51T$u(Q0pbI@iF zCos&}Imn8*fSQu4{VtwfZ#K_$^Add%6+v$E*( LmYM_@TD`&_aH#6c delta 657 zcmXAnTSydP6vzMH471~`?y9V|-kWtZ*TqZewu_;%L_*|s($u_fW&`SAwT29OBN_O~5v=$Pugehy&$0JlCEl9h@B?Kc5I1Q^fYg|H}m5uO8< z8CvfiR)V4U+_&36Vk^DlR8XE!kbrDpRG~a6ICgRPQ}x|Zz#0Y`*G2+zbSU9R=L-ts z)Vw1!W1mWXN1HuV?;8n)BM+9HeN=y@Has>yDEE28m2}_&>`Ra;0*pb6mh z&a!IwuT78rF_BagIo3;ZiC?=ymI${Bm8jYgw$_xsMvJ=P2ZtOQSs-qZjhC@Gp*N-r z-LY%u%eEx?)ZNM;e9o@O#&p_SuJo5Zryum2|41({|{J8k6c=Fj)KPN2`))?H1m z)Dx5U+q1mIxd+|Z?)>Z|(Gx8aGg7%H3u(`iQX0bdI!Dnj#TYT*EOR3=}}qY)h@~PhFcj5aQ^@tZ>cf> 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"> - + +