// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #include "CalcViewModel/Common/Utils.h" #include "CalcViewModel/Common/CalculatorButtonUser.h" namespace CalculatorApp { namespace Controls { public ref class CalculatorButton sealed : Windows::UI::Xaml::Controls::Button { public: CalculatorButton(); DEPENDENCY_PROPERTY_OWNER(CalculatorButton); DEPENDENCY_PROPERTY_WITH_CALLBACK(NumbersAndOperatorsEnum, ButtonId); DEPENDENCY_PROPERTY_WITH_CALLBACK(Platform::String ^, AuditoryFeedback); DEPENDENCY_PROPERTY(Windows::UI::Xaml::Media::Brush ^, HoverBackground); DEPENDENCY_PROPERTY(Windows::UI::Xaml::Media::Brush ^, HoverForeground); DEPENDENCY_PROPERTY(Windows::UI::Xaml::Media::Brush ^, PressBackground); DEPENDENCY_PROPERTY(Windows::UI::Xaml::Media::Brush ^, PressForeground); protected: virtual void OnKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs ^ e) override; virtual void OnKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs ^ e) override; private: void OnButtonIdPropertyChanged(NumbersAndOperatorsEnum oldValue, NumbersAndOperatorsEnum newValue); void OnAuditoryFeedbackPropertyChanged(Platform::String ^ oldValue, Platform::String ^ newValue); }; } }