diff --git a/.gitignore b/.gitignore index a599a267d4..a8ef638bda 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ [Dd]ebug/ [Rr]elease/ x64/ -build/ [Bb]in/ [Oo]bj/ diff --git a/Perspex.sln b/Perspex.sln index 874bab37ef..89a70f102b 100644 --- a/Perspex.sln +++ b/Perspex.sln @@ -57,9 +57,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Input.UnitTests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Direct2D1.UnitTests", "tests\Perspex.Direct2D1.UnitTests\Perspex.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Xaml", "src\Markup\Perspex.Xaml\Perspex.Xaml.csproj", "{3E53A01A-B331-47F3-B828-4A5717E77A24}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Xaml.Desktop", "src\Markup\Perspex.Xaml.Desktop\Perspex.Xaml.Desktop.csproj", "{EB468C39-AAC4-4963-A7B2-0A405EA63EDD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Markup.Xaml", "src\Markup\Perspex.Markup.Xaml\Perspex.Markup.Xaml.csproj", "{3E53A01A-B331-47F3-B828-4A5717E77A24}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlTestApplication", "samples\XamlTestApplication\XamlTestApplication.csproj", "{78CAFE33-DBEB-4132-8A28-81CFE8A4933C}" EndProject @@ -178,10 +176,6 @@ Global {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.Build.0 = Release|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Release|Any CPU.Build.0 = Release|Any CPU {78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Debug|Any CPU.Build.0 = Debug|Any CPU {78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -205,7 +199,6 @@ Global {AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C} - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD} = {8B6A8209-894F-4BA1-B880-965FD453982C} {78CAFE33-DBEB-4132-8A28-81CFE8A4933C} = {9B9E3891-2366-4253-A952-D08BCEB71098} EndGlobalSection EndGlobal diff --git a/nuget/.gitignore b/nuget/.gitignore new file mode 100644 index 0000000000..93a9893778 --- /dev/null +++ b/nuget/.gitignore @@ -0,0 +1,7 @@ +- build/ + +**/lib/**/*.dll +**/lib/**/*.xml +**/build/**/*.dll +**/build/**/*.xml +*.nupkg \ No newline at end of file diff --git a/nuget/Perspex/Perspex.nuspec b/nuget/Perspex/Perspex.nuspec new file mode 100644 index 0000000000..432f210f05 --- /dev/null +++ b/nuget/Perspex/Perspex.nuspec @@ -0,0 +1,24 @@ + + + + Perspex + 0.0.1-alpha + stevenk + stevenk + http://opensource.org/licenses/MIT + https://github.com/grokys/Perspex/ + false + The Perspex UI framework + Initial alpha release. + Copyright 2015 + Perspex + + + + + + + + + + \ No newline at end of file diff --git a/nuget/Perspex/build/net45/perspex.targets b/nuget/Perspex/build/net45/perspex.targets new file mode 100644 index 0000000000..70d36cf835 --- /dev/null +++ b/nuget/Perspex/build/net45/perspex.targets @@ -0,0 +1,11 @@ + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + \ No newline at end of file diff --git a/nuget/build.bat b/nuget/build.bat new file mode 100644 index 0000000000..8ef89045de --- /dev/null +++ b/nuget/build.bat @@ -0,0 +1,39 @@ +SET lib="Perspex\lib\portable-windows8+net45" +SET build="Perspex\build\net45" + +mkdir %lib% +mkdir %build% + +copy ..\src\Perspex.Animation\bin\Release\Perspex.Animation.dll %lib% +copy ..\src\Perspex.Animation\bin\Release\Perspex.Animation.xml %lib% +copy ..\src\Perspex.Application\bin\Release\Perspex.Application.dll %lib% +copy ..\src\Perspex.Application\bin\Release\Perspex.Application.xml %lib% +copy ..\src\Perspex.Base\bin\Release\Perspex.Base.dll %lib% +copy ..\src\Perspex.Base\bin\Release\Perspex.Base.xml %lib% +copy ..\src\Perspex.Controls\bin\Release\Perspex.Controls.dll %lib% +copy ..\src\Perspex.Controls\bin\Release\Perspex.Controls.xml %lib% +copy ..\src\Perspex.Diagnostics\bin\Release\\Perspex.Diagnostics.dll %lib% +copy ..\src\Perspex.Diagnostics\bin\Release\\Perspex.Diagnostics.xml %lib% +copy ..\src\Perspex.Input\bin\Release\Perspex.Input.dll %lib% +copy ..\src\Perspex.Input\bin\Release\Perspex.Input.xml %lib% +copy ..\src\Perspex.Interactivity\bin\Release\Perspex.Interactivity.dll %lib% +copy ..\src\Perspex.Interactivity\bin\Release\Perspex.Interactivity.xml %lib% +copy ..\src\Perspex.Layout\bin\Release\Perspex.Layout.dll %lib% +copy ..\src\Perspex.Layout\bin\Release\Perspex.Layout.xml %lib% +copy ..\src\Perspex.SceneGraph\bin\Release\Perspex.SceneGraph.dll %lib% +copy ..\src\Perspex.SceneGraph\bin\Release\Perspex.SceneGraph.xml %lib% +copy ..\src\Perspex.Styling\bin\Release\Perspex.Styling.dll %lib% +copy ..\src\Perspex.Styling\bin\Release\Perspex.Styling.xml %lib% +copy ..\src\Perspex.Themes.Default\bin\Release\Perspex.Themes.Default.dll %lib% +copy ..\src\Perspex.Themes.Default\bin\Release\Perspex.Themes.Default.xml %lib% +copy ..\src\Markup\Perspex.Markup.Xaml\bin\Release\Perspex.Markup.Xaml.dll %lib% +copy ..\src\Markup\Perspex.Markup.Xaml\bin\Release\Perspex.Markup.Xaml.xml %lib% +copy ..\src\NGenerics\bin\Release\NGenerics.dll %lib% + +copy ..\src\Windows\Perspex.Direct2D1\bin\Release\Perspex.Direct2D1.dll %build% +copy ..\src\Windows\Perspex.Direct2D1\bin\Release\SharpDX.dll %build% +copy ..\src\Windows\Perspex.Direct2D1\bin\Release\SharpDX.Direct2D1.dll %build% +copy ..\src\Windows\Perspex.Direct2D1\bin\Release\SharpDX.DXGI.dll %build% +copy ..\src\Windows\Perspex.Win32\bin\Release\Perspex.Win32.dll %build% + +nuget.exe pack Perspex\Perspex.nuspec \ No newline at end of file diff --git a/samples/XamlTestApplication/Program.cs b/samples/XamlTestApplication/Program.cs index 5b8f3ba0ba..e24f228086 100644 --- a/samples/XamlTestApplication/Program.cs +++ b/samples/XamlTestApplication/Program.cs @@ -1,22 +1,14 @@ -#if PERSPEX_GTK -using Perspex.Gtk; -#endif - -namespace XamlTestApplication +namespace XamlTestApplication { using System; using System.Diagnostics; using System.Windows.Threading; - using Glass; - using OmniXaml.AppServices.Mvvm; - using OmniXaml.AppServices.NetCore; using Perspex; using Perspex.Collections; using Perspex.Controls; using Perspex.Controls.Templates; - using Perspex.Input; - using Perspex.Xaml.Desktop; using ReactiveUI; + using Views; class Item { @@ -55,12 +47,7 @@ namespace XamlTestApplication var testCommand = ReactiveCommand.Create(); testCommand.Subscribe(_ => Debug.WriteLine("Test command executed.")); - var typeFactory = new PerspexInflatableTypeFactory(); - - var viewFactory = new ViewFactory(typeFactory); - viewFactory.RegisterViews(ViewRegistration.FromTypes(Assemblies.AssembliesInAppFolder.AllExportedTypes())); - - var window = (Window) viewFactory.GetWindow("Main"); + var window = new MainWindow(); window.Show(); Application.Current.Run(window); } diff --git a/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index e3f19512be..18760d9601 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -1,15 +1,27 @@ namespace XamlTestApplication.Views { - using OmniXaml.AppServices.Mvvm; + using System; + using System.Globalization; + using System.IO; + using System.Reflection; + using System.Resources; + using OmniXaml; + using Perspex.Controls; using Perspex.Diagnostics; - using Perspex.Xaml.Desktop; + using Perspex.Markup.Xaml; - [ViewToken("Main", typeof(MainWindow))] - public class MainWindow : PerspexWindow + public class MainWindow : Window { public MainWindow() { + this.InitializeComponent(); + DevTools.Attach(this); } + + private void InitializeComponent() + { + PerspexXamlLoader.Load(this); + } } } \ No newline at end of file diff --git a/samples/XamlTestApplication/Views/MainWindow.xaml b/samples/XamlTestApplication/Views/MainWindow.xaml index ad313cccb6..3294edb8b0 100644 --- a/samples/XamlTestApplication/Views/MainWindow.xaml +++ b/samples/XamlTestApplication/Views/MainWindow.xaml @@ -1,4 +1,7 @@ - + diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj index ef9447af18..d365195058 100644 --- a/samples/XamlTestApplication/XamlTestApplication.csproj +++ b/samples/XamlTestApplication/XamlTestApplication.csproj @@ -177,11 +177,7 @@ {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} Perspex.Themes.Default - - {eb468c39-aac4-4963-a7b2-0a405ea63edd} - Perspex.Xaml.Desktop - - + {3e53a01a-b331-47f3-b828-4a5717e77a24} Perspex.Xaml diff --git a/src/Markup/Perspex.Xaml/Context/PerspexObjectAssembler.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs similarity index 96% rename from src/Markup/Perspex.Xaml/Context/PerspexObjectAssembler.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs index b147ad42ee..23e7eb3696 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexObjectAssembler.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using System; using OmniXaml; diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs similarity index 87% rename from src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs index 3253d53f85..0c065bb1bf 100644 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs @@ -1,19 +1,23 @@ -namespace Perspex.Xaml.Desktop +namespace Perspex.Markup.Xaml.Context { - using Context; - using HighLevel; using OmniXaml; using OmniXaml.ObjectAssembler; using OmniXaml.Parsers.ProtoParser; using OmniXaml.Parsers.XamlNodes; + using Perspex.Markup.Xaml.Context; public class PerspexParserFactory : IXamlParserFactory { private readonly IWiringContext wiringContext; + public PerspexParserFactory() + : this(new TypeFactory()) + { + } + public PerspexParserFactory(ITypeFactory typeFactory) { - wiringContext = PerspexWiringContextFactory.GetContext(typeFactory); + wiringContext = new PerspexWiringContext(typeFactory); } public IXamlParser CreateForReadingFree() diff --git a/src/Markup/Perspex.Xaml/Context/PerspexTypeRepository.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs similarity index 95% rename from src/Markup/Perspex.Xaml/Context/PerspexTypeRepository.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs index fa7dc74fc4..21079e6cac 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexTypeRepository.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using System; using DataBinding; diff --git a/src/Markup/Perspex.Xaml/Context/PerspexWiringContext.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs similarity index 99% rename from src/Markup/Perspex.Xaml/Context/PerspexWiringContext.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs index c97a5cc8f2..d52fe9df92 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexWiringContext.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using System.Collections.Generic; using System.Collections.ObjectModel; diff --git a/src/Markup/Perspex.Xaml/Context/PerspexXamlMember.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs similarity index 95% rename from src/Markup/Perspex.Xaml/Context/PerspexXamlMember.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs index 58ad1c6c64..d1c8575afc 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexXamlMember.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using DataBinding; using OmniXaml; diff --git a/src/Markup/Perspex.Xaml/Context/PerspexXamlMemberValuePlugin.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs similarity index 98% rename from src/Markup/Perspex.Xaml/Context/PerspexXamlMemberValuePlugin.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs index e52031e023..175706d5fa 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexXamlMemberValuePlugin.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using System; using System.Reactive.Linq; diff --git a/src/Markup/Perspex.Xaml/Context/PerspexXamlType.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs similarity index 96% rename from src/Markup/Perspex.Xaml/Context/PerspexXamlType.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs index bf377d03df..687d70dae8 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexXamlType.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using System; using DataBinding; diff --git a/src/Markup/Perspex.Xaml/Converters/BitmapConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs similarity index 95% rename from src/Markup/Perspex.Xaml/Converters/BitmapConverter.cs rename to src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs index 3d758163d8..3075e234c9 100644 --- a/src/Markup/Perspex.Xaml/Converters/BitmapConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Converters +namespace Perspex.Markup.Xaml.Converters { using System; using System.Globalization; diff --git a/src/Markup/Perspex.Xaml/Converters/BrushConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs similarity index 98% rename from src/Markup/Perspex.Xaml/Converters/BrushConverter.cs rename to src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs index 28e50ac615..5236df0df8 100644 --- a/src/Markup/Perspex.Xaml/Converters/BrushConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Converters +namespace Perspex.Markup.Xaml.Converters { using System; using System.Globalization; diff --git a/src/Markup/Perspex.Xaml/Converters/GridLengthTypeConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs similarity index 96% rename from src/Markup/Perspex.Xaml/Converters/GridLengthTypeConverter.cs rename to src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs index 0a013a92a4..3f3b2d39f6 100644 --- a/src/Markup/Perspex.Xaml/Converters/GridLengthTypeConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Converters +namespace Perspex.Markup.Xaml.Converters { using System; using System.Globalization; diff --git a/src/Markup/Perspex.Xaml/Converters/ThicknessConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs similarity index 97% rename from src/Markup/Perspex.Xaml/Converters/ThicknessConverter.cs rename to src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs index 54c98316f6..e4768c1afe 100644 --- a/src/Markup/Perspex.Xaml/Converters/ThicknessConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Converters +namespace Perspex.Markup.Xaml.Converters { using System; using System.Collections.Generic; diff --git a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs similarity index 98% rename from src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs index 5a1ccb6faa..b13b5d4bf9 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding.ChangeTracking +namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { using System; using System.Collections.Generic; diff --git a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs similarity index 95% rename from src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs index 40e73793f3..6b5819302f 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding.ChangeTracking +namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { using System; using System.Reflection; diff --git a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/PropertyPath.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs similarity index 90% rename from src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/PropertyPath.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs index 9485af8b5b..9a08ee4354 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/PropertyPath.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding.ChangeTracking +namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { public class PropertyPath { diff --git a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs similarity index 93% rename from src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs index 28913efc48..518d9fca64 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding.ChangeTracking +namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { using System; using System.Reflection; diff --git a/src/Markup/Perspex.Xaml/DataBinding/DataContextChangeSynchronizer.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs similarity index 99% rename from src/Markup/Perspex.Xaml/DataBinding/DataContextChangeSynchronizer.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs index 739f7d26b5..d0ff23c8dc 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/DataContextChangeSynchronizer.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { using System; using System.Diagnostics; diff --git a/src/Markup/Perspex.Xaml/DataBinding/IPerspexPropertyBinder.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs similarity index 86% rename from src/Markup/Perspex.Xaml/DataBinding/IPerspexPropertyBinder.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs index 13cc8c6da0..968c64ecb5 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/IPerspexPropertyBinder.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { using System.Collections.Generic; diff --git a/src/Markup/Perspex.Xaml/DataBinding/PerspexPropertyBinder.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs similarity index 97% rename from src/Markup/Perspex.Xaml/DataBinding/PerspexPropertyBinder.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs index 00be05674c..7aaab8377d 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/PerspexPropertyBinder.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { using System; using System.Collections.Generic; diff --git a/src/Markup/Perspex.Xaml/DataBinding/SourceBindingEndpoint.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs similarity index 93% rename from src/Markup/Perspex.Xaml/DataBinding/SourceBindingEndpoint.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs index cc5ac9c2f5..8669e38086 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/SourceBindingEndpoint.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { using System; using System.ComponentModel; diff --git a/src/Markup/Perspex.Xaml/DataBinding/TargetBindingEndpoint.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs similarity index 87% rename from src/Markup/Perspex.Xaml/DataBinding/TargetBindingEndpoint.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs index 87d3f8ce0d..2143c264c3 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/TargetBindingEndpoint.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { public class TargetBindingEndpoint { diff --git a/src/Markup/Perspex.Xaml/DataBinding/XamlBinding.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs similarity index 97% rename from src/Markup/Perspex.Xaml/DataBinding/XamlBinding.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs index ce560d052f..7703fa4c23 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/XamlBinding.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { using System; using System.Diagnostics; diff --git a/src/Markup/Perspex.Xaml/DataBinding/XamlBindingDefinition.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs similarity index 94% rename from src/Markup/Perspex.Xaml/DataBinding/XamlBindingDefinition.cs rename to src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs index 26847901b7..1505330cee 100644 --- a/src/Markup/Perspex.Xaml/DataBinding/XamlBindingDefinition.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.DataBinding +namespace Perspex.Markup.Xaml.DataBinding { using ChangeTracking; using Controls; diff --git a/src/Markup/Perspex.Markup.Xaml/GlobalSuppressions.cs b/src/Markup/Perspex.Markup.Xaml/GlobalSuppressions.cs new file mode 100644 index 0000000000..3d080850f1 --- /dev/null +++ b/src/Markup/Perspex.Markup.Xaml/GlobalSuppressions.cs @@ -0,0 +1,14 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( + "StyleCop.CSharp.MaintainabilityRules", + "SA1401:Fields must be private", + Justification = "PerspexProperty fields should not be private.")] +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( + "StyleCop.CSharp.DocumentationRules", + "SA1609:Property documentation must have value", + Justification = "This rule is fscking pointless")] \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/MarkupExtensions/BindingExtension.cs b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs similarity index 96% rename from src/Markup/Perspex.Xaml/MarkupExtensions/BindingExtension.cs rename to src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs index e76839ab46..aacf80dfda 100644 --- a/src/Markup/Perspex.Xaml/MarkupExtensions/BindingExtension.cs +++ b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.MarkupExtensions +namespace Perspex.Markup.Xaml.MarkupExtensions { using System.Linq; using Controls; diff --git a/src/Markup/Perspex.Xaml/MarkupExtensions/TypeExtension.cs b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs similarity index 95% rename from src/Markup/Perspex.Xaml/MarkupExtensions/TypeExtension.cs rename to src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs index ab5dc16e5e..8a8cff7b4c 100644 --- a/src/Markup/Perspex.Xaml/MarkupExtensions/TypeExtension.cs +++ b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.MarkupExtensions +namespace Perspex.Markup.Xaml.MarkupExtensions { using System; using Glass; diff --git a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj similarity index 92% rename from src/Markup/Perspex.Xaml/Perspex.Xaml.csproj rename to src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj index 00ae1936a3..b1dfe8478d 100644 --- a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj +++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj @@ -8,8 +8,8 @@ {3E53A01A-B331-47F3-B828-4A5717E77A24} Library Properties - Perspex.Xaml - Perspex.Xaml + Perspex.Markup.Xaml + Perspex.Markup.Xaml en-US 512 {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} @@ -32,16 +32,15 @@ TRACE prompt 4 + bin\Release\Perspex.Markup.Xaml.XML Properties\SharedAssemblyInfo.cs - - - + @@ -50,6 +49,7 @@ + @@ -68,6 +68,7 @@ + @@ -78,6 +79,10 @@ {d211e587-d8bc-45b9-95a4-f297c8fa5200} Perspex.Animation + + {799a7bb5-3c2c-48b6-85a7-406a12c420da} + Perspex.Application + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base @@ -149,6 +154,9 @@ True + + + - \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs deleted file mode 100644 index 17f6b2dfb6..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using System; - using System.Collections.ObjectModel; - using Controls; - using OmniXaml; - using OmniXaml.AppServices; - using OmniXaml.AppServices.NetCore; - - public class PerspexInflatableTypeFactory : InflatableTypeFactory - { - public PerspexInflatableTypeFactory() : base(new TypeFactory(), new InflatableResourceTranslator(), typeFactory => new PerspexXamlLoader(typeFactory)) - { - Inflatables = new Collection { typeof(Window), typeof(UserControl) }; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs deleted file mode 100644 index 23c727e5b5..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using Controls; - using OmniXaml.AppServices.Mvvm; - - public class PerspexWindow : Window, IView - { - public void SetViewModel(object viewModel) - { - this.DataContext = viewModel; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs deleted file mode 100644 index 2d2bb68f45..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using OmniXaml; - - public class PerspexXamlLoader : XamlLoader - { - public PerspexXamlLoader(ITypeFactory typeFactory) : base(new PerspexParserFactory(typeFactory)) - { - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs b/src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs deleted file mode 100644 index 841674882b..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// ----------------------------------------------------------------------- -// -// Copyright 2015 MIT Licence. See licence.md for more information. -// -// ----------------------------------------------------------------------- - -using System.Reflection; - -[assembly: AssemblyTitle("Perspex.Xaml.Desktop")] diff --git a/src/Markup/Perspex.Xaml.Desktop/packages.config b/src/Markup/Perspex.Xaml.Desktop/packages.config deleted file mode 100644 index 50be3b2d3b..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/packages.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs b/src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs deleted file mode 100644 index 151a06d60f..0000000000 --- a/src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Perspex.Xaml.HighLevel -{ - using System; - using System.IO; - - public interface IResourceProvider - { - Stream GetStream(Uri uri); - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs b/src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs deleted file mode 100644 index aafad7c322..0000000000 --- a/src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Perspex.Xaml.HighLevel -{ - using Context; - using OmniXaml; - - public static class PerspexWiringContextFactory - { - private static IWiringContext context; - - public static IWiringContext GetContext(ITypeFactory factory) - { - if (context == null) - { - context = new PerspexWiringContext(factory); - } - - return context; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs b/src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs deleted file mode 100644 index 6de80663fb..0000000000 --- a/src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Perspex.Xaml.HighLevel -{ - using OmniXaml; - using Context; - using OmniXaml.ObjectAssembler; - - public class PerspexObjectAssemblerFactory : IObjectAssemblerFactory - { - private readonly WiringContext context; - - public PerspexObjectAssemblerFactory(WiringContext context) - { - this.context = context; - } - - public IObjectAssembler CreateAssembler(ObjectAssemblerSettings settings) - { - return new PerspexObjectAssembler(context, settings); - } - } -} \ No newline at end of file diff --git a/src/Perspex.Application/Perspex.Application.csproj b/src/Perspex.Application/Perspex.Application.csproj index 6f47a06bda..c378be1bee 100644 --- a/src/Perspex.Application/Perspex.Application.csproj +++ b/src/Perspex.Application/Perspex.Application.csproj @@ -72,6 +72,7 @@ Properties\SharedAssemblyInfo.cs + diff --git a/src/Perspex.Application/Platform/IAssetLoader.cs b/src/Perspex.Application/Platform/IAssetLoader.cs new file mode 100644 index 0000000000..3ac4abc994 --- /dev/null +++ b/src/Perspex.Application/Platform/IAssetLoader.cs @@ -0,0 +1,27 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Platform +{ + using System; + using System.IO; + + /// + /// Loads assets compiled into the application binary. + /// + public interface IAssetLoader + { + /// + /// Opens the resource with the requested URI. + /// + /// The URI. + /// A stream containing the resource contents. + /// + /// The resource was not found. + /// + Stream Open(Uri uri); + } +} diff --git a/src/Windows/Perspex.Win32/AssetLoader.cs b/src/Windows/Perspex.Win32/AssetLoader.cs new file mode 100644 index 0000000000..1d0c008459 --- /dev/null +++ b/src/Windows/Perspex.Win32/AssetLoader.cs @@ -0,0 +1,48 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Win32 +{ + using System; + using System.Globalization; + using System.IO; + using System.Reflection; + using System.Resources; + using Perspex.Platform; + + /// + /// Loads assets compiled into the application binary. + /// + public class AssetLoader : IAssetLoader + { + /// + /// Opens the resource with the requested URI. + /// + /// The URI. + /// A stream containing the resource contents. + /// + /// The resource was not found. + /// + public Stream Open(Uri uri) + { + var assembly = Assembly.GetEntryAssembly(); + var resourceName = assembly.GetName().Name + ".g"; + var manager = new ResourceManager(resourceName, assembly); + + using (var resourceSet = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true)) + { + var stream = (Stream)resourceSet.GetObject(uri.ToString(), true); + + if (stream == null) + { + throw new FileNotFoundException($"The requested asset could not be found: {uri}"); + } + + return stream; + } + } + } +} diff --git a/src/Windows/Perspex.Win32/Perspex.Win32.csproj b/src/Windows/Perspex.Win32/Perspex.Win32.csproj index 3f8486b194..7f83e98d5c 100644 --- a/src/Windows/Perspex.Win32/Perspex.Win32.csproj +++ b/src/Windows/Perspex.Win32/Perspex.Win32.csproj @@ -63,6 +63,7 @@ Properties\SharedAssemblyInfo.cs + @@ -81,6 +82,10 @@ {d211e587-d8bc-45b9-95a4-f297c8fa5200} Perspex.Animation + + {799a7bb5-3c2c-48b6-85a7-406a12c420da} + Perspex.Application + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base diff --git a/src/Windows/Perspex.Win32/Win32Platform.cs b/src/Windows/Perspex.Win32/Win32Platform.cs index 6ae2a65940..b96b9d5719 100644 --- a/src/Windows/Perspex.Win32/Win32Platform.cs +++ b/src/Windows/Perspex.Win32/Win32Platform.cs @@ -51,12 +51,14 @@ namespace Perspex.Win32 public static void Initialize() { var locator = Locator.CurrentMutable; + locator.Register(() => new PopupImpl(), typeof(IPopupImpl)); locator.Register(() => new WindowImpl(), typeof(IWindowImpl)); locator.Register(() => WindowsKeyboardDevice.Instance, typeof(IKeyboardDevice)); locator.Register(() => WindowsMouseDevice.Instance, typeof(IMouseDevice)); locator.Register(() => instance, typeof(IPlatformSettings)); locator.Register(() => instance, typeof(IPlatformThreadingInterface)); + locator.RegisterConstant(new AssetLoader(), typeof(IAssetLoader)); } public bool HasMessages()