From d3cf5a7ba006b8ed4f8b5ab012ef374afa16601a Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 09:05:13 +0200 Subject: [PATCH 01/11] Initial nuget package spec. --- nuget/.gitignore | 2 ++ nuget/Perspex/Perspex.nuspec | 26 +++++++++++++++++++++++ nuget/build.bat | 41 ++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 nuget/.gitignore create mode 100644 nuget/Perspex/Perspex.nuspec create mode 100644 nuget/build.bat diff --git a/nuget/.gitignore b/nuget/.gitignore new file mode 100644 index 0000000000..4251aa8028 --- /dev/null +++ b/nuget/.gitignore @@ -0,0 +1,2 @@ +lib/ +*.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..6addb91316 --- /dev/null +++ b/nuget/Perspex/Perspex.nuspec @@ -0,0 +1,26 @@ + + + + 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/build.bat b/nuget/build.bat new file mode 100644 index 0000000000..73a7c62860 --- /dev/null +++ b/nuget/build.bat @@ -0,0 +1,41 @@ +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.Xaml\bin\Release\Perspex.Xaml.dll %lib% +copy ..\src\Markup\Perspex.Xaml\bin\Release\Perspex.Xaml.xml %lib% +copy ..\src\Markup\Perspex.Xaml.Desktop\bin\Release\Perspex.Xaml.Desktop.dll %lib% +copy ..\src\Markup\Perspex.Xaml.Desktop\bin\Release\Perspex.Xaml.Desktop.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 From 4f770b8989d977d303ad84fd149c074045519cd3 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 09:05:45 +0200 Subject: [PATCH 02/11] Started creating project template. Not finished. --- .../ApplicationTemplate/App.config | 6 + .../ApplicationTemplate/App.cs | 33 +++ .../ApplicationTemplate.csproj | 197 ++++++++++++++++++ .../ApplicationTemplate/MainWindow.xaml | 3 + .../ApplicationTemplate/MainWindow.xaml.cs | 21 ++ .../Properties/AssemblyInfo.cs | 36 ++++ .../ApplicationTemplate/packages.config | 19 ++ .../Perspex.Templates/Perspex.Templates.sln | 22 ++ 8 files changed, 337 insertions(+) create mode 100644 templates/Perspex.Templates/ApplicationTemplate/App.config create mode 100644 templates/Perspex.Templates/ApplicationTemplate/App.cs create mode 100644 templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj create mode 100644 templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml create mode 100644 templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs create mode 100644 templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs create mode 100644 templates/Perspex.Templates/ApplicationTemplate/packages.config create mode 100644 templates/Perspex.Templates/Perspex.Templates.sln diff --git a/templates/Perspex.Templates/ApplicationTemplate/App.config b/templates/Perspex.Templates/ApplicationTemplate/App.config new file mode 100644 index 0000000000..2d2a12d81b --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/templates/Perspex.Templates/ApplicationTemplate/App.cs b/templates/Perspex.Templates/ApplicationTemplate/App.cs new file mode 100644 index 0000000000..ef78701dda --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/App.cs @@ -0,0 +1,33 @@ +using System; +using Perspex; +using Perspex.Controls; +using Perspex.Diagnostics; +using Perspex.Themes.Default; + +namespace ApplicationTemplate +{ + public class App : Application + { + public App() + { + this.RegisterServices(); + this.InitializeSubsystems((int)Environment.OSVersion.Platform); + this.Styles = new DefaultTheme(); + } + + public static void AttachDevTools(Window window) + { +#if DEBUG + DevTools.Attach(this); +#endif + } + + static void Main(string[] args) + { + var app = new App(); + var window = new MainWindow(); + window.Show(); + app.Run(window); + } + } +} diff --git a/templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj b/templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj new file mode 100644 index 0000000000..2cae34c254 --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj @@ -0,0 +1,197 @@ + + + + + Debug + AnyCPU + {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D} + WinExe + Properties + ApplicationTemplate + ApplicationTemplate + v4.6 + 512 + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\packages\Glass.1.4.4.0\lib\portable-net451+win81+wpa81\Glass.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\NGenerics.dll + True + + + ..\packages\OmniXaml.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.dll + True + + + ..\packages\OmniXaml.AppServices.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.AppServices.dll + True + + + ..\packages\OmniXaml.AppServices.NetCore.1.4.4.0\lib\net46\OmniXaml.AppServices.NetCore.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Animation.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Application.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Base.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Controls.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Diagnostics.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Input.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Interactivity.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Layout.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.SceneGraph.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Styling.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Themes.Default.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Xaml.dll + True + + + ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Xaml.Desktop.dll + True + + + ..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll + True + + + ..\packages\Serilog.1.5.9\lib\net45\Serilog.dll + True + + + ..\packages\Serilog.1.5.9\lib\net45\Serilog.FullNetFx.dll + True + + + ..\packages\Splat.1.6.2\lib\Net45\Splat.dll + True + + + ..\packages\Sprache.SuperJMN.2.0.0.46\lib\portable-net451+win81+wpa81\Sprache.dll + True + + + + + ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + True + + + ..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + True + + + ..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll + True + + + ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll + True + + + ..\packages\Rx-XAML.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll + True + + + + + + + + + + + + + MainWindow.xaml + + + + + + + + + + MSBuild:Compile + Designer + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml b/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml new file mode 100644 index 0000000000..4b6af7ebe7 --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml @@ -0,0 +1,3 @@ + + Hello World! + \ No newline at end of file diff --git a/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs b/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs new file mode 100644 index 0000000000..ce77872d61 --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs @@ -0,0 +1,21 @@ +using System; +using Perspex.Controls; +using Perspex.Xaml.Desktop; + +namespace ApplicationTemplate +{ + public class MainWindow : Window + { + public MainWindow() + { + this.InitializeComponent(); + App.AttachDevTools(this); + } + + private void InitializeComponent() + { + var loader = new PerspexXamlLoader(new PerspexInflatableTypeFactory()); + loader.Load(this.GetType()); + } + } +} diff --git a/templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs b/templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..9bca898960 --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Perspex.Templates")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Perspex.Templates")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("fe841abc-b2d0-4cf6-b73d-fd65f58c870d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/templates/Perspex.Templates/ApplicationTemplate/packages.config b/templates/Perspex.Templates/ApplicationTemplate/packages.config new file mode 100644 index 0000000000..75e7439feb --- /dev/null +++ b/templates/Perspex.Templates/ApplicationTemplate/packages.config @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/Perspex.Templates/Perspex.Templates.sln b/templates/Perspex.Templates/Perspex.Templates.sln new file mode 100644 index 0000000000..f779b72ea0 --- /dev/null +++ b/templates/Perspex.Templates/Perspex.Templates.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApplicationTemplate", "ApplicationTemplate\ApplicationTemplate.csproj", "{FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal From 279f9abab0a297416460390a0b5e5bd19dfd726e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 09:06:28 +0200 Subject: [PATCH 03/11] Try to do simple XAML loading. Doesn't yet work - seems x:Class isn't supported by OmniXaml. --- samples/XamlTestApplication/Program.cs | 8 +-- .../XamlTestApplication/Views/MainWindow.cs | 8 +++ .../XamlTestApplication/Views/MainWindow.xaml | 5 +- .../PerspexInflatableTypeFactory.cs | 2 +- .../Perspex.Xaml.Desktop/PerspexXamlLoader.cs | 56 ++++++++++++++++++- 5 files changed, 70 insertions(+), 9 deletions(-) diff --git a/samples/XamlTestApplication/Program.cs b/samples/XamlTestApplication/Program.cs index 5b8f3ba0ba..6d549f2fac 100644 --- a/samples/XamlTestApplication/Program.cs +++ b/samples/XamlTestApplication/Program.cs @@ -17,6 +17,7 @@ namespace XamlTestApplication using Perspex.Input; using Perspex.Xaml.Desktop; using ReactiveUI; + using Views; class Item { @@ -55,12 +56,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..4a7e814a91 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -9,7 +9,15 @@ { public MainWindow() { + this.InitializeComponent(); + DevTools.Attach(this); } + + private void InitializeComponent() + { + var loader = new PerspexXamlLoader(new PerspexInflatableTypeFactory()); + loader.Load(this.GetType()); + } } } \ 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/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs index 17f6b2dfb6..384a6dc513 100644 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs +++ b/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs @@ -9,7 +9,7 @@ namespace Perspex.Xaml.Desktop public class PerspexInflatableTypeFactory : InflatableTypeFactory { - public PerspexInflatableTypeFactory() : base(new TypeFactory(), new InflatableResourceTranslator(), typeFactory => new PerspexXamlLoader(typeFactory)) + public PerspexInflatableTypeFactory() : base(new TypeFactory(), new InflatableTranslator(), typeFactory => new PerspexXamlLoader(typeFactory)) { Inflatables = new Collection { typeof(Window), typeof(UserControl) }; } diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs index 2d2bb68f45..7e60585352 100644 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs +++ b/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs @@ -1,11 +1,65 @@ namespace Perspex.Xaml.Desktop { + using System; + using System.Globalization; + using System.IO; + using System.Reflection; + using System.Resources; using OmniXaml; public class PerspexXamlLoader : XamlLoader { - public PerspexXamlLoader(ITypeFactory typeFactory) : base(new PerspexParserFactory(typeFactory)) + public PerspexXamlLoader() + : this(new PerspexInflatableTypeFactory()) + { + } + + public PerspexXamlLoader(ITypeFactory typeFactory) + : base(new PerspexParserFactory(typeFactory)) { } + + public void Load(Type type) + { + this.Load(GetUriFor(type)); + } + + public void Load(string path) + { + var assembly = Assembly.GetEntryAssembly(); + var resourceName = assembly.GetName().Name + ".g"; + var manager = new ResourceManager(resourceName, assembly); + + using (ResourceSet resourceSet = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true)) + { + var s = (Stream)resourceSet.GetObject(path, true); + + if (s == null) + { + throw new IOException($"The requested resource could not be found: {path}"); + } + + this.Load(s); + } + } + + private static string GetUriFor(Type type) + { + if (type.Namespace != null) + { + var toRemove = type.Assembly.GetName().Name; + var substracted = toRemove.Length < type.Namespace.Length ? type.Namespace.Remove(0, toRemove.Length + 1) : ""; + var replace = substracted.Replace('.', Path.PathSeparator); + + if (replace != string.Empty) + { + replace = replace + "/"; + } + + return replace + type.Name + ".xaml"; + } + + return null; + } } } \ No newline at end of file From c14194bee71d19d058737c89ce07d51e4039ac44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Nieto=20S=C3=A1nchez?= Date: Fri, 28 Aug 2015 12:40:47 +0200 Subject: [PATCH 04/11] Fixed resource loading. Deleted PerspexXamlLoader (useless). --- .../XamlTestApplication/Views/MainWindow.cs | 31 ++++++++- .../Perspex.Xaml.Desktop.csproj | 2 - .../PerspexInflatableTypeFactory.cs | 17 ----- .../Perspex.Xaml.Desktop/PerspexXamlLoader.cs | 65 ------------------- 4 files changed, 29 insertions(+), 86 deletions(-) delete mode 100644 src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs diff --git a/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index 4a7e814a91..b1d74acbc8 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -1,5 +1,11 @@ namespace XamlTestApplication.Views { + using System; + using System.Globalization; + using System.IO; + using System.Reflection; + using System.Resources; + using OmniXaml; using OmniXaml.AppServices.Mvvm; using Perspex.Diagnostics; using Perspex.Xaml.Desktop; @@ -16,8 +22,29 @@ private void InitializeComponent() { - var loader = new PerspexXamlLoader(new PerspexInflatableTypeFactory()); - loader.Load(this.GetType()); + var xamlLoader = new XamlLoader(new PerspexParserFactory(new TypeFactory())); + var stream = GetStream(new Uri("Views/MainWindow.xaml", UriKind.Relative)); + xamlLoader.Load(stream, this); + } + + + private static Stream GetStream(Uri resourceLocator) + { + 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(resourceLocator.ToString(), true); + + if (stream == null) + { + throw new IOException($"The requested resource could not be found: {resourceLocator}"); + } + + return stream; + } } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj b/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj index b8f40befc2..fd2fc5de1d 100644 --- a/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj +++ b/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj @@ -121,10 +121,8 @@ Properties\SharedAssemblyInfo.cs - - diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexInflatableTypeFactory.cs deleted file mode 100644 index 384a6dc513..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 InflatableTranslator(), 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/PerspexXamlLoader.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs deleted file mode 100644 index 7e60585352..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexXamlLoader.cs +++ /dev/null @@ -1,65 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using System; - using System.Globalization; - using System.IO; - using System.Reflection; - using System.Resources; - using OmniXaml; - - public class PerspexXamlLoader : XamlLoader - { - public PerspexXamlLoader() - : this(new PerspexInflatableTypeFactory()) - { - } - - public PerspexXamlLoader(ITypeFactory typeFactory) - : base(new PerspexParserFactory(typeFactory)) - { - } - - public void Load(Type type) - { - this.Load(GetUriFor(type)); - } - - public void Load(string path) - { - var assembly = Assembly.GetEntryAssembly(); - var resourceName = assembly.GetName().Name + ".g"; - var manager = new ResourceManager(resourceName, assembly); - - using (ResourceSet resourceSet = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true)) - { - var s = (Stream)resourceSet.GetObject(path, true); - - if (s == null) - { - throw new IOException($"The requested resource could not be found: {path}"); - } - - this.Load(s); - } - } - - private static string GetUriFor(Type type) - { - if (type.Namespace != null) - { - var toRemove = type.Assembly.GetName().Name; - var substracted = toRemove.Length < type.Namespace.Length ? type.Namespace.Remove(0, toRemove.Length + 1) : ""; - var replace = substracted.Replace('.', Path.PathSeparator); - - if (replace != string.Empty) - { - replace = replace + "/"; - } - - return replace + type.Name + ".xaml"; - } - - return null; - } - } -} \ No newline at end of file From 687f484c9a033ccfd80ad74db49fd405ebfa27b6 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 13:16:23 +0200 Subject: [PATCH 05/11] Tidied up xaml stuff a bit. --- Perspex.sln | 7 - .../XamlTestApplication/Views/MainWindow.cs | 5 +- .../XamlTestApplication.csproj | 4 - .../InflatableResourceTranslator.cs | 78 -------- .../Perspex.Xaml.Desktop.csproj | 185 ------------------ .../Perspex.Xaml.Desktop/PerspexWindow.cs | 13 -- .../Properties/AssemblyInfo.cs | 9 - .../Perspex.Xaml.Desktop/packages.config | 23 --- .../HighLevel/IResourceProvider.cs | 10 - .../HighLevel/PerspexLoaderFactory.cs | 20 -- .../PerspexObjectAssemblerFactory.cs | 21 -- src/Markup/Perspex.Xaml/Perspex.Xaml.csproj | 4 +- .../PerspexParserFactory.cs | 5 +- 13 files changed, 5 insertions(+), 379 deletions(-) delete mode 100644 src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj delete mode 100644 src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/packages.config delete mode 100644 src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs delete mode 100644 src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs delete mode 100644 src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs rename src/Markup/{Perspex.Xaml.Desktop => Perspex.Xaml}/PerspexParserFactory.cs (93%) diff --git a/Perspex.sln b/Perspex.sln index 874bab37ef..26a0fd1273 100644 --- a/Perspex.sln +++ b/Perspex.sln @@ -59,8 +59,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Direct2D1.UnitTests 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}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlTestApplication", "samples\XamlTestApplication\XamlTestApplication.csproj", "{78CAFE33-DBEB-4132-8A28-81CFE8A4933C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Markup", "Markup", "{8B6A8209-894F-4BA1-B880-965FD453982C}" @@ -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/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index b1d74acbc8..e6053ce51b 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -6,12 +6,11 @@ using System.Reflection; using System.Resources; using OmniXaml; - using OmniXaml.AppServices.Mvvm; + using Perspex.Controls; using Perspex.Diagnostics; using Perspex.Xaml.Desktop; - [ViewToken("Main", typeof(MainWindow))] - public class MainWindow : PerspexWindow + public class MainWindow : Window { public MainWindow() { diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj index ef9447af18..5ea8e34004 100644 --- a/samples/XamlTestApplication/XamlTestApplication.csproj +++ b/samples/XamlTestApplication/XamlTestApplication.csproj @@ -177,10 +177,6 @@ {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.Desktop/InflatableResourceTranslator.cs b/src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs deleted file mode 100644 index 0c4e8e228f..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs +++ /dev/null @@ -1,78 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using System; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Reflection; - using System.Resources; - using OmniXaml.AppServices; - - public class InflatableResourceTranslator : IInflatableTranslator - { - public Stream GetStream(Type type) - { - var uri = GetUriFor(type); - var assembly = Assembly.GetEntryAssembly(); - var resourceName = assembly.GetName().Name + ".g"; - var manager = new ResourceManager(resourceName, assembly); - - using (ResourceSet resourceSet = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true)) - { - Stream s = (Stream)resourceSet.GetObject(uri.ToString(), true); - - if (s == null) - { - throw new IOException( - "The requested resource could not be found: " + - uri.OriginalString); - } - - return s; - } - } - - private static Uri GetUriFor(Type type) - { - if (type.Namespace != null) - { - var toRemove = type.Assembly.GetName().Name; - var substracted = toRemove.Length < type.Namespace.Length ? type.Namespace.Remove(0, toRemove.Length + 1) : ""; - var replace = substracted.Replace('.', Path.PathSeparator); - if (replace != string.Empty) - { - replace = replace + "/"; - } - return new Uri(replace + type.Name + ".xaml", UriKind.Relative); - } - - return null; - } - - public Type GetTypeFor(Uri uri) - { - var withExt = uri.OriginalString; - var lastSlash = withExt.LastIndexOf("/", StringComparison.Ordinal); - var innerNs = withExt.Substring(0, lastSlash); - var fileName = withExt.Substring(lastSlash + 1, withExt.Length - lastSlash - 1); - - var className = fileName.Substring(0, fileName.LastIndexOf('.')); - - - var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList(); - var type = from assembly in assemblies - let t = assembly.GetType(GetName(assembly, innerNs, className)) - where t != null - select t; - - return type.First(); - } - - private static string GetName(Assembly assembly, string innerNs, string className) - { - var ns = assembly.GetName().Name + "." + innerNs; - var fullLocator = ns + "." + className; - return fullLocator; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj b/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj deleted file mode 100644 index fd2fc5de1d..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj +++ /dev/null @@ -1,185 +0,0 @@ - - - - - Debug - AnyCPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD} - Library - Properties - Perspex.Xaml.Desktop - Perspex.Xaml.Desktop - v4.6 - 512 - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\..\..\packages\Glass.1.4.4.0\lib\portable-net451+win81+wpa81\Glass.dll - True - - - ..\..\..\packages\OmniXaml.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.dll - True - - - ..\..\..\packages\OmniXaml.AppServices.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.AppServices.dll - True - - - ..\..\..\packages\OmniXaml.AppServices.Mvvm.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.AppServices.Mvvm.dll - True - - - ..\..\..\packages\OmniXaml.AppServices.NetCore.1.4.4.0\lib\net46\OmniXaml.AppServices.NetCore.dll - True - - - ..\..\..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll - True - - - ..\..\..\packages\Serilog.1.5.9\lib\net45\Serilog.dll - True - - - ..\..\..\packages\Serilog.1.5.9\lib\net45\Serilog.FullNetFx.dll - True - - - False - $(SharpDXPackageBinDir)\SharpDX.dll - - - False - $(SharpDXPackageBinDir)\SharpDX.Direct2D1.dll - - - False - $(SharpDXPackageBinDir)\SharpDX.DXGI.dll - - - ..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll - True - - - ..\..\..\packages\Sprache.SuperJMN.2.0.0.46\lib\portable-net451+win81+wpa81\Sprache.dll - True - - - - - - ..\..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - True - - - ..\..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - True - - - ..\..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll - True - - - ..\..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll - True - - - ..\..\..\packages\Rx-XAML.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll - True - - - - - - - - - - - - - Properties\SharedAssemblyInfo.cs - - - - - - - - - {d211e587-d8bc-45b9-95a4-f297c8fa5200} - Perspex.Animation - - - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} - Perspex.Base - - - {d2221c82-4a25-4583-9b43-d791e3f6820c} - Perspex.Controls - - - {62024b2d-53eb-4638-b26b-85eeaa54866e} - Perspex.Input - - - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} - Perspex.Interactivity - - - {42472427-4774-4c81-8aff-9f27b8e31721} - Perspex.Layout - - - {eb582467-6abb-43a1-b052-e981ba910e3a} - Perspex.SceneGraph - - - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} - Perspex.Styling - - - {3E53A01A-B331-47F3-B828-4A5717E77A24} - Perspex.Xaml - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ 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/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/Markup/Perspex.Xaml/Perspex.Xaml.csproj b/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj index 00ae1936a3..aca6e00e59 100644 --- a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj +++ b/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj @@ -38,9 +38,6 @@ Properties\SharedAssemblyInfo.cs - - - @@ -50,6 +47,7 @@ + diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs b/src/Markup/Perspex.Xaml/PerspexParserFactory.cs similarity index 93% rename from src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs rename to src/Markup/Perspex.Xaml/PerspexParserFactory.cs index 3253d53f85..28617ea20a 100644 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs +++ b/src/Markup/Perspex.Xaml/PerspexParserFactory.cs @@ -1,11 +1,10 @@ namespace Perspex.Xaml.Desktop { - using Context; - using HighLevel; using OmniXaml; using OmniXaml.ObjectAssembler; using OmniXaml.Parsers.ProtoParser; using OmniXaml.Parsers.XamlNodes; + using Perspex.Xaml.Context; public class PerspexParserFactory : IXamlParserFactory { @@ -13,7 +12,7 @@ namespace Perspex.Xaml.Desktop public PerspexParserFactory(ITypeFactory typeFactory) { - wiringContext = PerspexWiringContextFactory.GetContext(typeFactory); + wiringContext = new PerspexWiringContext(typeFactory); } public IXamlParser CreateForReadingFree() From 56b88d287ccfababbbab666261354292ac71fa88 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 13:55:55 +0200 Subject: [PATCH 06/11] Refactored loading assets into IAssetLoader. --- samples/XamlTestApplication/Program.cs | 11 +---- .../XamlTestApplication/Views/MainWindow.cs | 27 ++--------- .../{ => Context}/PerspexParserFactory.cs | 7 ++- src/Markup/Perspex.Xaml/Perspex.Xaml.csproj | 7 ++- src/Markup/Perspex.Xaml/PerspexXamlLoader.cs | 43 +++++++++++++++++ .../Perspex.Application.csproj | 1 + .../Platform/IAssetLoader.cs | 27 +++++++++++ src/Windows/Perspex.Win32/AssetLoader.cs | 48 +++++++++++++++++++ .../Perspex.Win32/Perspex.Win32.csproj | 5 ++ src/Windows/Perspex.Win32/Win32Platform.cs | 2 + 10 files changed, 142 insertions(+), 36 deletions(-) rename src/Markup/Perspex.Xaml/{ => Context}/PerspexParserFactory.cs (93%) create mode 100644 src/Markup/Perspex.Xaml/PerspexXamlLoader.cs create mode 100644 src/Perspex.Application/Platform/IAssetLoader.cs create mode 100644 src/Windows/Perspex.Win32/AssetLoader.cs diff --git a/samples/XamlTestApplication/Program.cs b/samples/XamlTestApplication/Program.cs index 6d549f2fac..e24f228086 100644 --- a/samples/XamlTestApplication/Program.cs +++ b/samples/XamlTestApplication/Program.cs @@ -1,21 +1,12 @@ -#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; diff --git a/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index e6053ce51b..2f0dc53518 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -8,7 +8,7 @@ using OmniXaml; using Perspex.Controls; using Perspex.Diagnostics; - using Perspex.Xaml.Desktop; + using Perspex.Xaml; public class MainWindow : Window { @@ -21,29 +21,8 @@ private void InitializeComponent() { - var xamlLoader = new XamlLoader(new PerspexParserFactory(new TypeFactory())); - var stream = GetStream(new Uri("Views/MainWindow.xaml", UriKind.Relative)); - xamlLoader.Load(stream, this); - } - - - private static Stream GetStream(Uri resourceLocator) - { - 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(resourceLocator.ToString(), true); - - if (stream == null) - { - throw new IOException($"The requested resource could not be found: {resourceLocator}"); - } - - return stream; - } + var xamlLoader = new PerspexXamlLoader(); + xamlLoader.Load(new Uri("Views/MainWindow.xaml", UriKind.Relative), this); } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/PerspexParserFactory.cs b/src/Markup/Perspex.Xaml/Context/PerspexParserFactory.cs similarity index 93% rename from src/Markup/Perspex.Xaml/PerspexParserFactory.cs rename to src/Markup/Perspex.Xaml/Context/PerspexParserFactory.cs index 28617ea20a..c89509f7d2 100644 --- a/src/Markup/Perspex.Xaml/PerspexParserFactory.cs +++ b/src/Markup/Perspex.Xaml/Context/PerspexParserFactory.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Desktop +namespace Perspex.Xaml.Context { using OmniXaml; using OmniXaml.ObjectAssembler; @@ -10,6 +10,11 @@ namespace Perspex.Xaml.Desktop { private readonly IWiringContext wiringContext; + public PerspexParserFactory() + : this(new TypeFactory()) + { + } + public PerspexParserFactory(ITypeFactory typeFactory) { wiringContext = new PerspexWiringContext(typeFactory); diff --git a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj b/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj index aca6e00e59..f5f7a7c1c4 100644 --- a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj +++ b/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj @@ -47,7 +47,7 @@ - + @@ -66,6 +66,7 @@ + @@ -76,6 +77,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/Markup/Perspex.Xaml/PerspexXamlLoader.cs b/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs new file mode 100644 index 0000000000..b6bf6e44fa --- /dev/null +++ b/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs @@ -0,0 +1,43 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2014 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Xaml +{ + using System; + using OmniXaml; + using Platform; + using Perspex.Xaml.Context; + using Splat; + + public class PerspexXamlLoader : XamlLoader + { + public PerspexXamlLoader() + : this(new PerspexParserFactory()) + { + } + + public PerspexXamlLoader(IXamlParserFactory xamlParserFactory) + : base(xamlParserFactory) + { + } + + public object Load(Uri uri, object rootInstance = null) + { + var assetLocator = Locator.Current.GetService(); + + if (assetLocator == null) + { + throw new InvalidOperationException( + "Could not create IAssetLoader : maybe Application.RegisterServices() wasn't called?"); + } + + using (var stream = assetLocator.Open(uri)) + { + return this.Load(stream, rootInstance); + } + } + } +} 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() From e858d34b8faf70136691fc6192a1da792ad2b73f Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 14:02:51 +0200 Subject: [PATCH 07/11] Simplify basic XAML load syntax. --- .../XamlTestApplication/Views/MainWindow.cs | 3 +- src/Markup/Perspex.Xaml/PerspexXamlLoader.cs | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index 2f0dc53518..5280cca0c3 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -21,8 +21,7 @@ private void InitializeComponent() { - var xamlLoader = new PerspexXamlLoader(); - xamlLoader.Load(new Uri("Views/MainWindow.xaml", UriKind.Relative), this); + PerspexXamlLoader.Load(this); } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs b/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs index b6bf6e44fa..297e40bf05 100644 --- a/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs +++ b/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs @@ -7,9 +7,10 @@ namespace Perspex.Xaml { using System; + using System.Reflection; using OmniXaml; - using Platform; using Perspex.Xaml.Context; + using Platform; using Splat; public class PerspexXamlLoader : XamlLoader @@ -24,6 +25,17 @@ namespace Perspex.Xaml { } + public static void Load(object obj) + { + var loader = new PerspexXamlLoader(); + loader.Load(obj.GetType(), obj); + } + + public object Load(Type type, object rootInstance = null) + { + return this.Load(GetUriFor(type), rootInstance); + } + public object Load(Uri uri, object rootInstance = null) { var assetLocator = Locator.Current.GetService(); @@ -39,5 +51,24 @@ namespace Perspex.Xaml return this.Load(stream, rootInstance); } } + + private static Uri GetUriFor(Type type) + { + if (type.Namespace != null) + { + var toRemove = type.GetTypeInfo().Assembly.GetName().Name; + var substracted = toRemove.Length < type.Namespace.Length ? type.Namespace.Remove(0, toRemove.Length + 1) : ""; + var replace = substracted.Replace('.', '/'); + + if (replace != string.Empty) + { + replace = replace + "/"; + } + + return new Uri(replace + type.Name + ".xaml", UriKind.Relative); + } + + return null; + } } } From 097d87926b88e3c878fe36f2905143591be37d89 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 14:06:20 +0200 Subject: [PATCH 08/11] Perspex.Xaml -> Perspex.Markup.Xaml. --- Perspex.sln | 2 +- samples/XamlTestApplication/Views/MainWindow.cs | 2 +- samples/XamlTestApplication/XamlTestApplication.csproj | 2 +- .../Context/PerspexObjectAssembler.cs | 2 +- .../Context/PerspexParserFactory.cs | 4 ++-- .../Context/PerspexTypeRepository.cs | 2 +- .../Context/PerspexWiringContext.cs | 2 +- .../Context/PerspexXamlMember.cs | 2 +- .../Context/PerspexXamlMemberValuePlugin.cs | 2 +- .../Context/PerspexXamlType.cs | 2 +- .../Converters/BitmapConverter.cs | 2 +- .../Converters/BrushConverter.cs | 2 +- .../Converters/GridLengthTypeConverter.cs | 2 +- .../Converters/ThicknessConverter.cs | 2 +- .../DataBinding/ChangeTracking/ObservablePropertyBranch.cs | 2 +- .../DataBinding/ChangeTracking/PropertyMountPoint.cs | 2 +- .../DataBinding/ChangeTracking/PropertyPath.cs | 2 +- .../DataBinding/ChangeTracking/TargettedProperty.cs | 2 +- .../DataBinding/DataContextChangeSynchronizer.cs | 2 +- .../DataBinding/IPerspexPropertyBinder.cs | 2 +- .../DataBinding/PerspexPropertyBinder.cs | 2 +- .../DataBinding/SourceBindingEndpoint.cs | 2 +- .../DataBinding/TargetBindingEndpoint.cs | 2 +- .../DataBinding/XamlBinding.cs | 2 +- .../DataBinding/XamlBindingDefinition.cs | 2 +- .../MarkupExtensions/BindingExtension.cs | 2 +- .../MarkupExtensions/TypeExtension.cs | 2 +- .../Perspex.Markup.Xaml.csproj} | 4 ++-- .../PerspexXamlLoader.cs | 4 ++-- .../Properties/AssemblyInfo.cs | 2 +- .../Templates/Template.cs | 2 +- .../Templates/TemplateContent.cs | 2 +- .../Templates/TemplateLoader.cs | 2 +- .../Templates/XamlDataTemplate.cs | 2 +- src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/app.config | 0 .../{Perspex.Xaml => Perspex.Markup.Xaml}/packages.config | 0 36 files changed, 37 insertions(+), 37 deletions(-) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexObjectAssembler.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexParserFactory.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexTypeRepository.cs (95%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexWiringContext.cs (99%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexXamlMember.cs (95%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexXamlMemberValuePlugin.cs (98%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Context/PerspexXamlType.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Converters/BitmapConverter.cs (95%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Converters/BrushConverter.cs (98%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Converters/GridLengthTypeConverter.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Converters/ThicknessConverter.cs (97%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/ChangeTracking/ObservablePropertyBranch.cs (98%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/ChangeTracking/PropertyMountPoint.cs (95%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/ChangeTracking/PropertyPath.cs (90%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/ChangeTracking/TargettedProperty.cs (93%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/DataContextChangeSynchronizer.cs (99%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/IPerspexPropertyBinder.cs (86%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/PerspexPropertyBinder.cs (97%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/SourceBindingEndpoint.cs (93%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/TargetBindingEndpoint.cs (87%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/XamlBinding.cs (97%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/DataBinding/XamlBindingDefinition.cs (94%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/MarkupExtensions/BindingExtension.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/MarkupExtensions/TypeExtension.cs (95%) rename src/Markup/{Perspex.Xaml/Perspex.Xaml.csproj => Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj} (98%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/PerspexXamlLoader.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Properties/AssemblyInfo.cs (86%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Templates/Template.cs (69%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Templates/TemplateContent.cs (94%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Templates/TemplateLoader.cs (87%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/Templates/XamlDataTemplate.cs (96%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/app.config (100%) rename src/Markup/{Perspex.Xaml => Perspex.Markup.Xaml}/packages.config (100%) diff --git a/Perspex.sln b/Perspex.sln index 26a0fd1273..89a70f102b 100644 --- a/Perspex.sln +++ b/Perspex.sln @@ -57,7 +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}" +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 diff --git a/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index 5280cca0c3..18760d9601 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -8,7 +8,7 @@ using OmniXaml; using Perspex.Controls; using Perspex.Diagnostics; - using Perspex.Xaml; + using Perspex.Markup.Xaml; public class MainWindow : Window { diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj index 5ea8e34004..d365195058 100644 --- a/samples/XamlTestApplication/XamlTestApplication.csproj +++ b/samples/XamlTestApplication/XamlTestApplication.csproj @@ -177,7 +177,7 @@ {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} Perspex.Themes.Default - + {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/Context/PerspexParserFactory.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs similarity index 96% rename from src/Markup/Perspex.Xaml/Context/PerspexParserFactory.cs rename to src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs index c89509f7d2..0c065bb1bf 100644 --- a/src/Markup/Perspex.Xaml/Context/PerspexParserFactory.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs @@ -1,10 +1,10 @@ -namespace Perspex.Xaml.Context +namespace Perspex.Markup.Xaml.Context { using OmniXaml; using OmniXaml.ObjectAssembler; using OmniXaml.Parsers.ProtoParser; using OmniXaml.Parsers.XamlNodes; - using Perspex.Xaml.Context; + using Perspex.Markup.Xaml.Context; public class PerspexParserFactory : IXamlParserFactory { 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.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 98% rename from src/Markup/Perspex.Xaml/Perspex.Xaml.csproj rename to src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj index f5f7a7c1c4..5d7d97e26d 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} diff --git a/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs b/src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs similarity index 96% rename from src/Markup/Perspex.Xaml/PerspexXamlLoader.cs rename to src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs index 297e40bf05..12aed169b9 100644 --- a/src/Markup/Perspex.Xaml/PerspexXamlLoader.cs +++ b/src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -namespace Perspex.Xaml +namespace Perspex.Markup.Xaml { using System; using System.Reflection; using OmniXaml; - using Perspex.Xaml.Context; + using Perspex.Markup.Xaml.Context; using Platform; using Splat; diff --git a/src/Markup/Perspex.Xaml/Properties/AssemblyInfo.cs b/src/Markup/Perspex.Markup.Xaml/Properties/AssemblyInfo.cs similarity index 86% rename from src/Markup/Perspex.Xaml/Properties/AssemblyInfo.cs rename to src/Markup/Perspex.Markup.Xaml/Properties/AssemblyInfo.cs index 3df53cd169..d8a5eaab54 100644 --- a/src/Markup/Perspex.Xaml/Properties/AssemblyInfo.cs +++ b/src/Markup/Perspex.Markup.Xaml/Properties/AssemblyInfo.cs @@ -6,4 +6,4 @@ using System.Reflection; -[assembly: AssemblyTitle("Perspex.Xaml")] +[assembly: AssemblyTitle("Perspex.Markup.Xaml")] diff --git a/src/Markup/Perspex.Xaml/Templates/Template.cs b/src/Markup/Perspex.Markup.Xaml/Templates/Template.cs similarity index 69% rename from src/Markup/Perspex.Xaml/Templates/Template.cs rename to src/Markup/Perspex.Markup.Xaml/Templates/Template.cs index def98035f5..a617ecafb8 100644 --- a/src/Markup/Perspex.Xaml/Templates/Template.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/Template.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Templates +namespace Perspex.Markup.Xaml.Templates { public class Template { diff --git a/src/Markup/Perspex.Xaml/Templates/TemplateContent.cs b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs similarity index 94% rename from src/Markup/Perspex.Xaml/Templates/TemplateContent.cs rename to src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs index 76a5c4ff88..640ade0074 100644 --- a/src/Markup/Perspex.Xaml/Templates/TemplateContent.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Templates +namespace Perspex.Markup.Xaml.Templates { using System.Collections.Generic; using Context; diff --git a/src/Markup/Perspex.Xaml/Templates/TemplateLoader.cs b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs similarity index 87% rename from src/Markup/Perspex.Xaml/Templates/TemplateLoader.cs rename to src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs index f3cd4e000a..b46cd84c44 100644 --- a/src/Markup/Perspex.Xaml/Templates/TemplateLoader.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Templates +namespace Perspex.Markup.Xaml.Templates { using System.Collections.Generic; using OmniXaml; diff --git a/src/Markup/Perspex.Xaml/Templates/XamlDataTemplate.cs b/src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs similarity index 96% rename from src/Markup/Perspex.Xaml/Templates/XamlDataTemplate.cs rename to src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs index cca2ed0172..44dfa42489 100644 --- a/src/Markup/Perspex.Xaml/Templates/XamlDataTemplate.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs @@ -1,4 +1,4 @@ -namespace Perspex.Xaml.Templates +namespace Perspex.Markup.Xaml.Templates { using System; using Controls.Templates; diff --git a/src/Markup/Perspex.Xaml/app.config b/src/Markup/Perspex.Markup.Xaml/app.config similarity index 100% rename from src/Markup/Perspex.Xaml/app.config rename to src/Markup/Perspex.Markup.Xaml/app.config diff --git a/src/Markup/Perspex.Xaml/packages.config b/src/Markup/Perspex.Markup.Xaml/packages.config similarity index 100% rename from src/Markup/Perspex.Xaml/packages.config rename to src/Markup/Perspex.Markup.Xaml/packages.config From ef36608fcdb3292938b4a5523e4585a3e36dc559 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 14:07:01 +0200 Subject: [PATCH 09/11] Remove templates dir. Will be moved to a separate project. --- .../ApplicationTemplate/App.config | 6 - .../ApplicationTemplate/App.cs | 33 --- .../ApplicationTemplate.csproj | 197 ------------------ .../ApplicationTemplate/MainWindow.xaml | 3 - .../ApplicationTemplate/MainWindow.xaml.cs | 21 -- .../Properties/AssemblyInfo.cs | 36 ---- .../ApplicationTemplate/packages.config | 19 -- .../Perspex.Templates/Perspex.Templates.sln | 22 -- 8 files changed, 337 deletions(-) delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/App.config delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/App.cs delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs delete mode 100644 templates/Perspex.Templates/ApplicationTemplate/packages.config delete mode 100644 templates/Perspex.Templates/Perspex.Templates.sln diff --git a/templates/Perspex.Templates/ApplicationTemplate/App.config b/templates/Perspex.Templates/ApplicationTemplate/App.config deleted file mode 100644 index 2d2a12d81b..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/templates/Perspex.Templates/ApplicationTemplate/App.cs b/templates/Perspex.Templates/ApplicationTemplate/App.cs deleted file mode 100644 index ef78701dda..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/App.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using Perspex; -using Perspex.Controls; -using Perspex.Diagnostics; -using Perspex.Themes.Default; - -namespace ApplicationTemplate -{ - public class App : Application - { - public App() - { - this.RegisterServices(); - this.InitializeSubsystems((int)Environment.OSVersion.Platform); - this.Styles = new DefaultTheme(); - } - - public static void AttachDevTools(Window window) - { -#if DEBUG - DevTools.Attach(this); -#endif - } - - static void Main(string[] args) - { - var app = new App(); - var window = new MainWindow(); - window.Show(); - app.Run(window); - } - } -} diff --git a/templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj b/templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj deleted file mode 100644 index 2cae34c254..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/ApplicationTemplate.csproj +++ /dev/null @@ -1,197 +0,0 @@ - - - - - Debug - AnyCPU - {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D} - WinExe - Properties - ApplicationTemplate - ApplicationTemplate - v4.6 - 512 - true - - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - ..\packages\Glass.1.4.4.0\lib\portable-net451+win81+wpa81\Glass.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\NGenerics.dll - True - - - ..\packages\OmniXaml.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.dll - True - - - ..\packages\OmniXaml.AppServices.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.AppServices.dll - True - - - ..\packages\OmniXaml.AppServices.NetCore.1.4.4.0\lib\net46\OmniXaml.AppServices.NetCore.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Animation.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Application.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Base.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Controls.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Diagnostics.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Input.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Interactivity.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Layout.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.SceneGraph.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Styling.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Themes.Default.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Xaml.dll - True - - - ..\packages\Perspex.0.0.1-alpha\lib\portable-windows8+net45\Perspex.Xaml.Desktop.dll - True - - - ..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll - True - - - ..\packages\Serilog.1.5.9\lib\net45\Serilog.dll - True - - - ..\packages\Serilog.1.5.9\lib\net45\Serilog.FullNetFx.dll - True - - - ..\packages\Splat.1.6.2\lib\Net45\Splat.dll - True - - - ..\packages\Sprache.SuperJMN.2.0.0.46\lib\portable-net451+win81+wpa81\Sprache.dll - True - - - - - ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - True - - - ..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - True - - - ..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll - True - - - ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll - True - - - ..\packages\Rx-XAML.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll - True - - - - - - - - - - - - - MainWindow.xaml - - - - - - - - - - MSBuild:Compile - Designer - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml b/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml deleted file mode 100644 index 4b6af7ebe7..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml +++ /dev/null @@ -1,3 +0,0 @@ - - Hello World! - \ No newline at end of file diff --git a/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs b/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs deleted file mode 100644 index ce77872d61..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/MainWindow.xaml.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using Perspex.Controls; -using Perspex.Xaml.Desktop; - -namespace ApplicationTemplate -{ - public class MainWindow : Window - { - public MainWindow() - { - this.InitializeComponent(); - App.AttachDevTools(this); - } - - private void InitializeComponent() - { - var loader = new PerspexXamlLoader(new PerspexInflatableTypeFactory()); - loader.Load(this.GetType()); - } - } -} diff --git a/templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs b/templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs deleted file mode 100644 index 9bca898960..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Perspex.Templates")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Perspex.Templates")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fe841abc-b2d0-4cf6-b73d-fd65f58c870d")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/templates/Perspex.Templates/ApplicationTemplate/packages.config b/templates/Perspex.Templates/ApplicationTemplate/packages.config deleted file mode 100644 index 75e7439feb..0000000000 --- a/templates/Perspex.Templates/ApplicationTemplate/packages.config +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/templates/Perspex.Templates/Perspex.Templates.sln b/templates/Perspex.Templates/Perspex.Templates.sln deleted file mode 100644 index f779b72ea0..0000000000 --- a/templates/Perspex.Templates/Perspex.Templates.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApplicationTemplate", "ApplicationTemplate\ApplicationTemplate.csproj", "{FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FE841ABC-B2D0-4CF6-B73D-FD65F58C870D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal From 2520ae160acabd3097e6284c768b55c6c9d3b489 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 14:55:23 +0200 Subject: [PATCH 10/11] Added StyleCop.Analyzers to Perspex.Markup,Xaml. --- .../Perspex.Markup.Xaml/GlobalSuppressions.cs | 14 +++++++ .../Perspex.Markup.Xaml.csproj | 5 +++ .../Perspex.Markup.Xaml/PerspexXamlLoader.cs | 37 ++++++++++++++++++- .../Perspex.Markup.Xaml/packages.config | 1 + 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/Markup/Perspex.Markup.Xaml/GlobalSuppressions.cs 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.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj index 5d7d97e26d..b1dfe8478d 100644 --- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj +++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj @@ -32,6 +32,7 @@ TRACE prompt 4 + bin\Release\Perspex.Markup.Xaml.XML @@ -39,6 +40,7 @@ + @@ -152,6 +154,9 @@ True + + +