Handle focus for clear and clearentry buttons (#896)
This commit is contained in:
		@@ -475,6 +475,7 @@
 | 
			
		||||
                                       AutomationProperties.AutomationId="clearButton"
 | 
			
		||||
                                       ButtonId="Clear"
 | 
			
		||||
                                       Content="C"
 | 
			
		||||
                                       LostFocus="ClearButton_LostFocus"
 | 
			
		||||
                                       Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
 | 
			
		||||
 | 
			
		||||
            <controls:CalculatorButton x:Name="ClearEntryButton"
 | 
			
		||||
@@ -484,6 +485,7 @@
 | 
			
		||||
                                       AutomationProperties.AutomationId="clearEntryButton"
 | 
			
		||||
                                       ButtonId="ClearEntry"
 | 
			
		||||
                                       Content="CE"
 | 
			
		||||
                                       LostFocus="ClearEntryButton_LostFocus"
 | 
			
		||||
                                       Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
 | 
			
		||||
 | 
			
		||||
            <controls:CalculatorButton x:Name="BackSpaceButton"
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,8 @@ void CalculatorProgrammerRadixOperators::BitshiftFlyout_Checked(Platform::Object
 | 
			
		||||
        FindName("RshLogicalButton");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Since arithmeticShiftButton defaults to IsChecked = true, this event an fire before we can load the deferred loaded controls. If that is the case, just return and do nothing.
 | 
			
		||||
    // Since arithmeticShiftButton defaults to IsChecked = true, this event an fire before we can load the deferred loaded controls. If that is the case, just
 | 
			
		||||
    // return and do nothing.
 | 
			
		||||
    if (RolButton == nullptr || RorButton == nullptr || RolCarryButton == nullptr || RorCarryButton == nullptr || LshLogicalButton == nullptr
 | 
			
		||||
        || RshLogicalButton == nullptr)
 | 
			
		||||
    {
 | 
			
		||||
@@ -61,7 +62,7 @@ void CalculatorProgrammerRadixOperators::BitshiftFlyout_Checked(Platform::Object
 | 
			
		||||
 | 
			
		||||
    CollapseBitshiftButtons();
 | 
			
		||||
 | 
			
		||||
    auto radioButton = static_cast<RadioButton^>(sender);
 | 
			
		||||
    auto radioButton = static_cast<RadioButton ^>(sender);
 | 
			
		||||
 | 
			
		||||
    if (radioButton == ArithmeticShiftButton)
 | 
			
		||||
    {
 | 
			
		||||
@@ -142,3 +143,19 @@ void CalculatorProgrammerRadixOperators::CalculatorProgrammerRadixOperators::Ope
 | 
			
		||||
{
 | 
			
		||||
    Model->SetOpenParenthesisCountNarratorAnnouncement();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CalculatorProgrammerRadixOperators::ClearEntryButton_LostFocus(Object ^ sender, RoutedEventArgs ^ e)
 | 
			
		||||
{
 | 
			
		||||
    if (ClearEntryButton->Visibility == ::Visibility::Collapsed && ClearButton->Visibility == ::Visibility::Visible)
 | 
			
		||||
    {
 | 
			
		||||
        ClearButton->Focus(::FocusState::Programmatic);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CalculatorProgrammerRadixOperators::ClearButton_LostFocus(Object ^ sender, RoutedEventArgs ^ e)
 | 
			
		||||
{
 | 
			
		||||
    if (ClearEntryButton->Visibility == ::Visibility::Visible && ClearButton->Visibility == ::Visibility::Collapsed)
 | 
			
		||||
    {
 | 
			
		||||
        ClearEntryButton->Focus(::FocusState::Programmatic);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,5 +39,7 @@ namespace CalculatorApp
 | 
			
		||||
 | 
			
		||||
        bool m_isErrorVisualState;
 | 
			
		||||
        void OpenParenthesisButton_GotFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
 | 
			
		||||
        void ClearEntryButton_LostFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
 | 
			
		||||
        void ClearButton_LostFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -898,7 +898,7 @@
 | 
			
		||||
                <ColumnDefinition/>
 | 
			
		||||
                <ColumnDefinition/>
 | 
			
		||||
            </Grid.ColumnDefinitions>
 | 
			
		||||
            <controls:CalculatorButton Name="ClearEntryButton"
 | 
			
		||||
            <controls:CalculatorButton x:Name="ClearEntryButton"
 | 
			
		||||
                                       x:Uid="clearEntryButton"
 | 
			
		||||
                                       Grid.Column="1"
 | 
			
		||||
                                       Style="{StaticResource OperatorButtonStyle}"
 | 
			
		||||
@@ -906,6 +906,7 @@
 | 
			
		||||
                                       AutomationProperties.AutomationId="clearEntryButton"
 | 
			
		||||
                                       ButtonId="ClearEntry"
 | 
			
		||||
                                       Content="CE"
 | 
			
		||||
                                       LostFocus="ClearEntryButton_LostFocus"
 | 
			
		||||
                                       Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
 | 
			
		||||
 | 
			
		||||
            <controls:CalculatorButton x:Name="ClearButton"
 | 
			
		||||
@@ -916,6 +917,7 @@
 | 
			
		||||
                                       AutomationProperties.AutomationId="clearButton"
 | 
			
		||||
                                       ButtonId="Clear"
 | 
			
		||||
                                       Content="C"
 | 
			
		||||
                                       LostFocus="ClearButton_LostFocus"
 | 
			
		||||
                                       Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
 | 
			
		||||
 | 
			
		||||
            <controls:CalculatorButton x:Name="BackSpaceButton"
 | 
			
		||||
 
 | 
			
		||||
@@ -140,3 +140,19 @@ String ^ CalculatorScientificOperators::ParenthesisCountToString(unsigned int co
 | 
			
		||||
{
 | 
			
		||||
    return (count == 0) ? ref new String() : ref new String(to_wstring(count).data());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CalculatorScientificOperators::ClearEntryButton_LostFocus(Object ^ sender, RoutedEventArgs ^ e)
 | 
			
		||||
{
 | 
			
		||||
    if (ClearEntryButton->Visibility == ::Visibility::Collapsed && ClearButton->Visibility == ::Visibility::Visible)
 | 
			
		||||
    {
 | 
			
		||||
        ClearButton->Focus(::FocusState::Programmatic);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CalculatorScientificOperators::ClearButton_LostFocus(Object ^ sender, RoutedEventArgs ^ e)
 | 
			
		||||
{
 | 
			
		||||
    if (ClearEntryButton->Visibility == ::Visibility::Visible && ClearButton->Visibility == ::Visibility::Collapsed)
 | 
			
		||||
    {
 | 
			
		||||
        ClearEntryButton->Focus(::FocusState::Programmatic);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -43,5 +43,7 @@ namespace CalculatorApp
 | 
			
		||||
        void ShiftButton_IsEnabledChanged(_In_ Platform::Object ^ sender, _In_ Windows::UI::Xaml::DependencyPropertyChangedEventArgs ^ e);
 | 
			
		||||
        void SetOperatorRowVisibility();
 | 
			
		||||
        void SetTrigRowVisibility();
 | 
			
		||||
        void ClearEntryButton_LostFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
 | 
			
		||||
        void ClearButton_LostFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user