From 2b88ba80e6653fe1aab1aaab9dafc23cc300650b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Sun, 1 May 2016 12:39:41 +0200 Subject: [PATCH] Create perspex project stub --- SpiroNet.sln | 6 + src/SpiroNet.Perspex/App.config | 6 + src/SpiroNet.Perspex/App.xaml | 9 + src/SpiroNet.Perspex/App.xaml.cs | 39 +++ .../Converters/EnumToBooleanConverter.cs | 25 ++ .../Converters/ShapeToDataConverter.cs | 25 ++ src/SpiroNet.Perspex/MainWindow.xaml | 10 + src/SpiroNet.Perspex/MainWindow.xaml.cs | 39 +++ src/SpiroNet.Perspex/Program.cs | 45 ++++ .../Properties/AssemblyInfo.cs | 36 +++ .../Renderer/BasicStyleCache.cs | 25 ++ .../Renderer/CanvasRenderer.cs | 25 ++ src/SpiroNet.Perspex/SpiroNet.Perspex.csproj | 226 ++++++++++++++++++ src/SpiroNet.Perspex/Views/EditorView.xaml | 10 + src/SpiroNet.Perspex/Views/EditorView.xaml.cs | 38 +++ src/SpiroNet.Perspex/packages.config | 16 ++ 16 files changed, 580 insertions(+) create mode 100644 src/SpiroNet.Perspex/App.config create mode 100644 src/SpiroNet.Perspex/App.xaml create mode 100644 src/SpiroNet.Perspex/App.xaml.cs create mode 100644 src/SpiroNet.Perspex/Converters/EnumToBooleanConverter.cs create mode 100644 src/SpiroNet.Perspex/Converters/ShapeToDataConverter.cs create mode 100644 src/SpiroNet.Perspex/MainWindow.xaml create mode 100644 src/SpiroNet.Perspex/MainWindow.xaml.cs create mode 100644 src/SpiroNet.Perspex/Program.cs create mode 100644 src/SpiroNet.Perspex/Properties/AssemblyInfo.cs create mode 100644 src/SpiroNet.Perspex/Renderer/BasicStyleCache.cs create mode 100644 src/SpiroNet.Perspex/Renderer/CanvasRenderer.cs create mode 100644 src/SpiroNet.Perspex/SpiroNet.Perspex.csproj create mode 100644 src/SpiroNet.Perspex/Views/EditorView.xaml create mode 100644 src/SpiroNet.Perspex/Views/EditorView.xaml.cs create mode 100644 src/SpiroNet.Perspex/packages.config diff --git a/SpiroNet.sln b/SpiroNet.sln index 036a60e..7b9e5e7 100644 --- a/SpiroNet.sln +++ b/SpiroNet.sln @@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpiroNet.Json", "src\SpiroN EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpiroNet.ViewModels", "src\SpiroNet.ViewModels\SpiroNet.ViewModels.csproj", "{A4CD560C-4567-4889-AC1A-FE03E15FF75E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpiroNet.Perspex", "src\SpiroNet.Perspex\SpiroNet.Perspex.csproj", "{B8DB18EB-3BE1-4344-812E-5B3B22D969A3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -39,6 +41,10 @@ Global {A4CD560C-4567-4889-AC1A-FE03E15FF75E}.Debug|Any CPU.Build.0 = Debug|Any CPU {A4CD560C-4567-4889-AC1A-FE03E15FF75E}.Release|Any CPU.ActiveCfg = Release|Any CPU {A4CD560C-4567-4889-AC1A-FE03E15FF75E}.Release|Any CPU.Build.0 = Release|Any CPU + {B8DB18EB-3BE1-4344-812E-5B3B22D969A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8DB18EB-3BE1-4344-812E-5B3B22D969A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8DB18EB-3BE1-4344-812E-5B3B22D969A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8DB18EB-3BE1-4344-812E-5B3B22D969A3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/SpiroNet.Perspex/App.config b/src/SpiroNet.Perspex/App.config new file mode 100644 index 0000000..d1428ad --- /dev/null +++ b/src/SpiroNet.Perspex/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/SpiroNet.Perspex/App.xaml b/src/SpiroNet.Perspex/App.xaml new file mode 100644 index 0000000..b1ffd72 --- /dev/null +++ b/src/SpiroNet.Perspex/App.xaml @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/SpiroNet.Perspex/App.xaml.cs b/src/SpiroNet.Perspex/App.xaml.cs new file mode 100644 index 0000000..79fa185 --- /dev/null +++ b/src/SpiroNet.Perspex/App.xaml.cs @@ -0,0 +1,39 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ +using Perspex; + +namespace SpiroNet.Perspex +{ + public class App : Application + { + public App() + { + RegisterServices(); + } + + public void Start() + { + var mainWindow = new MainWindow(); + mainWindow.Show(); + Run(mainWindow); + } + } +} diff --git a/src/SpiroNet.Perspex/Converters/EnumToBooleanConverter.cs b/src/SpiroNet.Perspex/Converters/EnumToBooleanConverter.cs new file mode 100644 index 0000000..f53b931 --- /dev/null +++ b/src/SpiroNet.Perspex/Converters/EnumToBooleanConverter.cs @@ -0,0 +1,25 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ + +namespace SpiroNet.Perspex +{ + +} diff --git a/src/SpiroNet.Perspex/Converters/ShapeToDataConverter.cs b/src/SpiroNet.Perspex/Converters/ShapeToDataConverter.cs new file mode 100644 index 0000000..f53b931 --- /dev/null +++ b/src/SpiroNet.Perspex/Converters/ShapeToDataConverter.cs @@ -0,0 +1,25 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ + +namespace SpiroNet.Perspex +{ + +} diff --git a/src/SpiroNet.Perspex/MainWindow.xaml b/src/SpiroNet.Perspex/MainWindow.xaml new file mode 100644 index 0000000..1512e57 --- /dev/null +++ b/src/SpiroNet.Perspex/MainWindow.xaml @@ -0,0 +1,10 @@ + + + diff --git a/src/SpiroNet.Perspex/MainWindow.xaml.cs b/src/SpiroNet.Perspex/MainWindow.xaml.cs new file mode 100644 index 0000000..2b887f1 --- /dev/null +++ b/src/SpiroNet.Perspex/MainWindow.xaml.cs @@ -0,0 +1,39 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ +using Perspex; +using Perspex.Controls; + +namespace SpiroNet.Perspex +{ + public class MainWindow : Window + { + public MainWindow() + { + this.InitializeComponent(); + this.AttachDevTools(); + } + + private void InitializeComponent() + { + this.LoadFromXaml(); + } + } +} diff --git a/src/SpiroNet.Perspex/Program.cs b/src/SpiroNet.Perspex/Program.cs new file mode 100644 index 0000000..a2633ad --- /dev/null +++ b/src/SpiroNet.Perspex/Program.cs @@ -0,0 +1,45 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ +using Perspex; +using Perspex.Logging.Serilog; +using Serilog; + +namespace SpiroNet.Perspex +{ + internal class Program + { + private static void Main(string[] args) + { + InitializeLogging(); + new App().UseWin32().UseDirect2D().LoadFromXaml().Start(); + } + + private static void InitializeLogging() + { +#if DEBUG + SerilogLogger.Initialize(new LoggerConfiguration() + .MinimumLevel.Warning() + .WriteTo.Trace(outputTemplate: "{Area}: {Message}") + .CreateLogger()); +#endif + } + } +} diff --git a/src/SpiroNet.Perspex/Properties/AssemblyInfo.cs b/src/SpiroNet.Perspex/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..68a7a42 --- /dev/null +++ b/src/SpiroNet.Perspex/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +/* +SpiroNet.Wpf +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("SpiroNet.Perspex")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SpiroNet.Perspex")] +[assembly: AssemblyCopyright("Copyright © Wiesław Šoltés 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] +[assembly: Guid("b8db18eb-3be1-4344-812e-5b3b22d969a3")] + +[assembly: AssemblyVersion("1.0.*")] diff --git a/src/SpiroNet.Perspex/Renderer/BasicStyleCache.cs b/src/SpiroNet.Perspex/Renderer/BasicStyleCache.cs new file mode 100644 index 0000000..f53b931 --- /dev/null +++ b/src/SpiroNet.Perspex/Renderer/BasicStyleCache.cs @@ -0,0 +1,25 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ + +namespace SpiroNet.Perspex +{ + +} diff --git a/src/SpiroNet.Perspex/Renderer/CanvasRenderer.cs b/src/SpiroNet.Perspex/Renderer/CanvasRenderer.cs new file mode 100644 index 0000000..f53b931 --- /dev/null +++ b/src/SpiroNet.Perspex/Renderer/CanvasRenderer.cs @@ -0,0 +1,25 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ + +namespace SpiroNet.Perspex +{ + +} diff --git a/src/SpiroNet.Perspex/SpiroNet.Perspex.csproj b/src/SpiroNet.Perspex/SpiroNet.Perspex.csproj new file mode 100644 index 0000000..a63e0c6 --- /dev/null +++ b/src/SpiroNet.Perspex/SpiroNet.Perspex.csproj @@ -0,0 +1,226 @@ + + + + + Debug + AnyCPU + {B8DB18EB-3BE1-4344-812E-5B3B22D969A3} + WinExe + Properties + SpiroNet.Perspex + SpiroNet.Perspex + v4.5 + 512 + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Animation.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Base.dll + True + + + ..\..\packages\Perspex.Desktop.9999.0.1451-nightly\lib\net45\Perspex.Cairo.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Controls.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.DesignerSupport.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Diagnostics.dll + True + + + ..\..\packages\Perspex.Desktop.9999.0.1451-nightly\lib\net45\Perspex.Direct2D1.dll + True + + + ..\..\packages\Perspex.Desktop.9999.0.1451-nightly\lib\net45\Perspex.Gtk.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.HtmlRenderer.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Input.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Interactivity.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Layout.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Logging.Serilog.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Markup.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Markup.Xaml.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.ReactiveUI.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.SceneGraph.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Styling.dll + True + + + ..\..\packages\Perspex.9999.0.1451-nightly\lib\portable-windows8+net45\Perspex.Themes.Default.dll + True + + + ..\..\packages\Perspex.Desktop.9999.0.1451-nightly\lib\net45\Perspex.Win32.dll + True + + + ..\..\packages\Serilog.1.5.14\lib\net45\Serilog.dll + True + + + ..\..\packages\Serilog.1.5.14\lib\net45\Serilog.FullNetFx.dll + True + + + ..\..\packages\SharpDX.3.0.2\lib\net45\SharpDX.dll + True + + + ..\..\packages\SharpDX.Direct2D1.3.0.2\lib\net45\SharpDX.Direct2D1.dll + True + + + ..\..\packages\SharpDX.DXGI.3.0.2\lib\net45\SharpDX.DXGI.dll + True + + + ..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll + True + + + ..\..\packages\Sprache.2.0.0.50\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\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 + + + + + + + + + + + App.xaml + + + + + MainWindow.xaml + + + + + + + EditorView.xaml + + + + + + + + + {4f0e9e3e-da95-40b2-8fde-22902388e90a} + SpiroNet.Editor + + + {a4cd560c-4567-4889-ac1a-fe03e15ff75e} + SpiroNet.ViewModels + + + {b2deab02-f231-4aa9-8879-0fd73096c60d} + SpiroNet + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/SpiroNet.Perspex/Views/EditorView.xaml b/src/SpiroNet.Perspex/Views/EditorView.xaml new file mode 100644 index 0000000..be4e7a2 --- /dev/null +++ b/src/SpiroNet.Perspex/Views/EditorView.xaml @@ -0,0 +1,10 @@ + + + diff --git a/src/SpiroNet.Perspex/Views/EditorView.xaml.cs b/src/SpiroNet.Perspex/Views/EditorView.xaml.cs new file mode 100644 index 0000000..203264e --- /dev/null +++ b/src/SpiroNet.Perspex/Views/EditorView.xaml.cs @@ -0,0 +1,38 @@ +/* +SpiroNet.Perspex +Copyright (C) 2015 Wiesław Šoltés + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +*/ +using Perspex.Controls; +using Perspex.Markup.Xaml; + +namespace SpiroNet.Perspex.Views +{ + public class EditorView : UserControl + { + public EditorView() + { + this.InitializeComponent(); + } + + private void InitializeComponent() + { + PerspexXamlLoader.Load(this); + } + } +} diff --git a/src/SpiroNet.Perspex/packages.config b/src/SpiroNet.Perspex/packages.config new file mode 100644 index 0000000..c0d8feb --- /dev/null +++ b/src/SpiroNet.Perspex/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file