Skip to content

Commit

Permalink
Add button to toggle favorite status using ThemeExtras extension
Browse files Browse the repository at this point in the history
  • Loading branch information
darklinkpower committed Mar 14, 2024
1 parent 5712c2a commit 8e8fbcb
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
45 changes: 45 additions & 0 deletions source/DefaultControls/ToggleButton.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,50 @@
</Setter.Value>
</Setter>
</Style>

<Style x:Key="PanelFavoriteToggleButton" TargetType="{x:Type ToggleButton}">
<Setter Property="Background" Value="{DynamicResource GlyphBrush}" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="BorderBrush" Value="{DynamicResource NormalBorderBrush}" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="IsChecked" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Border x:Name="Border" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
CornerRadius="{DynamicResource ControlCornerRadius}"
Style="{DynamicResource HighlightBorder}"
BorderBrush="{TemplateBinding BorderBrush}"
Padding="10,5,10,5">
<TextBlock x:Name="FavoriteIcon" Text="&#xE735;"
FontSize="{DynamicResource FontSize}"
Foreground="{TemplateBinding Foreground}"
FontFamily="Segoe MDL2 Assets"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource Self}}" Value="False">
<Setter Property="TextBlock.Text" Value="&#xE734;" TargetName="FavoriteIcon" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource PurpleButtonBrushHighlight}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Background" Value="{DynamicResource PurpleButtonBrushHighlight}" />
</Trigger>
</Style.Triggers>
</Style>

</ResourceDictionary>
5 changes: 5 additions & 0 deletions source/Views/DetailsViewGameOverview.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,11 @@
<Button Grid.Column="1" Name="PART_ButtonMoreActions" Content="&#xEAC8;" FontFamily="{DynamicResource FontIcoFont}" Width="40" Margin="10,0,0,0" Style="{DynamicResource MoreActionButtonViews}" Padding="0" />
<Button Grid.Column="2" x:Name="PART_ButtonEditGame" Content="&#xEDED;" Margin="10,0,0,0" Height="40" Width="40" Focusable="False" FontFamily="{DynamicResource FontIcoFont}" Style="{DynamicResource MoreActionButtonViews}" />
</Grid>
<ToggleButton Name="GameFavoriteToggleButton" Margin="10,0,0,0" Focusable="False"
Style="{DynamicResource PanelFavoriteToggleButton}"
Height="40"
Visibility="{PluginStatus Plugin=felixkmh_Extras_Plugin}"
IsChecked="{PluginSettings Plugin=ThemeExtras, Path=Game.Favorite, Mode=TwoWay, FallbackValue={StaticResource False}}"/>
<ContentControl x:Name="PlayState_GameStateSwitchControl" Margin="10,0,0,0"
Visibility="{PluginSettings Plugin=PlayState, Path=IsControlVisible, FallbackValue=Collapsed, Converter={StaticResource BooleanToVisibilityConverter}}" />
<ContentControl x:Name="ScreenshotsVisualizer_PluginButton" Margin="10,0,0,0"
Expand Down
5 changes: 5 additions & 0 deletions source/Views/GridViewGameOverview.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,11 @@
Content="{DynamicResource LOCMoreAction}"
Height="40" Grid.Column="1" Margin="10,0,0,0" Style="{DynamicResource MoreActionButtonViews}"/>
<StackPanel Orientation="Horizontal" Grid.Column="2" Margin="0,0,5,0">
<ToggleButton Name="GameFavoriteToggleButton" Margin="10,0,0,0" Focusable="False"
Style="{DynamicResource PanelFavoriteToggleButton}"
Height="40"
Visibility="{PluginStatus Plugin=felixkmh_Extras_Plugin}"
IsChecked="{PluginSettings Plugin=ThemeExtras, Path=Game.Favorite, Mode=TwoWay, FallbackValue={StaticResource False}}"/>
<ContentControl x:Name="PlayState_GameStateSwitchControl" Margin="10,0,0,0"
Visibility="{PluginSettings Plugin=PlayState, Path=IsControlVisible, FallbackValue=Collapsed, Converter={StaticResource BooleanToVisibilityConverter}}" />
<Button x:Name="PART_ButtonEditGame"
Expand Down

0 comments on commit 8e8fbcb

Please sign in to comment.