From 0ed876db4321ecddadc8c4b25b8c2653d4293115 Mon Sep 17 00:00:00 2001
From: Stephanie Anderl <46726333+sanderl@users.noreply.github.com>
Date: Tue, 7 Apr 2020 11:20:14 -0700
Subject: [PATCH] Added narrator announcement when a function is removed
(#1136)
---
.../Common/Automation/NarratorAnnouncement.cpp | 14 ++++++++++++--
.../Common/Automation/NarratorAnnouncement.h | 2 ++
src/Calculator/Resources/en-US/Resources.resw | 4 ++++
.../GraphingCalculator/EquationInputArea.xaml.cpp | 10 ++++++++++
4 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp
index 90e6feef..c1bdd318 100644
--- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp
+++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp
@@ -25,6 +25,7 @@ namespace CalculatorApp::Common::Automation
StringReference NoParenthesisAdded(L"NoParenthesisAdded");
StringReference GraphModeChanged(L"GraphModeChanged");
StringReference GraphViewChanged(L"GraphViewChanged");
+ StringReference FunctionRemoved(L"FunctionRemoved");
}
}
@@ -143,7 +144,7 @@ NarratorAnnouncement ^ CalculatorAnnouncement::GetNoRightParenthesisAddedAnnounc
AutomationNotificationProcessing::ImportantMostRecent);
}
-NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphModeChangedAnnouncement(Platform::String ^ announcement)
+NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphModeChangedAnnouncement(String ^ announcement)
{
return ref new NarratorAnnouncement(
announcement,
@@ -152,7 +153,7 @@ NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphModeChangedAnnouncement(P
AutomationNotificationProcessing::ImportantMostRecent);
}
-NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphViewChangedAnnouncement(Platform::String ^ announcement)
+NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphViewChangedAnnouncement(String ^ announcement)
{
return ref new NarratorAnnouncement(
announcement,
@@ -160,3 +161,12 @@ NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphViewChangedAnnouncement(P
AutomationNotificationKind::ActionCompleted,
AutomationNotificationProcessing::MostRecent);
}
+
+NarratorAnnouncement ^ CalculatorAnnouncement::GetFunctionRemovedAnnouncement(String ^ announcement)
+{
+ return ref new NarratorAnnouncement(
+ announcement,
+ CalculatorActivityIds::FunctionRemoved,
+ AutomationNotificationKind::ItemRemoved,
+ AutomationNotificationProcessing::MostRecent);
+}
diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h
index a1ba97ea..ddfa64a9 100644
--- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h
+++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h
@@ -70,5 +70,7 @@ public
static NarratorAnnouncement ^ GetGraphModeChangedAnnouncement(Platform::String ^ announcement);
static NarratorAnnouncement ^ GetGraphViewChangedAnnouncement(Platform::String ^ announcement);
+ static NarratorAnnouncement ^ GetFunctionRemovedAnnouncement(Platform::String ^ announcement);
+
};
}
diff --git a/src/Calculator/Resources/en-US/Resources.resw b/src/Calculator/Resources/en-US/Resources.resw
index 43fc75e3..f57fdd8d 100644
--- a/src/Calculator/Resources/en-US/Resources.resw
+++ b/src/Calculator/Resources/en-US/Resources.resw
@@ -4562,4 +4562,8 @@
Match app theme
This is the automation name text for the Graph settings option to set graph to match the app theme
+
+ Function removed
+ Announcement used in Graphing Calculator when a function is removed from the function list
+
diff --git a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp
index 61fb00ee..1fee4738 100644
--- a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp
+++ b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp
@@ -4,9 +4,13 @@
#include "pch.h"
#include "EquationInputArea.xaml.h"
#include "Utils/VisualTree.h"
+#include "CalcViewModel/Common/AppResourceProvider.h"
+#include "CalcViewModel/Common/Automation/NarratorAnnouncement.h"
+#include "CalcViewModel/Common/Automation/NarratorNotifier.h"
using namespace CalculatorApp;
using namespace CalculatorApp::Common;
+using namespace CalculatorApp::Common::Automation;
using namespace GraphControl;
using namespace CalculatorApp::ViewModel;
using namespace CalculatorApp::Controls;
@@ -199,6 +203,12 @@ void EquationInputArea::EquationTextBox_RemoveButtonClicked(Object ^ sender, Rou
}
Equations->RemoveAt(index);
+
+ auto narratorNotifier = ref new NarratorNotifier();
+ auto announcement = CalculatorAnnouncement::GetFunctionRemovedAnnouncement(
+ AppResourceProvider::GetInstance()->GetResourceString(L"FunctionRemovedAnnouncement"));
+ narratorNotifier->Announce(announcement);
+
int lastIndex = Equations->Size - 1;
if (Equations->Size <= 1)