Skip to content
Draft
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
5 changes: 4 additions & 1 deletion RetroBar/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,11 @@ private ShellManager SetupManagedShell()

ShellConfig config = ShellManager.DefaultShellConfig;
config.PinnedNotifyIcons = Settings.Instance.NotifyIconBehaviors.Where(setting => setting.Behavior == NotifyIconBehavior.AlwaysShow).Select(setting => setting.Identifier).ToArray();
config.AutoStartTasksService = false;

return new ShellManager(config);
ShellManager manager = new ShellManager(config);
manager.Tasks.Initialize(new TaskCategoryProvider(), config.MultiMonAwareTasksService);
return manager;
}

public void RestartApp()
Expand Down
104 changes: 79 additions & 25 deletions RetroBar/Controls/TaskButton.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
xmlns:converters="clr-namespace:RetroBar.Converters"
xmlns:controls="clr-namespace:RetroBar.Controls"
xmlns:utilities="clr-namespace:RetroBar.Utilities"
xmlns:managedShellTasks="clr-namespace:ManagedShell.WindowsTasks;assembly=ManagedShell.WindowsTasks"
Loaded="TaskButton_OnLoaded"
Unloaded="TaskButton_OnUnloaded">
<UserControl.Resources>
Expand All @@ -12,8 +13,12 @@
<converters:ToolTipVerticalOffsetConverter x:Key="toolTipVerticalOffsetConverter" />
<converters:ToolTipPlacementConverter x:Key="toolTipPlacementConverter" />
<converters:TaskLabelConverter x:Key="taskLabelConverter" />
<converters:TaskGroupVisibilityConverter x:Key="taskGroupVisibilityConverter" />
<converters:TaskToolTipConverter x:Key="taskToolTipConverter" />
<converters:TaskThumbnailItemsConverter x:Key="taskThumbnailItemsConverter" />
</UserControl.Resources>
<Button Name="AppButton"
Tag="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=controls:TaskButton}}"
Click="AppButton_OnClick"
MouseUp="AppButton_OnMouseUp"
PreviewMouseDown="AppButton_OnPreviewMouseDown"
Expand All @@ -25,31 +30,65 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Source="{Binding Path=Icon, Mode=OneWay}"
<Image Source="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=DisplayIcon, Mode=OneWay}"
Grid.Column="0"
Style="{DynamicResource TaskIcon}" />
<Image Source="{Binding Path=OverlayIcon, Mode=OneWay}"
Grid.Column="0"
Style="{DynamicResource TaskOverlayIcon}"
Visibility="{Binding Source={x:Static utilities:Settings.Instance}, Path=ShowTaskBadges, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource boolToVisibilityConverter}}" />
<TextBlock Grid.Column="1"
Style="{DynamicResource TaskLabel}">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource taskLabelConverter}">
<Binding Path="Title" />
<Binding Path="ProgressValue" />
<Binding Path="ProgressState" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<Grid Grid.Column="1" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding Path=Tasks.Count, RelativeSource={RelativeSource FindAncestor, AncestorType=controls:TaskButton}}"
FontWeight="Bold"
Foreground="{DynamicResource TaskGroupCountForeground}"
Margin="0,0,4,1"
Visibility="{Binding Path=Tasks.Count, RelativeSource={RelativeSource FindAncestor, AncestorType=controls:TaskButton}, Converter={StaticResource taskGroupVisibilityConverter}, FallbackValue=Collapsed, TargetNullValue=Collapsed}" />
<TextBlock Grid.Column="1"
Style="{DynamicResource TaskLabel}"
TextTrimming="CharacterEllipsis">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource taskLabelConverter}">
<Binding Path="Title" />
<Binding Path="WinFileDescription" />
<Binding Path="WinFileName" />
<Binding Path="ProgressValue" />
<Binding Path="ProgressState" />
<Binding Path="Tasks.Count" RelativeSource="{RelativeSource FindAncestor, AncestorType=controls:TaskButton}" FallbackValue="0" TargetNullValue="0" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
<TextBlock Grid.Column="2"
FontFamily="Marlett"
FontSize="14"
Text="&#x39;"
VerticalAlignment="Center"
HorizontalAlignment="Right"
Margin="2,2,-5,0"
Visibility="{Binding Path=Tasks.Count, RelativeSource={RelativeSource FindAncestor, AncestorType=controls:TaskButton}, Converter={StaticResource taskGroupVisibilityConverter}, FallbackValue=Collapsed, TargetNullValue=Collapsed}" />
</Grid>
<Button.ContextMenu>
<ContextMenu Opened="ContextMenu_OpenedOrClosed"
Closed="ContextMenu_OpenedOrClosed">
<TextOptions.TextRenderingMode>
<Binding Source="{x:Static utilities:Settings.Instance}" Path="AllowFontSmoothingMenu" Converter="{StaticResource menuTextRenderingModeConverter}" />
</TextOptions.TextRenderingMode>
<MenuItem Header="{DynamicResource minimize_group}"
Click="MinimizeGroupMenuItem_OnClick"
Name="MinimizeGroupMenuItem"
Visibility="Collapsed" />
<Separator x:Name="GroupSeparator" Visibility="Collapsed" />
<MenuItem Header="{DynamicResource close_group}"
Click="CloseGroupMenuItem_OnClick"
Name="CloseGroupMenuItem"
Visibility="Collapsed" />
<MenuItem Header="{DynamicResource restore}"
Click="RestoreMenuItem_OnClick"
Name="RestoreMenuItem">
Expand Down Expand Up @@ -86,7 +125,7 @@
VerticalAlignment="Center" />
</MenuItem.Icon>
</MenuItem>
<Separator />
<Separator x:Name="SingleSeparator" />
<MenuItem Header="{DynamicResource end_task}"
Click="EndTaskMenuItem_OnClick"
Name="EndTaskMenuItem"
Expand All @@ -113,16 +152,6 @@
<DataTrigger Binding="{Binding Source={x:Static utilities:Settings.Instance}, Path=ShowTaskThumbnails, UpdateSourceTrigger=PropertyChanged}"
Value="True">
<DataTrigger.Setters>
<Setter Property="HorizontalOffset">
<Setter.Value>
<MultiBinding Converter="{StaticResource toolTipHorizontalOffsetConverter}" UpdateSourceTrigger="PropertyChanged">
<Binding RelativeSource="{RelativeSource Self}" Path="PlacementTarget.ActualWidth"/>
<Binding RelativeSource="{RelativeSource Self}" Path="ActualWidth"/>
<Binding Source="{x:Static utilities:Settings.Instance}" Path="TaskbarScale"/>
<Binding Source="{x:Static utilities:Settings.Instance}" Path="Edge"/>
</MultiBinding>
</Setter.Value>
</Setter>
<Setter Property="VerticalOffset">
<Setter.Value>
<MultiBinding Converter="{StaticResource toolTipVerticalOffsetConverter}" UpdateSourceTrigger="PropertyChanged">
Expand All @@ -144,8 +173,24 @@
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<ContentControl Style="{DynamicResource TaskButtonThumbnail}">
<controls:TaskThumbnail SourceWindowHandle="{Binding Path=Handle}"
Title="{Binding Path=Title}"/>
<ItemsControl>
<ItemsControl.ItemsSource>
<MultiBinding Converter="{StaticResource taskThumbnailItemsConverter}">
<Binding Path="PlacementTarget.DataContext" RelativeSource="{RelativeSource FindAncestor, AncestorType=ToolTip}" />
<Binding Path="PlacementTarget.Tag.Tasks" RelativeSource="{RelativeSource FindAncestor, AncestorType=ToolTip}" />
</MultiBinding>
</ItemsControl.ItemsSource>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type managedShellTasks:ApplicationWindow}">
<controls:TaskThumbnail SourceWindowHandle="{Binding Path=Handle}" Title="{Binding Path=Title}" Margin="2,0" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ContentControl>
</ControlTemplate>
</Setter.Value>
Expand All @@ -155,7 +200,16 @@
</Style.Triggers>
</Style>
</ToolTip.Style>
<TextBlock Text="{Binding Path=Title}" />
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource taskToolTipConverter}">
<Binding Path="Title" />
<Binding Path="WinFileDescription" />
<Binding Path="WinFileName" />
<Binding Path="PlacementTarget.Tag.Tasks" RelativeSource="{RelativeSource FindAncestor, AncestorType=ToolTip}" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</ToolTip>
</Button.ToolTip>
</Button>
Expand Down
Loading