using System;\r
using System.Collections.Generic;\r
using System.Linq;\r
- using System.Threading;\r
using System.Windows;\r
using System.Windows.Controls;\r
- using System.Windows.Media.Imaging;\r
\r
using HandBrake.ApplicationServices.Exceptions;\r
using HandBrake.ApplicationServices.Utilities;\r
let driveInformation = item\r
select new SourceMenuItem\r
{\r
- Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/disc_small.png")), Width = 16, Height = 16 },\r
Text = string.Format("{0} ({1})", item.RootDirectory, item.VolumeLabel),\r
Command = new SourceMenuCommand(() => mvm.ProcessDrive(driveInformation)),\r
Tag = item,\r
namespace HandBrakeWPF.Model\r
{\r
using System.Collections.ObjectModel;\r
- using System.Windows.Controls;\r
using System.Windows.Input;\r
\r
/// <summary>\r
/// </summary>\r
public ICommand Command { get; set; }\r
\r
- /// <summary>\r
- /// Gets or sets the image.\r
- /// </summary>\r
- public Image Image { get; set; }\r
-\r
/// <summary>\r
/// Gets or sets the children.\r
/// </summary>\r
/// </summary>\r
public bool IsDrive { get; set; }\r
\r
+ /// <summary>\r
+ /// Gets or sets a value indicating whether is open folder.\r
+ /// </summary>\r
+ public bool IsOpenFolder { get; set; }\r
+\r
+ /// <summary>\r
+ /// Gets a value indicating whether is open file.\r
+ /// </summary>\r
+ public bool IsOpenFile\r
+ {\r
+ get\r
+ {\r
+ return !this.IsOpenFolder && (this.Children == null || this.Children.Count == 0);\r
+ }\r
+ }\r
+\r
/// <summary>\r
/// Gets or sets the tag.\r
/// </summary>\r
\r
SourceMenuItem folderScan = new SourceMenuItem\r
{\r
- Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/folder.png")), Width = 16, Height = 16 },\r
+ IsOpenFolder = true,\r
Text = "Open Folder",\r
Command = new SourceMenuCommand(this.FolderScan),\r
IsDrive = false,\r
};\r
SourceMenuItem fileScan = new SourceMenuItem\r
{\r
- Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/Movies.png")), Width = 16, Height = 16 },\r
+ IsOpenFolder = false,\r
Text = "Open File",\r
Command = new SourceMenuCommand(this.FileScan),\r
IsDrive = false,\r
SourceMenuItem titleSpecific = new SourceMenuItem { Text = "Title Specific Scan" };\r
SourceMenuItem folderScanTitle = new SourceMenuItem\r
{\r
- Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/folder.png")), Width = 16, Height = 16 },\r
+ IsOpenFolder = true,\r
Text = "Open Folder",\r
Command = new SourceMenuCommand(this.FolderScanTitleSpecific),\r
IsDrive = false\r
};\r
SourceMenuItem fileScanTitle = new SourceMenuItem\r
{\r
- Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/Movies.png")), Width = 16, Height = 16 },\r
+ IsOpenFolder = false,\r
Text = "Open File",\r
Command = new SourceMenuCommand(this.FileScanTitleSpecific),\r
IsDrive = false\r
select\r
new SourceMenuItem\r
{\r
- Image = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/HandBrake;component/Views/Images/disc_small.png")), Width = 16, Height = 16 },\r
Text = string.Format("{0} ({1})", item.RootDirectory, item.VolumeLabel),\r
Command = new SourceMenuCommand(() => this.ProcessDrive(driveInformation)),\r
Tag = item,\r
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"\r
xmlns:Micro="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"\r
xmlns:attachedProperties="clr-namespace:HandBrakeWPF.AttachedProperties"\r
+ xmlns:handBrakeWpf="clr-namespace:HandBrakeWPF"\r
AllowDrop="True"\r
FontSize="11"\r
Micro:Message.Attach="[Event Loaded] = [Action Load]"\r
</i:EventTrigger>\r
</i:Interaction.Triggers>\r
\r
- <UserControl.Resources> \r
+ <UserControl.Resources>\r
<Style TargetType="Button">\r
<Setter Property="FontWeight" Value="Bold" />\r
<Setter Property="Padding" Value="5,1" />\r
/>\r
</StackPanel>\r
</MenuItem.Header>\r
+ <MenuItem.Resources>\r
+ <Image x:Key="Movie" x:Shared="False" MaxWidth="16" SnapsToDevicePixels="True" Source="Images/Movies.png" />\r
+ <Image x:Key="Folder" x:Shared="False" MaxWidth="16" SnapsToDevicePixels="True" Source="Images/folder.png" />\r
+ <Image x:Key="Disc" x:Shared="False" MaxWidth="16" SnapsToDevicePixels="True" Source="Images/disc_small.png" />\r
+ </MenuItem.Resources>\r
<MenuItem.ItemContainerStyle>\r
- <Style TargetType="{x:Type MenuItem}">\r
+ <Style TargetType="{x:Type MenuItem}" x:Shared="True">\r
<Setter Property="Header" Value="{Binding Text}" />\r
<Setter Property="Command" Value="{Binding Command}"/>\r
<Setter Property="ItemsSource" Value="{Binding Children}" />\r
- <Setter Property="Icon" Value="{Binding Image}" />\r
<Setter Property="InputGestureText" Value="{Binding InputGestureText}" />\r
<Setter Property="Tag" Value="{Binding}" />\r
+ \r
+ <Style.Triggers>\r
+ <DataTrigger Binding="{Binding Path=IsDisc}" Value="true">\r
+ <Setter Property="Icon" Value="{StaticResource Disc}"/>\r
+ </DataTrigger>\r
+ <DataTrigger Binding="{Binding Path=IsOpenFolder}" Value="true">\r
+ <Setter Property="Icon" Value="{StaticResource Folder}"/>\r
+ </DataTrigger>\r
+ <DataTrigger Binding="{Binding Path=IsOpenFile}" Value="true">\r
+ <Setter Property="Icon" Value="{StaticResource Movie}"/>\r
+ </DataTrigger>\r
+ </Style.Triggers>\r
</Style>\r
</MenuItem.ItemContainerStyle>\r
</MenuItem>\r
<MenuItem Header="Open this Directory" Micro:Message.Attach="[Event Click] = [Action OpenDestinationDirectory]" />\r
</ContextMenu>\r
</TextBox.ContextMenu>\r
- </TextBox>\r
+ </TextBox>\r
<Button Name="DestinationBrowser"\r
Grid.Column="2"\r
Margin="8,0,0,0"\r
Header="Presets"\r
Margin="0,0,0,5"\r
Visibility="{Binding IsPresetPanelShowing, Converter={StaticResource boolToVisConverter}}">\r
- \r
+\r
<Grid>\r
<Grid.RowDefinitions>\r
<RowDefinition Height="*" />\r