Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 4 additions & 20 deletions FluentFlyoutWPF/Controls/TaskbarWidgetControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -395,10 +395,7 @@ private async void Previous_Click(object sender, RoutedEventArgs e)
{
if (_mainWindow == null) return;

var mediaManager = _mainWindow.mediaManager;
if (mediaManager == null) return;

var focusedSession = mediaManager.GetFocusedSession();
var focusedSession = _mainWindow.GetActiveMediaSession();
if (focusedSession == null) return;

await focusedSession.ControlSession.TrySkipPreviousAsync();
Expand All @@ -408,30 +405,17 @@ private async void PlayPause_Click(object sender, RoutedEventArgs e)
{
if (_mainWindow == null) return;

var mediaManager = _mainWindow.mediaManager;
if (mediaManager == null) return;

var focusedSession = mediaManager.GetFocusedSession();
var focusedSession = _mainWindow.GetActiveMediaSession();
if (focusedSession == null) return;

if (_isPaused) // paused
{
await focusedSession.ControlSession.TryPlayAsync();
}
else // playing
{
await focusedSession.ControlSession.TryPauseAsync();
}
await focusedSession.ControlSession.TryTogglePlayPauseAsync();
}

private async void Next_Click(object sender, RoutedEventArgs e)
{
if (_mainWindow == null) return;

var mediaManager = _mainWindow.mediaManager;
if (mediaManager == null) return;

var focusedSession = mediaManager.GetFocusedSession();
var focusedSession = _mainWindow.GetActiveMediaSession();
if (focusedSession == null) return;

await focusedSession.ControlSession.TrySkipNextAsync();
Expand Down
219 changes: 136 additions & 83 deletions FluentFlyoutWPF/MainWindow.xaml.cs

Large diffs are not rendered by default.

225 changes: 225 additions & 0 deletions FluentFlyoutWPF/Pages/AppFilteringPage.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
<Page x:Class="FluentFlyoutWPF.Pages.AppFilteringPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
xmlns:controls="clr-namespace:MicaWPF.Controls;assembly=MicaWPF"
xmlns:viewModels="clr-namespace:FluentFlyoutWPF.ViewModels"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="600"
Title="AppFilteringPage"
d:DataContext="{d:DesignInstance viewModels:UserSettings}"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
d:Background="White">

<StackPanel MaxWidth="1000" Margin="16">
<TextBlock Text="{DynamicResource AppFilteringTitle}" FontSize="24" FontWeight="SemiBold" Margin="0,0,0,20" />

<ui:CardControl Icon="{ui:SymbolIcon Filter24}" Margin="0,0,0,24">
<ui:CardControl.Header>
<StackPanel Orientation="Vertical">
<TextBlock Text="{DynamicResource EnableAppFilteringTitle}" FontSize="14" FontWeight="Regular" VerticalAlignment="Center" />
<TextBlock Text="{DynamicResource AppFilteringRulesDescription}" FontSize="12" Opacity="0.5" />
</StackPanel>
</ui:CardControl.Header>
<controls:ToggleSwitch IsChecked="{Binding AppFilteringEnabled, Mode=TwoWay}" />
</ui:CardControl>

<ui:CardControl Icon="{ui:SymbolIcon AppsList24}" Margin="0,0,0,24">
<ui:CardControl.Style>
<Style TargetType="ui:CardControl">
<Setter Property="Opacity" Value="1"/>
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AppFilteringEnabled}" Value="False">
<Setter Property="Opacity" Value="0.4"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ui:CardControl.Style>
<ui:CardControl.Header>
<StackPanel Orientation="Vertical">
<TextBlock Text="{DynamicResource AppFilteringModeTitle}" FontSize="14" FontWeight="Regular" VerticalAlignment="Center" />
</StackPanel>
</ui:CardControl.Header>
<ComboBox SelectedIndex="{Binding AppFilteringMode, Mode=TwoWay}" MinWidth="250" MinHeight="36" Padding="16,8,16,8">
<ComboBoxItem Content="{DynamicResource AppFilteringModeBlacklist}" Padding="16,8,16,8" />
<ComboBoxItem Content="{DynamicResource AppFilteringModeWhitelist}" Padding="16,8,16,8" />
</ComboBox>
</ui:CardControl>

<Grid IsEnabled="{Binding AppFilteringEnabled}">
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Opacity" Value="1"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AppFilteringEnabled}" Value="False">
<Setter Property="Opacity" Value="0.4"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="16" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Border Grid.Column="0" Background="{DynamicResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="8" Padding="16" VerticalAlignment="Top" Grid.ColumnSpan="3">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AppFilteringMode}" Value="1">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,16">
<ui:SymbolIcon Symbol="CheckmarkCircle24" FontSize="28" Margin="0,0,12,0" Foreground="{DynamicResource SystemFillColorSuccessBrush}"/>
<StackPanel VerticalAlignment="Center" Margin="0,1,0,0">
<TextBlock Text="{DynamicResource AllowedAppsTitle}" FontSize="16" FontWeight="SemiBold" />
<TextBlock Text="{DynamicResource AllowedAppsDescription}" FontSize="12" Opacity="0.6" TextWrapping="Wrap" Margin="0,2,0,0" />
</StackPanel>
</StackPanel>

<Grid Grid.Row="1" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" IsEditable="False" x:Name="AllowComboBox" HorizontalAlignment="Stretch" DropDownOpened="AllowComboBox_DropDownOpened" Margin="0,0,8,0" MinHeight="36" Padding="16,8,16,8">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem" BasedOn="{StaticResource {x:Type ComboBoxItem}}">
<Setter Property="Padding" Value="16,8,16,8" />
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
<ui:Button Grid.Column="1" Content="{DynamicResource AddButton}" Click="AddAllow_Click" Appearance="Primary" />
</Grid>

<ListBox Grid.Row="2" ItemsSource="{Binding AllowedApps}" MinHeight="150" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="Focusable" Value="False" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" />
<ui:Button Grid.Column="1" Content="{DynamicResource RemoveButton}" Click="RemoveAllow_Click" Tag="{Binding}" Margin="8,0,0,0" Padding="8,4" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

<StackPanel Grid.Row="3" Margin="0,16,0,0">
<Border Height="1" Background="{DynamicResource CardStrokeColorDefaultBrush}" Margin="0,0,0,12" />
<TextBlock Text="{DynamicResource AddAppManuallyText}" FontSize="12" Opacity="0.65" Margin="0,0,0,8" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ui:TextBox Grid.Column="0" x:Name="AllowTextBox" PlaceholderText="{DynamicResource AppFilteringPlaceholderSpotify}" HorizontalAlignment="Stretch" Margin="0,0,8,0" ClearButtonEnabled="False" />
<ui:Button Grid.Column="1" Content="{DynamicResource AddButton}" Click="AddAllowManual_Click" Appearance="Secondary" />
</Grid>
</StackPanel>
</Grid>
</Border>

<Border Grid.Column="0" Grid.ColumnSpan="3" Background="{DynamicResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="8" Padding="16" VerticalAlignment="Top">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AppFilteringMode}" Value="0">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,16">
<ui:SymbolIcon Symbol="Prohibited24" FontSize="28" Margin="0,0,12,0" Foreground="{DynamicResource SystemFillColorCriticalBrush}"/>
<StackPanel VerticalAlignment="Center" Margin="0,1,0,0">
<TextBlock Text="{DynamicResource BlockedAppsTitle}" FontSize="16" FontWeight="SemiBold" />
<TextBlock Text="{DynamicResource BlockedAppsDescription}" FontSize="12" Opacity="0.6" TextWrapping="Wrap" Margin="0,2,0,0" />
</StackPanel>
</StackPanel>

<Grid Grid.Row="1" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" IsEditable="False" x:Name="BlockComboBox" HorizontalAlignment="Stretch" DropDownOpened="BlockComboBox_DropDownOpened" Margin="0,0,8,0" MinHeight="36" Padding="16,8,16,8">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem" BasedOn="{StaticResource {x:Type ComboBoxItem}}">
<Setter Property="Padding" Value="16,8,16,8" />
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
<ui:Button Grid.Column="1" Content="{DynamicResource AddButton}" Click="AddBlock_Click" Appearance="Primary" />
</Grid>

<ListBox Grid.Row="2" ItemsSource="{Binding BlockedApps}" MinHeight="150" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="Focusable" Value="False" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" />
<ui:Button Grid.Column="1" Content="{DynamicResource RemoveButton}" Click="RemoveBlock_Click" Tag="{Binding}" Margin="8,0,0,0" Padding="8,4" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

<StackPanel Grid.Row="3" Margin="0,16,0,0">
<Border Height="1" Background="{DynamicResource CardStrokeColorDefaultBrush}" Margin="0,0,0,12" />
<TextBlock Text="{DynamicResource AddAppManuallyText}" FontSize="12" Opacity="0.65" Margin="0,0,0,8" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ui:TextBox Grid.Column="0" x:Name="BlockTextBox" PlaceholderText="{DynamicResource AppFilteringPlaceholderChrome}" HorizontalAlignment="Stretch" Margin="0,0,8,0" ClearButtonEnabled="False" />
<ui:Button Grid.Column="1" Content="{DynamicResource AddButton}" Click="AddBlockManual_Click" Appearance="Secondary" />
</Grid>
</StackPanel>
</Grid>
</Border>
</Grid>
</StackPanel>
</Page>
Loading