// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Declaration of the NarratorNotifier class. #pragma once #include "INarratorAnnouncementHost.h" namespace CalculatorApp::Common::Automation { public ref class NarratorNotifier sealed : public Windows::UI::Xaml::DependencyObject { public: NarratorNotifier(); void Announce(NarratorAnnouncement^ announcement); property NarratorAnnouncement^ Announcement { NarratorAnnouncement^ get() { return GetAnnouncement(this); } void set(NarratorAnnouncement^ value) { SetAnnouncement(this, value); } } static void RegisterDependencyProperties(); static property Windows::UI::Xaml::DependencyProperty^ AnnouncementProperty { Windows::UI::Xaml::DependencyProperty^ get() { return s_announcementProperty; } } static NarratorAnnouncement^ GetAnnouncement(Windows::UI::Xaml::DependencyObject^ element) { return safe_cast(element->GetValue(s_announcementProperty)); } static void SetAnnouncement(Windows::UI::Xaml::DependencyObject^ element, NarratorAnnouncement^ value) { element->SetValue(s_announcementProperty, value); } private: static void OnAnnouncementChanged( _In_ Windows::UI::Xaml::DependencyObject^ dependencyObject, _In_ Windows::UI::Xaml::DependencyPropertyChangedEventArgs^ eventArgs); static Windows::UI::Xaml::DependencyProperty^ s_announcementProperty; private: INarratorAnnouncementHost^ m_announcementHost; }; }