From 0a7a3fa6fec0ab13ea176faf95656c005d81a783 Mon Sep 17 00:00:00 2001 From: Rudy Huyn Date: Sun, 24 Mar 2019 00:02:53 -0700 Subject: [PATCH] Modify how we manage Narrator with parenthesis and refactor right parenthesis --- src/CalcManager/CEngine/scicomm.cpp | 12 ++-- src/CalcManager/CalculatorManager.cpp | 40 ++++++------ src/CalcManager/CalculatorManager.h | 4 +- src/CalcManager/Header Files/CalcEngine.h | 4 +- src/CalcManager/Header Files/ICalcDisplay.h | 2 +- .../Common/Automation/NarratorNotifier.cpp | 5 +- .../Common/CalculatorDisplay.cpp | 4 +- src/CalcViewModel/Common/CalculatorDisplay.h | 2 +- .../StandardCalculatorViewModel.cpp | 65 ++++++++++--------- .../StandardCalculatorViewModel.h | 3 +- ...alculatorProgrammerRadixOperators.xaml.cpp | 10 --- .../CalculatorProgrammerRadixOperators.xaml.h | 2 - .../Views/CalculatorScientificOperators.xaml | 2 - .../CalculatorScientificOperators.xaml.cpp | 16 ----- .../CalculatorScientificOperators.xaml.h | 5 -- .../CalculatorManagerTest.cpp | 4 +- 16 files changed, 77 insertions(+), 103 deletions(-) diff --git a/src/CalcManager/CEngine/scicomm.cpp b/src/CalcManager/CEngine/scicomm.cpp index a99397da..58646ae8 100644 --- a/src/CalcManager/CEngine/scicomm.cpp +++ b/src/CalcManager/CEngine/scicomm.cpp @@ -83,7 +83,7 @@ void CCalcEngine::ClearTemporaryValues() m_bError = false; } -void CCalcEngine::ProcessCommand(WPARAM wParam) +void CCalcEngine::ProcessCommand(WPARAM wParam, bool useNarrator) { if (wParam == IDC_SET_RESULT) { @@ -91,10 +91,10 @@ void CCalcEngine::ProcessCommand(WPARAM wParam) m_bSetCalcState = true; } - ProcessCommandWorker(wParam); + ProcessCommandWorker(wParam, useNarrator); } -void CCalcEngine::ProcessCommandWorker(WPARAM wParam) +void CCalcEngine::ProcessCommandWorker(WPARAM wParam, bool useNarrator) { INT nx, ni; @@ -397,7 +397,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam) cleared for CENTR */ if (nullptr != m_pCalcDisplay) { - m_pCalcDisplay->SetParenDisplayText(L""); + m_pCalcDisplay->SetParenDisplayText(0, false); m_pCalcDisplay->SetExpressionDisplay(make_shared>>(), make_shared>>()); } @@ -440,7 +440,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam) } // automatic closing of all the parenthesis to get a meaningful result as well as ensure data integrity m_nTempCom = m_nLastCom; // Put back this last saved command to the prev state so ) can be handled properly - ProcessCommand(IDC_CLOSEP); + ProcessCommand(IDC_CLOSEP, useNarrator); m_nLastCom = m_nTempCom; // Actually this is IDC_CLOSEP m_nTempCom = (INT)wParam; // put back in the state where last op seen was IDC_CLOSEP, and current op is IDC_EQU } @@ -632,7 +632,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam) // Set the "(=xx" indicator. if (nullptr != m_pCalcDisplay) { - m_pCalcDisplay->SetParenDisplayText(m_openParenCount ? to_wstring(m_openParenCount) : L""); + m_pCalcDisplay->SetParenDisplayText(m_openParenCount >= 0 ? (unsigned int)m_openParenCount : 0, useNarrator); } if (!m_bError) diff --git a/src/CalcManager/CalculatorManager.cpp b/src/CalcManager/CalculatorManager.cpp index ddb28a6b..8cb14b01 100644 --- a/src/CalcManager/CalculatorManager.cpp +++ b/src/CalcManager/CalculatorManager.cpp @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #include "pch.h" @@ -111,9 +111,9 @@ namespace CalculationManager /// Callback from the engine /// /// string containing the parenthesis count - void CalculatorManager::SetParenDisplayText(const wstring& parenthesisCount) + void CalculatorManager::SetParenDisplayText(_In_ unsigned int parenthesisCount, bool useNarrator) { - m_displayCallback->SetParenDisplayText(parenthesisCount); + m_displayCallback->SetParenDisplayText(parenthesisCount, useNarrator); } /// @@ -216,7 +216,7 @@ namespace CalculationManager /// Handle special commands such as mode change and combination of two commands. /// /// Enum Command - void CalculatorManager::SendCommand(_In_ Command command) + void CalculatorManager::SendCommand(_In_ Command command, bool useNarrator) { // When the expression line is cleared, we save the current state, which includes, // primary display, memory, and degree mode @@ -235,7 +235,7 @@ namespace CalculationManager this->SetProgrammerMode(); break; default: - m_currentCalculatorEngine->ProcessCommand(static_cast(command)); + m_currentCalculatorEngine->ProcessCommand(static_cast(command), useNarrator); } m_savedCommands.clear(); // Clear the previous command history @@ -263,38 +263,38 @@ namespace CalculationManager switch (command) { case Command::CommandASIN: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandSIN)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandSIN), useNarrator); break; case Command::CommandACOS: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandCOS)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandCOS), useNarrator); break; case Command::CommandATAN: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandTAN)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandTAN), useNarrator); break; case Command::CommandPOWE: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandLN)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandLN), useNarrator); break; case Command::CommandASINH: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandSINH)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandSINH), useNarrator); break; case Command::CommandACOSH: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandCOSH)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandCOSH), useNarrator); break; case Command::CommandATANH: - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV)); - m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandTANH)); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandINV), useNarrator); + m_currentCalculatorEngine->ProcessCommand(static_cast(Command::CommandTANH), useNarrator); break; case Command::CommandFE: m_isExponentialFormat = !m_isExponentialFormat; [[fallthrough]]; default: - m_currentCalculatorEngine->ProcessCommand(static_cast(command)); + m_currentCalculatorEngine->ProcessCommand(static_cast(command), useNarrator); break; } } diff --git a/src/CalcManager/CalculatorManager.h b/src/CalcManager/CalculatorManager.h index 0b9986b0..edd95d8c 100644 --- a/src/CalcManager/CalculatorManager.h +++ b/src/CalcManager/CalculatorManager.h @@ -94,7 +94,7 @@ namespace CalculationManager void SetExpressionDisplay(_Inout_ std::shared_ptr>> const &tokens, _Inout_ std::shared_ptr>> const &commands) override; void SetMemorizedNumbers(_In_ const std::vector& memorizedNumbers) override; void OnHistoryItemAdded(_In_ unsigned int addedItemIndex) override; - void SetParenDisplayText(const std::wstring& parenthesisCount) override; + void SetParenDisplayText(_In_ unsigned int parenthesisCount, bool useNarrator=true) override; void OnNoRightParenAdded() override; void DisplayPasteError(); void MaxDigitsReached() override; @@ -109,7 +109,7 @@ namespace CalculationManager void SetStandardMode(); void SetScientificMode(); void SetProgrammerMode(); - void SendCommand(_In_ Command command); + void SendCommand(_In_ Command command, bool useNarrator=true); std::vector SerializeCommands(); void DeSerializeCommands(_In_ const std::vector& serializedData); void SerializeMemory(); diff --git a/src/CalcManager/Header Files/CalcEngine.h b/src/CalcManager/Header Files/CalcEngine.h index 3e151e2a..fe11dab2 100644 --- a/src/CalcManager/Header Files/CalcEngine.h +++ b/src/CalcManager/Header Files/CalcEngine.h @@ -52,7 +52,7 @@ namespace CalculatorUnitTests class CCalcEngine { public: CCalcEngine(bool fPrecedence, bool fIntegerMode, CalculationManager::IResourceProvider* const pResourceProvider, __in_opt ICalcDisplay *pCalcDisplay, __in_opt std::shared_ptr pHistoryDisplay); - void ProcessCommand(WPARAM wID); + void ProcessCommand(WPARAM wID, bool useNarrator=true); void DisplayError (DWORD nError); std::unique_ptr PersistedMemObject(); void PersistedMemObject(CalcEngine::Rational const& memObject); @@ -127,7 +127,7 @@ private: wchar_t m_groupSeparator; private: - void ProcessCommandWorker(WPARAM wParam); + void ProcessCommandWorker(WPARAM wParam, bool useNarrator = true); void HandleErrorCommand(WPARAM idc); void HandleMaxDigitsReached(); void DisplayNum(void); diff --git a/src/CalcManager/Header Files/ICalcDisplay.h b/src/CalcManager/Header Files/ICalcDisplay.h index 2ba57e65..06eed931 100644 --- a/src/CalcManager/Header Files/ICalcDisplay.h +++ b/src/CalcManager/Header Files/ICalcDisplay.h @@ -12,7 +12,7 @@ public: virtual void SetPrimaryDisplay(const std::wstring& pszText, bool isError) = 0; virtual void SetIsInError(bool isInError) = 0; virtual void SetExpressionDisplay(_Inout_ std::shared_ptr>> const &tokens, _Inout_ std::shared_ptr>> const &commands) = 0; - virtual void SetParenDisplayText(const std::wstring& pszText) = 0; + virtual void SetParenDisplayText(_In_ unsigned int count, _In_ bool useNarrator) = 0; virtual void OnNoRightParenAdded() = 0; virtual void MaxDigitsReached() = 0; // not an error but still need to inform UI layer. virtual void BinaryOperatorReceived() = 0; diff --git a/src/CalcViewModel/Common/Automation/NarratorNotifier.cpp b/src/CalcViewModel/Common/Automation/NarratorNotifier.cpp index 4dc48074..6edcc96d 100644 --- a/src/CalcViewModel/Common/Automation/NarratorNotifier.cpp +++ b/src/CalcViewModel/Common/Automation/NarratorNotifier.cpp @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Implementation of the NarratorNotifier class. @@ -6,7 +6,7 @@ #include "pch.h" #include "NarratorNotifier.h" #include "NarratorAnnouncementHostFactory.h" - +#include using namespace CalculatorApp::Common::Automation; using namespace Platform; using namespace Windows::UI::Xaml; @@ -26,6 +26,7 @@ void NarratorNotifier::Announce(NarratorAnnouncement^ announcement) && m_announcementHost != nullptr) { m_announcementHost->Announce(announcement); + OutputDebugString(announcement->Announcement->Data()); } } diff --git a/src/CalcViewModel/Common/CalculatorDisplay.cpp b/src/CalcViewModel/Common/CalculatorDisplay.cpp index cd531e01..d7090eee 100644 --- a/src/CalcViewModel/Common/CalculatorDisplay.cpp +++ b/src/CalcViewModel/Common/CalculatorDisplay.cpp @@ -36,13 +36,13 @@ void CalculatorDisplay::SetPrimaryDisplay(_In_ const wstring& displayStringValue } } -void CalculatorDisplay::SetParenDisplayText(_In_ const std::wstring& parenthesisCount) +void CalculatorDisplay::SetParenDisplayText(_In_ unsigned int parenthesisCount, _In_ bool useNarrator) { if (m_callbackReference != nullptr) { if (auto calcVM = m_callbackReference.Resolve()) { - calcVM->SetParenthesisCount(parenthesisCount); + calcVM->SetParenthesisCount(parenthesisCount, useNarrator); } } } diff --git a/src/CalcViewModel/Common/CalculatorDisplay.h b/src/CalcViewModel/Common/CalculatorDisplay.h index 9ff06a6e..1a4de9a8 100644 --- a/src/CalcViewModel/Common/CalculatorDisplay.h +++ b/src/CalcViewModel/Common/CalculatorDisplay.h @@ -21,7 +21,7 @@ namespace CalculatorApp void SetExpressionDisplay(_Inout_ std::shared_ptr>> const &tokens, _Inout_ std::shared_ptr>> const &commands) override; void SetMemorizedNumbers(_In_ const std::vector& memorizedNumbers) override; void OnHistoryItemAdded(_In_ unsigned int addedItemIndex) override; - void SetParenDisplayText(_In_ const std::wstring& parenthesisCount) override; + void SetParenDisplayText(_In_ unsigned int parenthesisCount, _In_ bool useNarrator=true) override; void OnNoRightParenAdded() override; void MaxDigitsReached() override; void BinaryOperatorReceived() override; diff --git a/src/CalcViewModel/StandardCalculatorViewModel.cpp b/src/CalcViewModel/StandardCalculatorViewModel.cpp index c01c4789..0724a2b8 100644 --- a/src/CalcViewModel/StandardCalculatorViewModel.cpp +++ b/src/CalcViewModel/StandardCalculatorViewModel.cpp @@ -91,7 +91,8 @@ StandardCalculatorViewModel::StandardCalculatorViewModel() : m_localizedMemoryItemClearedAutomationFormat(nullptr), m_localizedMemoryCleared(nullptr), m_localizedOpenParenthesisCountChangedAutomationFormat(nullptr), - m_localizedNoRightParenthesisAddedFormat(nullptr) + m_localizedNoRightParenthesisAddedFormat(nullptr), + m_parenthesisCount(0) { WeakReference calculatorViewModel(this); m_calculatorDisplay.SetCallback(calculatorViewModel); @@ -216,13 +217,19 @@ void StandardCalculatorViewModel::DisplayPasteError() m_standardCalculatorManager.DisplayPasteError(); } -void StandardCalculatorViewModel::SetParenthesisCount(_In_ const wstring& parenthesisCount) +void StandardCalculatorViewModel::SetParenthesisCount(_In_ unsigned int parenthesisCount, _In_ bool useNarrator) { if (IsProgrammer || IsScientific) { - OpenParenthesisCount = ref new String(parenthesisCount.c_str()); + OpenParenthesisCount = ref new String(parenthesisCount == 0 ? L"" : to_wstring(parenthesisCount).c_str()); RaisePropertyChanged("LeftParenthesisAutomationName"); + if (useNarrator && m_parenthesisCount > parenthesisCount) + { + //only narrate the number of parenthesis when the counter decreases. + SetOpenParenthesisCountNarratorAnnouncement(); + } } + m_parenthesisCount = parenthesisCount; } void StandardCalculatorViewModel::SetOpenParenthesisCountNarratorAnnouncement() @@ -859,7 +866,7 @@ void StandardCalculatorViewModel::OnPaste(String^ pastedString, ViewMode mode) { sentEquals = (mappedNumOp == NumbersAndOperatorsEnum::Equals); Command cmdenum = ConvertToOperatorsEnum(mappedNumOp); - m_standardCalculatorManager.SendCommand(cmdenum); + m_standardCalculatorManager.SendCommand(cmdenum, false); // The CalcEngine state machine won't allow the negate command to be sent before any // other digits, so instead a flag is set and the command is sent after the first appropriate @@ -869,7 +876,7 @@ void StandardCalculatorViewModel::OnPaste(String^ pastedString, ViewMode mode) if (canSendNegate) { Command cmdNegate = ConvertToOperatorsEnum(NumbersAndOperatorsEnum::Negate); - m_standardCalculatorManager.SendCommand(cmdNegate); + m_standardCalculatorManager.SendCommand(cmdNegate, false); } // Can't send negate on a leading zero, so wait until the appropriate time to send it. @@ -888,7 +895,7 @@ void StandardCalculatorViewModel::OnPaste(String^ pastedString, ViewMode mode) if (!(MapCharacterToButtonId(*it, canSendNegate) == NumbersAndOperatorsEnum::Add)) { Command cmdNegate = ConvertToOperatorsEnum(NumbersAndOperatorsEnum::Negate); - m_standardCalculatorManager.SendCommand(cmdNegate); + m_standardCalculatorManager.SendCommand(cmdNegate, false); } } @@ -1422,29 +1429,29 @@ void StandardCalculatorViewModel::SaveEditedCommand(_In_ unsigned int tokenPosit switch (nOpCode) { - case static_cast(Command::CommandASIN) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandSIN), true, angleType); - break; - case static_cast(Command::CommandACOS) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandCOS), true, angleType); - break; - case static_cast(Command::CommandATAN) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandTAN), true, angleType); - break; - case static_cast(Command::CommandASINH) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandSINH), true, angleType); - break; - case static_cast(Command::CommandACOSH) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandCOSH), true, angleType); - break; - case static_cast(Command::CommandATANH) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandTANH), true, angleType); - break; - case static_cast(Command::CommandPOWE) : - updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandLN), true, angleType); - break; - default: - updatedToken = CCalcEngine::OpCodeToUnaryString(nOpCode, false, angleType); + case static_cast(Command::CommandASIN) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandSIN), true, angleType); + break; + case static_cast(Command::CommandACOS) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandCOS), true, angleType); + break; + case static_cast(Command::CommandATAN) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandTAN), true, angleType); + break; + case static_cast(Command::CommandASINH) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandSINH), true, angleType); + break; + case static_cast(Command::CommandACOSH) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandCOSH), true, angleType); + break; + case static_cast(Command::CommandATANH) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandTANH), true, angleType); + break; + case static_cast(Command::CommandPOWE) : + updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast(Command::CommandLN), true, angleType); + break; + default: + updatedToken = CCalcEngine::OpCodeToUnaryString(nOpCode, false, angleType); } if ((token.first.length() > 0) && (token.first[token.first.length() - 1] == L'(')) { diff --git a/src/CalcViewModel/StandardCalculatorViewModel.h b/src/CalcViewModel/StandardCalculatorViewModel.h index ba6dc82b..2587c7c8 100644 --- a/src/CalcViewModel/StandardCalculatorViewModel.h +++ b/src/CalcViewModel/StandardCalculatorViewModel.h @@ -283,7 +283,7 @@ namespace CalculatorApp void SetTokens(_Inout_ std::shared_ptr>> const &tokens); void SetExpressionDisplay(_Inout_ std::shared_ptr>> const &tokens, _Inout_ std::shared_ptr>> const &commands); void SetHistoryExpressionDisplay(_Inout_ std::shared_ptr>> const &tokens, _Inout_ std::shared_ptr>> const &commands); - void SetParenthesisCount(_In_ const std::wstring& parenthesisCount); + void SetParenthesisCount(_In_ unsigned int parenthesisCount, _In_ bool useNarrator=true); void SetOpenParenthesisCountNarratorAnnouncement(); void OnNoRightParenAdded(); void SetNoParenAddedNarratorAnnouncement(); @@ -352,6 +352,7 @@ namespace CalculatorApp bool m_operandUpdated; bool m_completeTextSelection; bool m_isLastOperationHistoryLoad; + unsigned int m_parenthesisCount; Platform::String^ m_selectedExpressionLastData; Common::DisplayExpressionToken^ m_selectedExpressionToken; Platform::String^ m_leftParenthesisAutomationFormat; diff --git a/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.cpp b/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.cpp index 5ef6014a..8fb1f954 100644 --- a/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.cpp +++ b/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.cpp @@ -35,12 +35,10 @@ CalculatorProgrammerRadixOperators::CalculatorProgrammerRadixOperators() : void CalculatorProgrammerRadixOperators::OnLoaded(Object^, RoutedEventArgs^) { m_progModeRadixChangeToken = Model->ProgModeRadixChange += ref new ProgModeRadixChangeHandler(this, &CalculatorProgrammerRadixOperators::ProgModeRadixChange); - m_propertyChangedToken = Model->PropertyChanged += ref new PropertyChangedEventHandler(this, &CalculatorProgrammerRadixOperators::OnViewModelPropertyChanged); } void CalculatorProgrammerRadixOperators::OnUnloaded(Object^, RoutedEventArgs^) { Model->ProgModeRadixChange -= m_progModeRadixChangeToken; - Model->PropertyChanged -= m_propertyChangedToken; } void CalculatorProgrammerRadixOperators::Shift_Clicked(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) @@ -99,11 +97,3 @@ void CalculatorProgrammerRadixOperators::IsErrorVisualState::set(bool value) NumberPad->IsErrorVisualState = m_isErrorVisualState; } } - -void CalculatorProgrammerRadixOperators::OnViewModelPropertyChanged(Object^ sender, PropertyChangedEventArgs^ e) -{ - if (e->PropertyName == StandardCalculatorViewModel::OpenParenthesisCountPropertyName && closeParenthesisButton->FocusState != ::FocusState::Unfocused) - { - Model->SetOpenParenthesisCountNarratorAnnouncement(); - } -} diff --git a/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.h b/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.h index 7dd819d0..eae7e637 100644 --- a/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.h +++ b/src/Calculator/Views/CalculatorProgrammerRadixOperators.xaml.h @@ -35,10 +35,8 @@ namespace CalculatorApp void OnLoaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void OnUnloaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void ProgModeRadixChange(); - void OnViewModelPropertyChanged(Platform::Object^ sender, Windows::UI::Xaml::Data::PropertyChangedEventArgs ^ e); bool m_isErrorVisualState; Windows::Foundation::EventRegistrationToken m_progModeRadixChangeToken; - Windows::Foundation::EventRegistrationToken m_propertyChangedToken; }; } diff --git a/src/Calculator/Views/CalculatorScientificOperators.xaml b/src/Calculator/Views/CalculatorScientificOperators.xaml index 3db97aa9..efc5a5e3 100644 --- a/src/Calculator/Views/CalculatorScientificOperators.xaml +++ b/src/Calculator/Views/CalculatorScientificOperators.xaml @@ -11,8 +11,6 @@ x:Name="ControlRoot" d:DesignHeight="400" d:DesignWidth="315" - Loaded="OnLoaded" - Unloaded="OnUnloaded" mc:Ignorable="d"> diff --git a/src/Calculator/Views/CalculatorScientificOperators.xaml.cpp b/src/Calculator/Views/CalculatorScientificOperators.xaml.cpp index ee31a1ae..4a449ac7 100644 --- a/src/Calculator/Views/CalculatorScientificOperators.xaml.cpp +++ b/src/Calculator/Views/CalculatorScientificOperators.xaml.cpp @@ -38,15 +38,6 @@ CalculatorScientificOperators::CalculatorScientificOperators() Common::KeyboardShortcutManager::ShiftButtonChecked(false); } -void CalculatorScientificOperators::OnLoaded(Object^, RoutedEventArgs^) -{ - m_propertyChangedToken = Model->PropertyChanged += ref new PropertyChangedEventHandler(this, &CalculatorScientificOperators::OnViewModelPropertyChanged); -} -void CalculatorScientificOperators::OnUnloaded(Object^, RoutedEventArgs^) -{ - Model->PropertyChanged -= m_propertyChangedToken; -} - void CalculatorScientificOperators::ShortLayout_Completed(_In_ Platform::Object^ /*sender*/, _In_ Platform::Object^ /*e*/) { IsWideLayout = false; @@ -107,10 +98,3 @@ void CalculatorScientificOperators::SetOperatorRowVisibility() InvRow2->Visibility = invRowVis; } -void CalculatorScientificOperators::OnViewModelPropertyChanged(Object^ sender, PropertyChangedEventArgs^ e) -{ - if (e->PropertyName == StandardCalculatorViewModel::OpenParenthesisCountPropertyName && closeParenthesisButton->FocusState != ::FocusState::Unfocused) - { - Model->SetOpenParenthesisCountNarratorAnnouncement(); - } -} diff --git a/src/Calculator/Views/CalculatorScientificOperators.xaml.h b/src/Calculator/Views/CalculatorScientificOperators.xaml.h index ec10191c..93718eed 100644 --- a/src/Calculator/Views/CalculatorScientificOperators.xaml.h +++ b/src/Calculator/Views/CalculatorScientificOperators.xaml.h @@ -41,10 +41,5 @@ namespace CalculatorApp void shiftButton_Check(_In_ Platform::Object^ sender, _In_ Windows::UI::Xaml::RoutedEventArgs^ e); void shiftButton_IsEnabledChanged(_In_ Platform::Object^ sender, _In_ Windows::UI::Xaml::DependencyPropertyChangedEventArgs^ e); void SetOperatorRowVisibility(); - void OnViewModelPropertyChanged(Platform::Object^ sender, Windows::UI::Xaml::Data::PropertyChangedEventArgs ^ e); - void OnLoaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void OnUnloaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - - Windows::Foundation::EventRegistrationToken m_propertyChangedToken; }; } diff --git a/src/CalculatorUnitTests/CalculatorManagerTest.cpp b/src/CalculatorUnitTests/CalculatorManagerTest.cpp index 14939d34..4a514edb 100644 --- a/src/CalculatorUnitTests/CalculatorManagerTest.cpp +++ b/src/CalculatorUnitTests/CalculatorManagerTest.cpp @@ -57,7 +57,7 @@ namespace CalculatorManagerTest m_memorizedNumberStrings = numbers; } - void SetParenDisplayText(const std::wstring& parenthesisCount) override + void SetParenDisplayText(unsigned int parenthesisCount, bool /*useNarrator*/) override { m_parenDisplay = parenthesisCount; } @@ -115,7 +115,7 @@ namespace CalculatorManagerTest private: wstring m_primaryDisplay; wstring m_expression; - wstring m_parenDisplay; + unsigned int m_parenDisplay; bool m_isError; vector m_memorizedNumberStrings; int m_maxDigitsCalledCount;