/
TaskButton.xaml
113 lines (113 loc) · 5.28 KB
/
TaskButton.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version="1.0" encoding="utf-8"?>
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l10n="clr-namespace:CairoDesktop.Localization;assembly=CairoDesktop.Localization"
x:Class="CairoDesktop.TaskButton"
x:Name="UserControl"
xmlns:support="clr-namespace:CairoDesktop.SupportingClasses"
Loaded="UserControl_Loaded"
Unloaded="TaskButton_OnUnloaded">
<UserControl.Resources>
<ResourceDictionary>
<support:TaskButtonStyleConverter x:Key="styleConverter" />
</ResourceDictionary>
</UserControl.Resources>
<Button x:Name="btn"
BorderThickness="0"
VerticalAlignment="Stretch"
Click="btnClick"
ToolTip="{Binding Path=Title}"
ToolTipService.Placement="Top"
MouseUp="btn_MouseUp"
ContextMenuOpening="ContextMenu_Opening"
DragEnter="btn_DragEnter"
DragLeave="btn_DragLeave"
MouseEnter="btn_MouseEnter"
MouseLeave="btn_MouseLeave">
<Button.Style>
<MultiBinding Converter="{StaticResource styleConverter}"
NotifyOnSourceUpdated="True">
<Binding RelativeSource="{RelativeSource Self}" />
<Binding Path="State"
UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</Button.Style>
<Button.ContextMenu>
<ContextMenu Closed="ContextMenu_Closed">
<MenuItem Header="{Binding Path=(l10n:DisplayString.sCairoMenu_TaskManager)}"
Click="miTaskMan_Click" />
<Separator />
<MenuItem Header="{Binding Path=(l10n:DisplayString.sProgramsMenu_AddToQuickLaunch)}"
Click="miPin_Click"
Name="miPin" />
<Separator Name="miPinSeparator" />
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_Restore)}"
Click="miRestore_Click"
Name="miRestore">
<MenuItem.Icon>
<TextBlock FontFamily="Marlett"
Text="2" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_Move)}"
Click="miMove_Click"
Name="miMove" />
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_Size)}"
Click="miSize_Click"
Name="miSize" />
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_Minimize)}"
Click="miMinimize_Click"
Name="miMinimize">
<MenuItem.Icon>
<TextBlock FontFamily="Marlett"
Text="0" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_Maximize)}"
Click="miMaximize_Click"
Name="miMaximize">
<MenuItem.Icon>
<TextBlock FontFamily="Marlett"
Text="1" />
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_NewWindow)}"
Click="miNewWindow_Click" />
<MenuItem Header="{Binding Path=(l10n:DisplayString.sTaskbar_Close)}"
Click="miClose_Click">
<MenuItem.Icon>
<TextBlock FontFamily="Marlett"
Text="r" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ProgressBar Name="pbProgress"
Grid.ColumnSpan="2"
Minimum="0"
Maximum="65534"
Value="{Binding Path=ProgressValue}"
Style="{StaticResource TaskbarProgressBar}" />
<Image Source="{Binding Path=Icon, Mode=OneWay, FallbackValue={StaticResource NullIcon}, TargetNullValue={StaticResource NullIcon}}"
Name="imgIcon"
Width="16"
Height="16"
Grid.Column="0"
Margin="0,0,5,0"/>
<TextBlock Padding="0,0,5,0"
Name="WinTitle"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Text="{Binding Path=Title}"
TextTrimming="CharacterEllipsis"
Grid.Column="1"
TextAlignment="Center" />
</Grid>
</Button>
</UserControl>