Modify how we manage the visibility of the history button (#821)

* Modify how we manage the visibility of the history button

* rename function
This commit is contained in:
Rudy Huyn 2019-11-22 16:22:53 -08:00 committed by marcomontoya
parent 6e2b82c8bf
commit 25d7a46ac1
3 changed files with 29 additions and 24 deletions

View File

@ -454,7 +454,6 @@
<Setter Target="M5.MaxWidth" Value="80"/> <Setter Target="M5.MaxWidth" Value="80"/>
<Setter Target="MemButton.(Grid.Column)" Value="5"/> <Setter Target="MemButton.(Grid.Column)" Value="5"/>
<Setter Target="MemoryButton.(Grid.Column)" Value="6"/> <Setter Target="MemoryButton.(Grid.Column)" Value="6"/>
<Setter Target="HistoryButton.Visibility" Value="Collapsed"/>
</VisualState.Setters> </VisualState.Setters>
<Storyboard Completed="OnModeVisualStateCompleted"/> <Storyboard Completed="OnModeVisualStateCompleted"/>
</VisualState> </VisualState>
@ -491,7 +490,6 @@
<Setter Target="ColumnMain.Width" Value="320*"/> <Setter Target="ColumnMain.Width" Value="320*"/>
<Setter Target="ColumnHistory.Width" Value="240*"/> <Setter Target="ColumnHistory.Width" Value="240*"/>
<Setter Target="DockPanel.Visibility" Value="Visible"/> <Setter Target="DockPanel.Visibility" Value="Visible"/>
<Setter Target="HistoryButton.Visibility" Value="Collapsed"/>
<Setter Target="M6.Width" Value="0"/> <Setter Target="M6.Width" Value="0"/>
</VisualState.Setters> </VisualState.Setters>
<Storyboard Completed="OnLayoutVisualStateCompleted"/> <Storyboard Completed="OnLayoutVisualStateCompleted"/>
@ -657,27 +655,26 @@
IsEnabled="{x:Bind Model.IsProgrammer, Mode=OneWay}" IsEnabled="{x:Bind Model.IsProgrammer, Mode=OneWay}"
x:Load="False"/> x:Load="False"/>
<Grid x:Name="HistoryButtonParent" Visibility="{x:Bind Model.IsAlwaysOnTop, Converter={StaticResource BooleanToVisibilityNegationConverter}, Mode=OneWay}"> <Button x:Name="HistoryButton"
<Button x:Name="HistoryButton" x:Uid="HistoryButton"
x:Uid="HistoryButton" Grid.Row="0"
Grid.Row="0" Style="{StaticResource HistoryButtonStyle}"
Style="{StaticResource HistoryButtonStyle}" AutomationProperties.AutomationId="HistoryButton"
AutomationProperties.AutomationId="HistoryButton" Command="{x:Bind HistoryButtonPressed, Mode=OneTime}"
Command="{x:Bind HistoryButtonPressed, Mode=OneTime}" Content="&#xe81c;"
Content="&#xe81c;" ExitDisplayModeOnAccessKeyInvoked="False"
ExitDisplayModeOnAccessKeyInvoked="False" TabIndex="2"
TabIndex="2" Visibility="{x:Bind local:Calculator.ShouldDisplayHistoryButton(Model.IsAlwaysOnTop, Model.IsProgrammer, DockPanel.Visibility), Mode=OneWay}"
IsEnabled="{x:Bind Model.IsAlwaysOnTop, Converter={StaticResource BooleanNegationConverter}, Mode=OneWay}"> IsEnabled="{x:Bind Model.IsAlwaysOnTop, Converter={StaticResource BooleanNegationConverter}, Mode=OneWay}">
<FlyoutBase.AttachedFlyout> <FlyoutBase.AttachedFlyout>
<Flyout x:Name="HistoryFlyout" <Flyout x:Name="HistoryFlyout"
AutomationProperties.AutomationId="HistoryFlyout" AutomationProperties.AutomationId="HistoryFlyout"
Closed="HistoryFlyout_Closed" Closed="HistoryFlyout_Closed"
FlyoutPresenterStyle="{StaticResource HistoryFlyoutStyle}" FlyoutPresenterStyle="{StaticResource HistoryFlyoutStyle}"
Opened="HistoryFlyout_Opened" Opened="HistoryFlyout_Opened"
Placement="Full"/> Placement="Full"/>
</FlyoutBase.AttachedFlyout> </FlyoutBase.AttachedFlyout>
</Button> </Button>
</Grid>
<!-- Scientific angle buttons --> <!-- Scientific angle buttons -->
<local:CalculatorScientificAngleButtons x:Name="ScientificAngleButtons" <local:CalculatorScientificAngleButtons x:Name="ScientificAngleButtons"

View File

@ -714,3 +714,7 @@ void Calculator::Calculator_SizeChanged(Object ^ /*sender*/, SizeChangedEventArg
} }
} }
::Visibility Calculator::ShouldDisplayHistoryButton(bool isAlwaysOnTop, bool isProgrammer, ::Visibility dockPanelVisibility)
{
return !isAlwaysOnTop && !isProgrammer && dockPanelVisibility == ::Visibility::Collapsed ? ::Visibility::Visible : ::Visibility::Collapsed;
}

View File

@ -69,6 +69,9 @@ public
void CloseMemoryFlyout(); void CloseMemoryFlyout();
void SetDefaultFocus(); void SetDefaultFocus();
// Methods used by native bindings
static Windows::UI::Xaml::Visibility ShouldDisplayHistoryButton(bool isAlwaysOnTop, bool isProgrammer, Windows::UI::Xaml::Visibility dockPanelVisibility);
private: private:
void OnLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e); void OnLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
@ -143,5 +146,6 @@ public
void OnHistoryAccessKeyInvoked(_In_ Windows::UI::Xaml::UIElement ^ sender, _In_ Windows::UI::Xaml::Input::AccessKeyInvokedEventArgs ^ args); void OnHistoryAccessKeyInvoked(_In_ Windows::UI::Xaml::UIElement ^ sender, _In_ Windows::UI::Xaml::Input::AccessKeyInvokedEventArgs ^ args);
void OnMemoryAccessKeyInvoked(_In_ Windows::UI::Xaml::UIElement ^ sender, _In_ Windows::UI::Xaml::Input::AccessKeyInvokedEventArgs ^ args); void OnMemoryAccessKeyInvoked(_In_ Windows::UI::Xaml::UIElement ^ sender, _In_ Windows::UI::Xaml::Input::AccessKeyInvokedEventArgs ^ args);
void OnVisualStateChanged(Platform::Object ^ sender, Windows::UI::Xaml::VisualStateChangedEventArgs ^ e); void OnVisualStateChanged(Platform::Object ^ sender, Windows::UI::Xaml::VisualStateChangedEventArgs ^ e);
};
};
} }