diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp index 73d92a5..18f4df6 100644 --- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp +++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp @@ -27,6 +27,7 @@ namespace CalculatorApp::Common::Automation StringReference GraphViewChanged(L"GraphViewChanged"); StringReference FunctionRemoved(L"FunctionRemoved"); StringReference GraphViewBestFitChanged(L"GraphViewBestFitChanged"); + StringReference AlwaysOnTop(L"AlwaysOnTop"); } } @@ -180,3 +181,12 @@ NarratorAnnouncement ^ CalculatorAnnouncement::GetGraphViewBestFitChangedAnnounc AutomationNotificationKind::ActionCompleted, AutomationNotificationProcessing::MostRecent); } + +NarratorAnnouncement ^ CalculatorAnnouncement::GetAlwaysOnTopChangedAnnouncement(String ^ announcement) +{ + return ref new NarratorAnnouncement( + announcement, + CalculatorActivityIds::AlwaysOnTop, + AutomationNotificationKind::ActionCompleted, + AutomationNotificationProcessing::ImportantMostRecent); +} diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h index b378e52..7b93401 100644 --- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h +++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h @@ -73,5 +73,7 @@ public static NarratorAnnouncement ^ GetFunctionRemovedAnnouncement(Platform::String ^ announcement); + static NarratorAnnouncement ^ GetAlwaysOnTopChangedAnnouncement(Platform::String ^ announcement); + }; } diff --git a/src/CalcViewModel/StandardCalculatorViewModel.cpp b/src/CalcViewModel/StandardCalculatorViewModel.cpp index 38124e4..b68e010 100644 --- a/src/CalcViewModel/StandardCalculatorViewModel.cpp +++ b/src/CalcViewModel/StandardCalculatorViewModel.cpp @@ -41,6 +41,8 @@ namespace StringReference DisplayValuePropertyName(L"DisplayValue"); StringReference CalculationResultAutomationNamePropertyName(L"CalculationResultAutomationName"); StringReference IsBitFlipCheckedPropertyName(L"IsBitFlipChecked"); + StringReference CalcAlwaysOnTop(L"CalcAlwaysOnTop"); + StringReference CalcBackToFullView(L"CalcBackToFullView"); } namespace CalculatorResourceKeys @@ -1162,6 +1164,19 @@ void StandardCalculatorViewModel::OnPropertyChanged(String ^ propertyname) TraceLogger::GetInstance()->UpdateButtonUsage( IsBitFlipChecked ? NumbersAndOperatorsEnum::BitflipButton : NumbersAndOperatorsEnum::FullKeypadButton, ViewMode::Programmer); } + else if (propertyname == IsAlwaysOnTopPropertyName) + { + String ^ announcement; + if (IsAlwaysOnTop) + { + announcement = AppResourceProvider::GetInstance()->GetResourceString(CalcAlwaysOnTop); + } + else + { + announcement = AppResourceProvider::GetInstance()->GetResourceString(CalcBackToFullView); + } + Announcement = CalculatorAnnouncement::GetAlwaysOnTopChangedAnnouncement(announcement); + } } void StandardCalculatorViewModel::SetCalculatorType(ViewMode targetState) diff --git a/src/Calculator/Resources/en-US/Resources.resw b/src/Calculator/Resources/en-US/Resources.resw index 308b59d..473fa13 100644 --- a/src/Calculator/Resources/en-US/Resources.resw +++ b/src/Calculator/Resources/en-US/Resources.resw @@ -4715,4 +4715,12 @@ Memory list Automation name for the group of controls for memory list. + + Calculator always on top + Announcement to indicate calculator window is always shown on top. + + + Calculator back to full view + Announcement to indicate calculator window is now back to full view. +