Removed FontAwesome dependency, added new icons

This commit is contained in:
Ben 2015-06-06 13:16:59 +01:00
parent 7b5d92bf66
commit 3c643eb07b
39 changed files with 345 additions and 103 deletions

View File

@ -12,19 +12,6 @@
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Steel.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Steel.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<ResourceDictionary Source="Views/CrossButton.xaml" /> <ResourceDictionary Source="Views/CrossButton.xaml" />
<ResourceDictionary>
<!-- TODO: Fix these icons so we don't need one resource for each instance. x:Shared="False" does not work for ImageAwesome -->
<fa:ImageAwesome Icon="Plus" Height="15" Width="15" x:Key="AddBlockToolbarIcon" />
<fa:ImageAwesome Icon="ListUl" Height="15" Width="15" x:Key="AddSectionToolbarIcon" />
<fa:ImageAwesome Icon="Minus" Height="15" Width="15" x:Key="DeleteBlockToolbarIcon" />
<fa:ImageAwesome Icon="AngleDoubleUp" Height="15" Width="15" x:Key="MoveBlockToTopToolbarIcon" />
<fa:ImageAwesome Icon="AngleUp" Height="15" Width="15" x:Key="MoveBlockUpToolbarIcon" />
<fa:ImageAwesome Icon="AngleDown" Height="15" Width="15" x:Key="MoveBlockDownToolbarIcon" />
<fa:ImageAwesome Icon="AngleDoubleDown" Height="15" Width="15" x:Key="MoveBlockToBottomToolbarIcon" />
<fa:ImageAwesome Icon="FileOutlined" Height="15" Width="15" x:Key="NewIcon" />
<fa:ImageAwesome Icon="FolderOpenOutlined" Height="15" Width="15" x:Key="OpenIcon" />
<fa:ImageAwesome Icon="FloppyOutlined" Height="15" Width="15" x:Key="SaveIcon" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>
</Application.Resources> </Application.Resources>

View File

@ -1,4 +1,5 @@
using System.Linq; using System;
using System.Linq;
using System.Windows; using System.Windows;
using Castle.MicroKernel.ModelBuilder.Inspectors; using Castle.MicroKernel.ModelBuilder.Inspectors;
using Castle.Windsor; using Castle.Windsor;
@ -26,6 +27,14 @@ namespace Filtration
var mainWindow = _container.Resolve<IMainWindow>(); var mainWindow = _container.Resolve<IMainWindow>();
mainWindow.Show(); mainWindow.Show();
//String[] arguments = Environment.GetCommandLineArgs();
//if (arguments.GetLength(0) <= 1) return;
//if (!arguments[1].EndsWith(".filter")) return;
//var filePathFormMainArgs = arguments[1];
//mainWindow.OpenScriptFromCommandLineArgument(filePathFormMainArgs);
} }
protected override void OnExit(ExitEventArgs e) protected override void OnExit(ExitEventArgs e)

View File

@ -41,10 +41,6 @@
<Reference Include="Castle.Windsor"> <Reference Include="Castle.Windsor">
<HintPath>..\packages\Castle.Windsor.3.3.0\lib\net45\Castle.Windsor.dll</HintPath> <HintPath>..\packages\Castle.Windsor.3.3.0\lib\net45\Castle.Windsor.dll</HintPath>
</Reference> </Reference>
<Reference Include="FontAwesome.WPF, Version=4.3.0.26714, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\FontAwesome.WPF.4.3.0.2\lib\FontAwesome.WPF.dll</HintPath>
</Reference>
<Reference Include="GalaSoft.MvvmLight, Version=5.1.1.35049, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL"> <Reference Include="GalaSoft.MvvmLight, Version=5.1.1.35049, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\MvvmLightLibs.5.1.1.0\lib\net45\GalaSoft.MvvmLight.dll</HintPath> <HintPath>..\packages\MvvmLightLibs.5.1.1.0\lib\net45\GalaSoft.MvvmLight.dll</HintPath>
@ -254,9 +250,24 @@
<Resource Include="Resources\groundtile.png" /> <Resource Include="Resources\groundtile.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound8.wav"> <Content Include="Resources\AlertSounds\AlertSound8.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Resource Include="Resources\Icons\add_block_icon.png" />
<Resource Include="Resources\Icons\add_section_icon.png" />
<Resource Include="Resources\Icons\copy_icon.png" />
<Resource Include="Resources\Icons\delete_icon.png" />
<Resource Include="Resources\Icons\new_icon.png" />
<Resource Include="Resources\Icons\paste_icon.png" />
<Resource Include="Resources\Icons\save_all_icon.png" />
<Resource Include="Resources\Icons\save_icon.png" />
<Resource Include="Resources\Icons\open_icon.png" />
<Resource Include="Resources\Icons\arrow_down_large_icon.png" />
<Resource Include="Resources\Icons\arrow_down_small_icon.png" />
<Resource Include="Resources\Icons\arrow_up_large_icon.png" />
<Resource Include="Resources\Icons\arrow_up_small_icon.png" />
<Resource Include="Resources\Icons\speaker_icon.png" />
<Resource Include="Resources\Icons\play_icon.png" />
<Content Include="Resources\ItemBaseTypes.txt"> <Content Include="Resources\ItemBaseTypes.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>
@ -265,42 +276,42 @@
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound9.wav"> <Content Include="Resources\AlertSounds\AlertSound9.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound7.wav"> <Content Include="Resources\AlertSounds\AlertSound7.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound6.wav"> <Content Include="Resources\AlertSounds\AlertSound6.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound4.wav"> <Content Include="Resources\AlertSounds\AlertSound4.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound5.wav"> <Content Include="Resources\AlertSounds\AlertSound5.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound2.wav"> <Content Include="Resources\AlertSounds\AlertSound2.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound3.wav"> <Content Include="Resources\AlertSounds\AlertSound3.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Resources\AlertSound1.wav"> <Content Include="Resources\AlertSounds\AlertSound1.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>

View File

@ -60,6 +60,26 @@ namespace Filtration.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap add_block_icon {
get {
object obj = ResourceManager.GetObject("add_block_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap add_section_icon {
get {
object obj = ResourceManager.GetObject("add_section_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
/// </summary> /// </summary>
@ -141,6 +161,26 @@ namespace Filtration.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap copy_icon {
get {
object obj = ResourceManager.GetObject("copy_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap delete_icon {
get {
object obj = ResourceManager.GetObject("delete_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Byte[]. /// Looks up a localized resource of type System.Byte[].
/// </summary> /// </summary>
@ -160,5 +200,75 @@ namespace Filtration.Properties {
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap new_icon {
get {
object obj = ResourceManager.GetObject("new_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap open_icon {
get {
object obj = ResourceManager.GetObject("open_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap paste_icon {
get {
object obj = ResourceManager.GetObject("paste_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap play_icon {
get {
object obj = ResourceManager.GetObject("play_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap save_all_icon {
get {
object obj = ResourceManager.GetObject("save_all_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap save_icon {
get {
object obj = ResourceManager.GetObject("save_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap speaker_icon {
get {
object obj = ResourceManager.GetObject("speaker_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
} }
} }

View File

@ -118,32 +118,44 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="add_block_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\add_block_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add_section_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\add_section_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AlertSound1" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound1.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound1.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound2" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound2.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound2.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound3" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound3.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound3.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound4" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound4" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound4.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound4.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound5" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound5" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound5.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound5.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound6" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound6" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound6.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound6.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound7" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound7" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound7.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound7.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound8" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound8" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound8.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound8.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="AlertSound9" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AlertSound9" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AlertSound9.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\AlertSounds\AlertSound9.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="copy_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\copy_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\delete_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Fontin_SmallCaps" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Fontin_SmallCaps" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Fontin-SmallCaps.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\Fontin-SmallCaps.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
@ -151,4 +163,25 @@
<data name="groundtile" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="groundtile" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\groundtile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\groundtile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="new_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\new_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="open_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\open_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="paste_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\paste_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="play_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\play_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save_all_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\save_all_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\save_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="speaker_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Icons\speaker_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -33,7 +33,8 @@ namespace Filtration.ViewModels
{ {
_translator = translator; _translator = translator;
_staticDataService = staticDataService; _staticDataService = staticDataService;
CopyBlockCommand = new RelayCommand(OnCopyConditionCommand); CopyBlockCommand = new RelayCommand(OnCopyBlockCommand);
PasteBlockCommand = new RelayCommand(OnPasteBlockCommand);
AddBlockCommand = new RelayCommand(OnAddBlockCommand); AddBlockCommand = new RelayCommand(OnAddBlockCommand);
AddSectionCommand = new RelayCommand(OnAddSectionCommand); AddSectionCommand = new RelayCommand(OnAddSectionCommand);
DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand); DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand);
@ -65,6 +66,7 @@ namespace Filtration.ViewModels
} }
public RelayCommand CopyBlockCommand { get; private set; } public RelayCommand CopyBlockCommand { get; private set; }
public RelayCommand PasteBlockCommand { get; private set; }
public RelayCommand AddBlockCommand { get; private set; } public RelayCommand AddBlockCommand { get; private set; }
public RelayCommand AddSectionCommand { get; private set; } public RelayCommand AddSectionCommand { get; private set; }
public RelayCommand DeleteBlockCommand { get; private set; } public RelayCommand DeleteBlockCommand { get; private set; }
@ -237,11 +239,6 @@ namespace Filtration.ViewModels
get { return FilterBlockItems.Count(b => b is SoundBlockItem) > 0; } get { return FilterBlockItems.Count(b => b is SoundBlockItem) > 0; }
} }
private void OnCopyConditionCommand()
{
Clipboard.SetText(_translator.TranslateLootFilterBlockToString(Block));
}
private void OnAddFilterBlockItemCommand(Type blockItemType) private void OnAddFilterBlockItemCommand(Type blockItemType)
{ {
if (!AddBlockItemAllowed(blockItemType)) return; if (!AddBlockItemAllowed(blockItemType)) return;
@ -276,6 +273,17 @@ namespace Filtration.ViewModels
IsDirty = true; IsDirty = true;
} }
private void OnCopyBlockCommand()
{
_parentScriptViewModel.CopyBlock(this);
}
private void OnPasteBlockCommand()
{
_parentScriptViewModel.PasteBlock(this);
}
private void OnAddBlockCommand() private void OnAddBlockCommand()
{ {
_parentScriptViewModel.AddBlock(this); _parentScriptViewModel.AddBlock(this);
@ -310,7 +318,7 @@ namespace Filtration.ViewModels
private void OnPlaySoundCommand() private void OnPlaySoundCommand()
{ {
var soundUri = "Resources/AlertSound" + FilterBlockItems.OfType<SoundBlockItem>().First().Value + ".wav"; var soundUri = "Resources/AlertSounds/AlertSound" + FilterBlockItems.OfType<SoundBlockItem>().First().Value + ".wav";
_mediaPlayer.Open(new Uri(soundUri, UriKind.Relative)); _mediaPlayer.Open(new Uri(soundUri, UriKind.Relative));
_mediaPlayer.Play(); _mediaPlayer.Play();
} }

View File

@ -3,7 +3,9 @@ using System.Collections.ObjectModel;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Windows; using System.Windows;
using Castle.Core.Internal;
using Filtration.Models; using Filtration.Models;
using Filtration.Translators;
using GalaSoft.MvvmLight.CommandWpf; using GalaSoft.MvvmLight.CommandWpf;
namespace Filtration.ViewModels namespace Filtration.ViewModels
@ -14,28 +16,34 @@ namespace Filtration.ViewModels
bool IsDirty { get; } bool IsDirty { get; }
string Description { get; set; } string Description { get; set; }
void Initialise(LootFilterScript lootFilterScript); void Initialise(LootFilterScript lootFilterScript);
ILootFilterBlockViewModel SelectedBlockViewModel { get; set; }
void RemoveDirtyFlag(); void RemoveDirtyFlag();
void AddSection(ILootFilterBlockViewModel blockViewModel); void AddSection(ILootFilterBlockViewModel targetBlockViewModel);
void AddBlock(ILootFilterBlockViewModel blockViewModel); void AddBlock(ILootFilterBlockViewModel targetBlockViewModel);
void CopyBlock(ILootFilterBlockViewModel targetBlockViewModel);
void PasteBlock(ILootFilterBlockViewModel targetBlockViewModel);
} }
internal class LootFilterScriptViewModel : FiltrationViewModelBase, ILootFilterScriptViewModel internal class LootFilterScriptViewModel : FiltrationViewModelBase, ILootFilterScriptViewModel
{ {
private readonly ILootFilterBlockViewModelFactory _lootFilterBlockViewModelFactory; private readonly ILootFilterBlockViewModelFactory _lootFilterBlockViewModelFactory;
private readonly ILootFilterBlockTranslator _blockTranslator;
private bool _isDirty; private bool _isDirty;
private ILootFilterBlockViewModel _selectedBlockViewModel; private ILootFilterBlockViewModel _selectedBlockViewModel;
public LootFilterScriptViewModel(ILootFilterBlockViewModelFactory lootFilterBlockViewModelFactory ) public LootFilterScriptViewModel(ILootFilterBlockViewModelFactory lootFilterBlockViewModelFactory, ILootFilterBlockTranslator blockTranslator)
{ {
DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand, () => SelectedBlockViewModel != null); DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand, () => SelectedBlockViewModel != null);
MoveBlockToTopCommand = new RelayCommand(OnMoveBlockToTopCommand, () => SelectedBlockViewModel != null); MoveBlockToTopCommand = new RelayCommand(OnMoveBlockToTopCommand, () => SelectedBlockViewModel != null);
MoveBlockUpCommand = new RelayCommand(OnMoveBlockUpCommand, () => SelectedBlockViewModel != null); MoveBlockUpCommand = new RelayCommand(OnMoveBlockUpCommand, () => SelectedBlockViewModel != null);
MoveBlockDownCommand = new RelayCommand(OnMoveBlockDownCommand, () => SelectedBlockViewModel != null); MoveBlockDownCommand = new RelayCommand(OnMoveBlockDownCommand, () => SelectedBlockViewModel != null);
MoveBlockToBottomCommand = new RelayCommand(OnMoveBlockToBottomCommand, () => SelectedBlockViewModel != null); MoveBlockToBottomCommand = new RelayCommand(OnMoveBlockToBottomCommand, () => SelectedBlockViewModel != null);
AddBlockCommand = new RelayCommand(OnAddBlockCommand, () => SelectedBlockViewModel != null); AddBlockCommand = new RelayCommand(OnAddBlockCommand);
AddSectionCommand = new RelayCommand(OnAddSectionCommand, () => SelectedBlockViewModel != null); AddSectionCommand = new RelayCommand(OnAddSectionCommand, () => SelectedBlockViewModel != null);
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => SelectedBlockViewModel != null);
PasteBlockCommand = new RelayCommand(OnPasteBlockCommand);
_lootFilterBlockViewModelFactory = lootFilterBlockViewModelFactory; _lootFilterBlockViewModelFactory = lootFilterBlockViewModelFactory;
_blockTranslator = blockTranslator;
LootFilterBlockViewModels = new ObservableCollection<ILootFilterBlockViewModel>(); LootFilterBlockViewModels = new ObservableCollection<ILootFilterBlockViewModel>();
} }
@ -47,6 +55,8 @@ namespace Filtration.ViewModels
public RelayCommand MoveBlockToBottomCommand { get; private set; } public RelayCommand MoveBlockToBottomCommand { get; private set; }
public RelayCommand AddBlockCommand { get; private set; } public RelayCommand AddBlockCommand { get; private set; }
public RelayCommand AddSectionCommand { get; private set; } public RelayCommand AddSectionCommand { get; private set; }
public RelayCommand CopyBlockCommand { get; private set; }
public RelayCommand PasteBlockCommand { get; private set; }
public ObservableCollection<ILootFilterBlockViewModel> LootFilterBlockViewModels { get; private set; } public ObservableCollection<ILootFilterBlockViewModel> LootFilterBlockViewModels { get; private set; }
@ -133,6 +143,48 @@ namespace Filtration.ViewModels
} }
} }
private void OnCopyBlockCommand()
{
CopyBlock(SelectedBlockViewModel);
}
public void CopyBlock(ILootFilterBlockViewModel targetBlockViewModel)
{
Clipboard.SetText(_blockTranslator.TranslateLootFilterBlockToString(SelectedBlockViewModel.Block));
}
private void OnPasteBlockCommand()
{
PasteBlock(SelectedBlockViewModel);
}
public void PasteBlock(ILootFilterBlockViewModel targetBlockViewModel)
{
var clipboardText = Clipboard.GetText();
if (clipboardText.IsNullOrEmpty()) return;
var translatedBlock = _blockTranslator.TranslateStringToLootFilterBlock(clipboardText);
if (translatedBlock == null) return;
var vm = _lootFilterBlockViewModelFactory.Create();
vm.Initialise(translatedBlock, this);
if (LootFilterBlockViewModels.Count > 0)
{
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, translatedBlock);
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
}
else
{
Script.LootFilterBlocks.Add(translatedBlock);
LootFilterBlockViewModels.Add(vm);
}
SelectedBlockViewModel = vm;
_isDirty = true;
}
private void OnMoveBlockToTopCommand() private void OnMoveBlockToTopCommand()
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(SelectedBlockViewModel); var currentIndex = LootFilterBlockViewModels.IndexOf(SelectedBlockViewModel);
@ -153,13 +205,13 @@ namespace Filtration.ViewModels
MoveBlockUp(SelectedBlockViewModel); MoveBlockUp(SelectedBlockViewModel);
} }
public void MoveBlockUp(ILootFilterBlockViewModel blockViewModel) public void MoveBlockUp(ILootFilterBlockViewModel targetBlockViewModel)
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(blockViewModel); var currentIndex = LootFilterBlockViewModels.IndexOf(targetBlockViewModel);
if (currentIndex > 0) if (currentIndex > 0)
{ {
var block = blockViewModel.Block; var block = targetBlockViewModel.Block;
var blockPos = Script.LootFilterBlocks.IndexOf(block); var blockPos = Script.LootFilterBlocks.IndexOf(block);
Script.LootFilterBlocks.RemoveAt(blockPos); Script.LootFilterBlocks.RemoveAt(blockPos);
Script.LootFilterBlocks.Insert(blockPos - 1, block); Script.LootFilterBlocks.Insert(blockPos - 1, block);
@ -174,13 +226,13 @@ namespace Filtration.ViewModels
MoveBlockDown(SelectedBlockViewModel); MoveBlockDown(SelectedBlockViewModel);
} }
public void MoveBlockDown(ILootFilterBlockViewModel blockViewModel) public void MoveBlockDown(ILootFilterBlockViewModel targetBlockViewModel)
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(blockViewModel); var currentIndex = LootFilterBlockViewModels.IndexOf(targetBlockViewModel);
if (currentIndex < LootFilterBlockViewModels.Count - 1) if (currentIndex < LootFilterBlockViewModels.Count - 1)
{ {
var block = blockViewModel.Block; var block = targetBlockViewModel.Block;
var blockPos = Script.LootFilterBlocks.IndexOf(block); var blockPos = Script.LootFilterBlocks.IndexOf(block);
Script.LootFilterBlocks.RemoveAt(blockPos); Script.LootFilterBlocks.RemoveAt(blockPos);
Script.LootFilterBlocks.Insert(blockPos + 1, block); Script.LootFilterBlocks.Insert(blockPos + 1, block);
@ -210,7 +262,7 @@ namespace Filtration.ViewModels
AddBlock(SelectedBlockViewModel); AddBlock(SelectedBlockViewModel);
} }
public void AddBlock(ILootFilterBlockViewModel blockViewModel) public void AddBlock(ILootFilterBlockViewModel targetBlockViewModel)
{ {
var vm = _lootFilterBlockViewModelFactory.Create(); var vm = _lootFilterBlockViewModelFactory.Create();
var newBlock = new LootFilterBlock(); var newBlock = new LootFilterBlock();
@ -218,8 +270,8 @@ namespace Filtration.ViewModels
if (LootFilterBlockViewModels.Count > 0) if (LootFilterBlockViewModels.Count > 0)
{ {
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(blockViewModel.Block) + 1, newBlock); Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newBlock);
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(blockViewModel) + 1, vm); LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
} }
else else
{ {
@ -236,14 +288,14 @@ namespace Filtration.ViewModels
AddSection(SelectedBlockViewModel); AddSection(SelectedBlockViewModel);
} }
public void AddSection(ILootFilterBlockViewModel blockViewModel) public void AddSection(ILootFilterBlockViewModel targetBlockViewModel)
{ {
var vm = _lootFilterBlockViewModelFactory.Create(); var vm = _lootFilterBlockViewModelFactory.Create();
var newSection = new LootFilterSection { Description = "New Section" }; var newSection = new LootFilterSection { Description = "New Section" };
vm.Initialise(newSection, this); vm.Initialise(newSection, this);
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(blockViewModel.Block) + 1, newSection); Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newSection);
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(blockViewModel) + 1, vm); LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
_isDirty = true; _isDirty = true;
SelectedBlockViewModel = vm; SelectedBlockViewModel = vm;
RaisePropertyChanged("LootFilterSectionViewModels"); RaisePropertyChanged("LootFilterSectionViewModels");
@ -254,15 +306,15 @@ namespace Filtration.ViewModels
DeleteBlock(SelectedBlockViewModel); DeleteBlock(SelectedBlockViewModel);
} }
public void DeleteBlock(ILootFilterBlockViewModel blockViewModel) public void DeleteBlock(ILootFilterBlockViewModel targetBlockViewModel)
{ {
var result = MessageBox.Show("Are you sure you wish to delete this block?", "Delete Confirmation", var result = MessageBox.Show("Are you sure you wish to delete this block?", "Delete Confirmation",
MessageBoxButton.YesNo, MessageBoxImage.Question); MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes) if (result == MessageBoxResult.Yes)
{ {
Script.LootFilterBlocks.Remove(blockViewModel.Block); Script.LootFilterBlocks.Remove(targetBlockViewModel.Block);
LootFilterBlockViewModels.Remove(blockViewModel); LootFilterBlockViewModels.Remove(targetBlockViewModel);
_isDirty = true; _isDirty = true;
} }
SelectedBlockViewModel = null; SelectedBlockViewModel = null;

View File

@ -13,6 +13,7 @@ namespace Filtration.ViewModels
{ {
internal interface IMainWindowViewModel internal interface IMainWindowViewModel
{ {
void LoadScriptFromFile(string path);
} }
internal class MainWindowViewModel : FiltrationViewModelBase, IMainWindowViewModel internal class MainWindowViewModel : FiltrationViewModelBase, IMainWindowViewModel
@ -38,6 +39,8 @@ namespace Filtration.ViewModels
SaveScriptCommand = new RelayCommand(OnSaveScriptCommand, () => CurrentScriptViewModel != null); SaveScriptCommand = new RelayCommand(OnSaveScriptCommand, () => CurrentScriptViewModel != null);
SaveScriptAsCommand = new RelayCommand(OnSaveScriptAsCommand, () => CurrentScriptViewModel != null); SaveScriptAsCommand = new RelayCommand(OnSaveScriptAsCommand, () => CurrentScriptViewModel != null);
CopyScriptCommand = new RelayCommand(OnCopyScriptCommand, () => CurrentScriptViewModel != null); CopyScriptCommand = new RelayCommand(OnCopyScriptCommand, () => CurrentScriptViewModel != null);
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null);
PasteCommand = new RelayCommand(OnPasteCommand, () => CurrentScriptViewModel != null);
NewScriptCommand = new RelayCommand(OnNewScriptCommand); NewScriptCommand = new RelayCommand(OnNewScriptCommand);
CloseScriptCommand = new RelayCommand<ILootFilterScriptViewModel>(OnCloseScriptCommand, v => CurrentScriptViewModel != null); CloseScriptCommand = new RelayCommand<ILootFilterScriptViewModel>(OnCloseScriptCommand, v => CurrentScriptViewModel != null);
@ -49,6 +52,8 @@ namespace Filtration.ViewModels
public RelayCommand OpenScriptCommand { get; private set; } public RelayCommand OpenScriptCommand { get; private set; }
public RelayCommand SaveScriptCommand { get; private set; } public RelayCommand SaveScriptCommand { get; private set; }
public RelayCommand SaveScriptAsCommand { get; private set; } public RelayCommand SaveScriptAsCommand { get; private set; }
public RelayCommand CopyBlockCommand { get; private set; }
public RelayCommand PasteCommand { get; private set; }
public RelayCommand CopyScriptCommand { get; private set; } public RelayCommand CopyScriptCommand { get; private set; }
public RelayCommand NewScriptCommand { get; private set; } public RelayCommand NewScriptCommand { get; private set; }
public RelayCommand<ILootFilterScriptViewModel> CloseScriptCommand { get; private set; } public RelayCommand<ILootFilterScriptViewModel> CloseScriptCommand { get; private set; }
@ -84,7 +89,7 @@ namespace Filtration.ViewModels
LoadScriptFromFile(openFileDialog.FileName); LoadScriptFromFile(openFileDialog.FileName);
} }
private void LoadScriptFromFile(string path) public void LoadScriptFromFile(string path)
{ {
try try
{ {
@ -200,7 +205,17 @@ namespace Filtration.ViewModels
private void OnCopyScriptCommand() private void OnCopyScriptCommand()
{ {
Clipboard.SetText(_lootFilterScriptTranslator.TranslateLootFilterScriptToString(_loadedScript)); Clipboard.SetText(_lootFilterScriptTranslator.TranslateLootFilterScriptToString(_currentScriptViewModel.Script));
}
private void OnCopyBlockCommand()
{
_currentScriptViewModel.CopyBlock(_currentScriptViewModel.SelectedBlockViewModel);
}
private void OnPasteCommand()
{
_currentScriptViewModel.PasteBlock(_currentScriptViewModel.SelectedBlockViewModel);
} }
private void OnNewScriptCommand() private void OnNewScriptCommand()

View File

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:fa="http://schemas.fontawesome.io/icons/"
xmlns:userControls="clr-namespace:Filtration.UserControls" xmlns:userControls="clr-namespace:Filtration.UserControls"
xmlns:viewModels="clr-namespace:Filtration.ViewModels" xmlns:viewModels="clr-namespace:Filtration.ViewModels"
xmlns:blockItemBaseTypes="clr-namespace:Filtration.Models.BlockItemBaseTypes" xmlns:blockItemBaseTypes="clr-namespace:Filtration.Models.BlockItemBaseTypes"
@ -93,7 +92,7 @@
<TextBlock Grid.Column="0" Text="{Binding DisplayHeading}" Style="{StaticResource DisplayHeading}" /> <TextBlock Grid.Column="0" Text="{Binding DisplayHeading}" Style="{StaticResource DisplayHeading}" />
<WrapPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Right"> <WrapPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Right">
<Button Command="{Binding ElementName=SettingsGrid, Path=DataContext.PlaySoundCommand}" Width="20" Height="20" Padding="3" Background="Transparent" BorderBrush="Transparent"> <Button Command="{Binding ElementName=SettingsGrid, Path=DataContext.PlaySoundCommand}" Width="20" Height="20" Padding="3" Background="Transparent" BorderBrush="Transparent">
<fa:ImageAwesome Icon="PlayCircle" VerticalAlignment="Center" HorizontalAlignment="Center" /> <Image Source="/Filtration;component/Resources/Icons/play_icon.png" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Button> </Button>
<ComboBox ItemsSource="{Binding ElementName=SettingsGrid, Path=DataContext.SoundsAvailable}" SelectedValue="{Binding Value}" /> <ComboBox ItemsSource="{Binding ElementName=SettingsGrid, Path=DataContext.SoundsAvailable}" SelectedValue="{Binding Value}" />
<xctk:ShortUpDown Value="{Binding Path=SecondValue}" Minimum="1" Maximum="100" HorizontalAlignment="Right" ToolTip="Volume"/> <xctk:ShortUpDown Value="{Binding Path=SecondValue}" Minimum="1" Maximum="100" HorizontalAlignment="Right" ToolTip="Volume"/>

View File

@ -8,7 +8,6 @@
xmlns:views="clr-namespace:Filtration.Views" xmlns:views="clr-namespace:Filtration.Views"
xmlns:blockItemBaseTypes="clr-namespace:Filtration.Models.BlockItemBaseTypes" xmlns:blockItemBaseTypes="clr-namespace:Filtration.Models.BlockItemBaseTypes"
xmlns:blockItemTypes="clr-namespace:Filtration.Models.BlockItemTypes" xmlns:blockItemTypes="clr-namespace:Filtration.Models.BlockItemTypes"
xmlns:fa="http://schemas.fontawesome.io/icons/"
xmlns:enums="clr-namespace:Filtration.Enums" xmlns:enums="clr-namespace:Filtration.Enums"
xmlns:extensions="clr-namespace:Filtration.Extensions" xmlns:extensions="clr-namespace:Filtration.Extensions"
mc:Ignorable="d" mc:Ignorable="d"
@ -39,29 +38,18 @@
<Expander Grid.Column="1" Style="{StaticResource ExpanderRightAlignStyle}" x:Name="TestExpander" ToolTip="{Binding BlockDescription}"> <Expander Grid.Column="1" Style="{StaticResource ExpanderRightAlignStyle}" x:Name="TestExpander" ToolTip="{Binding BlockDescription}">
<Expander.ContextMenu> <Expander.ContextMenu>
<ContextMenu> <ContextMenu>
<ContextMenu.Resources>
<fa:ImageAwesome Icon="Plus" Height="15" Width="15" x:Key="AddBlockIcon" />
<fa:ImageAwesome Icon="ListUl" Height="15" Width="15" x:Key="AddSectionIcon" />
<fa:ImageAwesome Icon="Minus" Height="15" Width="15" x:Key="DeleteBlockIcon" />
<fa:ImageAwesome Icon="AngleDoubleUp" Height="15" Width="15" x:Key="MoveBlockToTopIcon" />
<fa:ImageAwesome Icon="AngleUp" Height="15" Width="15" x:Key="MoveBlockUpIcon" />
<fa:ImageAwesome Icon="AngleDown" Height="15" Width="15" x:Key="MoveBlockDownIcon" />
<fa:ImageAwesome Icon="AngleDoubleDown" Height="15" Width="15" x:Key="MoveBlockToBottomIcon" />
<fa:ImageAwesome Icon="Copy" Height="15" Width="15" x:Key="CopyIcon" />
<fa:ImageAwesome Icon="Paste" Height="15" Width="15" x:Key="PasteIcon" />
</ContextMenu.Resources>
<ContextMenu.Items> <ContextMenu.Items>
<MenuItem Header="Copy" Command="{Binding CopyBlockCommand}" Icon="{StaticResource CopyIcon}" /> <MenuItem Header="Copy" Command="{Binding CopyBlockCommand}" Icon="{DynamicResource CopyIcon}" />
<MenuItem Header="Paste" Command="{Binding CopyBlockCommand}" Icon="{StaticResource PasteIcon}" /> <MenuItem Header="Paste" Command="{Binding PasteBlockCommand}" Icon="{DynamicResource PasteIcon}" />
<Separator /> <Separator />
<MenuItem Header="Add Block" Command="{Binding Data.AddBlockCommand, Source={StaticResource proxy}}" Icon="{StaticResource AddBlockIcon}" /> <MenuItem Header="Add Block" Command="{Binding Data.AddBlockCommand, Source={StaticResource proxy}}" Icon="{DynamicResource AddBlockIcon}" />
<MenuItem Header="Add Section" Command="{Binding Data.AddSectionCommand, Source={StaticResource proxy}}" Icon="{StaticResource AddSectionIcon}"> <MenuItem Header="Add Section" Command="{Binding Data.AddSectionCommand, Source={StaticResource proxy}}" Icon="{DynamicResource AddSectionIcon}">
</MenuItem> </MenuItem>
<Separator /> <Separator />
<MenuItem Header="Delete Block" Command="{Binding Data.DeleteBlockCommand, Source={StaticResource proxy}}" Icon="{StaticResource DeleteBlockIcon}" /> <MenuItem Header="Delete Block" Command="{Binding Data.DeleteBlockCommand, Source={StaticResource proxy}}" Icon="{DynamicResource DeleteIcon}" />
<Separator /> <Separator />
<MenuItem Header="Move Block Up" Command="{Binding Data.MoveBlockUpCommand, Source={StaticResource proxy}}" Icon="{StaticResource MoveBlockUpIcon}" /> <MenuItem Header="Move Block Up" Command="{Binding Data.MoveBlockUpCommand, Source={StaticResource proxy}}" Icon="{DynamicResource MoveUpIcon}" />
<MenuItem Header="Move Block Down" Command="{Binding Data.MoveBlockDownCommand, Source={StaticResource proxy}}" Icon="{StaticResource MoveBlockDownIcon}" /> <MenuItem Header="Move Block Down" Command="{Binding Data.MoveBlockDownCommand, Source={StaticResource proxy}}" Icon="{DynamicResource MoveDownIcon}" />
</ContextMenu.Items> </ContextMenu.Items>
</ContextMenu> </ContextMenu>
</Expander.ContextMenu> </Expander.ContextMenu>
@ -92,7 +80,7 @@
<!-- Item Preview Box --> <!-- Item Preview Box -->
<WrapPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center"> <WrapPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
<fa:ImageAwesome Icon="VolumeUp" VerticalAlignment="Center" HorizontalAlignment="Center" Height="15" Width="15" Margin="0,0,3,0" Visibility="{Binding HasSound, Converter={StaticResource BooleanVisibilityConverter}}" /> <Image Source="/Filtration;component/Resources/Icons/speaker_icon.png" VerticalAlignment="Center" HorizontalAlignment="Center" Height="15" Width="15" Margin="0,0,3,0" Visibility="{Binding HasSound, Converter={StaticResource BooleanVisibilityConverter}}" />
<ToggleButton Width="140" <ToggleButton Width="140"
Height="25" Height="25"
Margin="0,0,8,0" Margin="0,0,8,0"

View File

@ -49,24 +49,24 @@
<Border Grid.Row="1" BorderThickness="2" BorderBrush="SlateGray" CornerRadius="4" Margin="5,5,5,5"> <Border Grid.Row="1" BorderThickness="2" BorderBrush="SlateGray" CornerRadius="4" Margin="5,5,5,5">
<DockPanel LastChildFill="True"> <DockPanel LastChildFill="True">
<ToolBarTray DockPanel.Dock="Top"> <ToolBarTray DockPanel.Dock="Top">
<ToolBarTray.Resources> <!--<ToolBarTray.Resources>
<Style TargetType="{x:Type fa:ImageAwesome}"> <Style TargetType="{x:Type fa:ImageAwesome}">
<Style.Setters> <Style.Setters>
<Setter Property="Width" Value="15" /> <Setter Property="Width" Value="15" />
<Setter Property="Height" Value="15" /> <Setter Property="Height" Value="15" />
</Style.Setters> </Style.Setters>
</Style> </Style>
</ToolBarTray.Resources> </ToolBarTray.Resources>-->
<ToolBar> <ToolBar>
<Button ToolTip="Add Block" Command="{Binding AddBlockCommand}" Content="{StaticResource AddBlockToolbarIcon}" /> <Button ToolTip="Add Block" Command="{Binding AddBlockCommand}" Content="{DynamicResource AddBlockIcon}" />
<Button ToolTip="Add Section" Command="{Binding AddSectionCommand}" Content="{StaticResource AddSectionToolbarIcon}" /> <Button ToolTip="Add Section" Command="{Binding AddSectionCommand}" Content="{DynamicResource AddSectionIcon}" />
<Button ToolTip="Delete Block/Section" Command="{Binding DeleteBlockCommand}" Content="{StaticResource DeleteBlockToolbarIcon}" /> <Button ToolTip="Delete Block/Section" Command="{Binding DeleteBlockCommand}" Content="{DynamicResource DeleteIcon}" />
</ToolBar> </ToolBar>
<ToolBar> <ToolBar>
<Button ToolTip="Move Block to Top" Command="{Binding MoveBlockToTopCommand}" Content="{StaticResource MoveBlockToTopToolbarIcon}" /> <Button ToolTip="Move Block to Top" Command="{Binding MoveBlockToTopCommand}" Content="{DynamicResource MoveToTopIcon}" />
<Button ToolTip="Move Block Up" Command="{Binding MoveBlockUpCommand}" Content="{StaticResource MoveBlockUpToolbarIcon}" /> <Button ToolTip="Move Block Up" Command="{Binding MoveBlockUpCommand}" Content="{DynamicResource MoveUpIcon}" />
<Button ToolTip="Move Block Down" Command="{Binding MoveBlockDownCommand}" Content="{StaticResource MoveBlockDownToolbarIcon}" /> <Button ToolTip="Move Block Down" Command="{Binding MoveBlockDownCommand}" Content="{DynamicResource MoveDownIcon}" />
<Button ToolTip="Move Block to Bottom" Command="{Binding MoveBlockToBottomCommand}" Content="{StaticResource MoveBlockToBottomToolbarIcon}" /> <Button ToolTip="Move Block to Bottom" Command="{Binding MoveBlockToBottomCommand}" Content="{DynamicResource MoveToBottomIcon}" />
</ToolBar> </ToolBar>
</ToolBarTray> </ToolBarTray>
<Expander DockPanel.Dock="Left" ExpandDirection="Right" MaxWidth="200" HorizontalAlignment="Left" > <Expander DockPanel.Dock="Left" ExpandDirection="Right" MaxWidth="200" HorizontalAlignment="Left" >

View File

@ -11,7 +11,8 @@ namespace Filtration.Views
private void SectionBrowserListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e) private void SectionBrowserListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{ {
BlocksListBox.ScrollIntoView(((ListBox)sender).SelectedItem); var listBox = (ListBox) sender;
BlocksListBox.ScrollIntoView(listBox.SelectedItem);
} }
} }
} }

View File

@ -8,21 +8,42 @@
xmlns:views="clr-namespace:Filtration.Views" xmlns:views="clr-namespace:Filtration.Views"
xmlns:viewModels="clr-namespace:Filtration.ViewModels" xmlns:viewModels="clr-namespace:Filtration.ViewModels"
xmlns:userControls="clr-namespace:Filtration.UserControls" xmlns:userControls="clr-namespace:Filtration.UserControls"
xmlns:fa="http://schemas.fontawesome.io/icons/"
mc:Ignorable="d" mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=viewModels:MainWindowViewModel}" d:DataContext="{d:DesignInstance Type=viewModels:MainWindowViewModel}"
Title="Filtration - v0.1" Height="690" Width="930" BorderThickness="1" BorderBrush="Black"> Title="Filtration - v0.1" Height="690" Width="930" BorderThickness="1" BorderBrush="Black">
<controls:MetroWindow.Resources>
<Image Source="/Filtration;component/Resources/Icons/add_block_icon.png" x:Key="AddBlockIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/add_section_icon.png" x:Key="AddSectionIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/copy_icon.png" x:Key="CopyIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/delete_icon.png" x:Key="DeleteIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/new_icon.png" x:Key="NewIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/open_icon.png" x:Key="OpenIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/paste_icon.png" x:Key="PasteIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/save_all_icon.png" x:Key="SaveAllIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/save_icon.png" x:Key="SaveIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/arrow_up_large_icon.png" x:Key="MoveToTopIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/arrow_up_small_icon.png" x:Key="MoveUpIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/arrow_down_large_icon.png" x:Key="MoveToBottomIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/arrow_down_small_icon.png" x:Key="MoveDownIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/speaker_icon.png" x:Key="SpeakerIcon" x:Shared="false" />
<Image Source="/Filtration;component/Resources/Icons/play_icon.png" x:Key="PlayIcon" x:Shared="false" />
</controls:MetroWindow.Resources>
<DockPanel> <DockPanel>
<Menu DockPanel.Dock="Top"> <Menu DockPanel.Dock="Top">
<MenuItem Header="_File"> <MenuItem Header="_File">
<MenuItem Header="_New Script" Command="{Binding NewScriptCommand}"/> <MenuItem Header="_New Script" Command="{Binding NewScriptCommand}" Icon="{StaticResource NewIcon}"/>
<MenuItem Header="_Open Script" Command="{Binding OpenScriptCommand}"/> <MenuItem Header="_Open Script" Command="{Binding OpenScriptCommand}" Icon="{StaticResource OpenIcon}"/>
<MenuItem Header="_Save Script" Command="{Binding SaveScriptCommand}"/> <MenuItem Header="_Save Script" Command="{Binding SaveScriptCommand}" Icon="{StaticResource SaveIcon}"/>
<MenuItem Header="Save Script _As" Command="{Binding SaveScriptAsCommand}"/> <MenuItem Header="Save Script _As" Command="{Binding SaveScriptAsCommand}" Icon="{StaticResource SaveIcon}"/>
<MenuItem Header="_Close Script" Command="{Binding CloseScriptCommand}" CommandParameter="{Binding CurrentScriptViewModel}"/> <MenuItem Header="_Close Script" Command="{Binding CloseScriptCommand}" CommandParameter="{Binding CurrentScriptViewModel}"/>
<MenuItem Header="E_xit"/> <MenuItem Header="E_xit"/>
</MenuItem> </MenuItem>
<MenuItem Header="_Edit"> <MenuItem Header="_Edit">
<MenuItem Header="_Copy Script to Clipboard" Command="{Binding CopyScriptCommand}" /> <MenuItem Header="_Copy Block" Command="{Binding CopyBlockCommand}" Icon="{StaticResource CopyIcon}" />
<MenuItem Header="_Paste Block" Command="{Binding PasteCommand}" Icon="{StaticResource PasteIcon}" />
<Separator />
<MenuItem Header="Copy _Script" Command="{Binding CopyScriptCommand}" Icon="{StaticResource CopyIcon}" />
</MenuItem> </MenuItem>
</Menu> </Menu>
<ToolBarTray DockPanel.Dock="Top"> <ToolBarTray DockPanel.Dock="Top">

View File

@ -5,14 +5,23 @@ namespace Filtration.Views
public interface IMainWindow public interface IMainWindow
{ {
void Show(); void Show();
void OpenScriptFromCommandLineArgument(string scriptPath);
} }
internal partial class MainWindow : IMainWindow internal partial class MainWindow : IMainWindow
{ {
private readonly IMainWindowViewModel _mainWindowViewModel;
public MainWindow(IMainWindowViewModel mainWindowViewModel) public MainWindow(IMainWindowViewModel mainWindowViewModel)
{ {
_mainWindowViewModel = mainWindowViewModel;
InitializeComponent(); InitializeComponent();
DataContext = mainWindowViewModel; DataContext = mainWindowViewModel;
} }
public void OpenScriptFromCommandLineArgument(string scriptPath)
{
_mainWindowViewModel.LoadScriptFromFile(scriptPath);
}
} }
} }

View File

@ -4,7 +4,6 @@
<package id="Castle.Windsor" version="3.3.0" targetFramework="net451" /> <package id="Castle.Windsor" version="3.3.0" targetFramework="net451" />
<package id="CommonServiceLocator" version="1.3" targetFramework="net451" /> <package id="CommonServiceLocator" version="1.3" targetFramework="net451" />
<package id="Extended.Wpf.Toolkit" version="2.4" targetFramework="net451" /> <package id="Extended.Wpf.Toolkit" version="2.4" targetFramework="net451" />
<package id="FontAwesome.WPF" version="4.3.0.2" targetFramework="net451" />
<package id="MahApps.Metro" version="1.1.2.0" targetFramework="net451" /> <package id="MahApps.Metro" version="1.1.2.0" targetFramework="net451" />
<package id="MvvmLight" version="5.1.1.0" targetFramework="net451" /> <package id="MvvmLight" version="5.1.1.0" targetFramework="net451" />
<package id="MvvmLightLibs" version="5.1.1.0" targetFramework="net451" /> <package id="MvvmLightLibs" version="5.1.1.0" targetFramework="net451" />