From 192e66179cb0d3095cb1c0cf76dea3e61be9c45c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 1 Dec 2014 19:04:05 +0100 Subject: [PATCH] Initial implementation of GTK windowing system. Displays a window. Doesn't do anything with it yet. --- Cairo/Perspex.Cairo/Perspex.Cairo.csproj | 26 ++-- Docs/mono-build.md | 15 ++ Gtk/Perspex.Gtk/GtkPlatform.cs | 46 ++++++ Gtk/Perspex.Gtk/MyClass.cs | 12 ++ Gtk/Perspex.Gtk/Perspex.Gtk.csproj | 90 +++++++++++ Gtk/Perspex.Gtk/Properties/AssemblyInfo.cs | 27 ++++ Gtk/Perspex.Gtk/Window.cs | 56 +++++++ Gtk/Perspex.Gtk/packages.config | 6 + Perspex-Linux.userprefs | 27 ++++ Perspex-Mono.sln | 105 +++++++++++++ Perspex-Mono.userprefs | 27 ++++ .../Perspex.Application.csproj | 16 +- Perspex.Base/Perspex.Base.csproj | 2 +- .../Platform/IPlatformThreadingInterface.cs | 3 + Perspex.Controls/Perspex.Controls.csproj | 14 +- .../Perspex.Diagnostics.csproj | 16 +- Perspex.Input/Perspex.Input.csproj | 10 +- .../Perspex.Interactivity.csproj | 8 +- Perspex.Layout/Perspex.Layout.csproj | 6 +- .../Perspex.SceneGraph.UnitTests.csproj | 2 +- Perspex.SceneGraph/Perspex.SceneGraph.csproj | 4 +- .../Perspex.Styling.UnitTests.csproj | 2 +- Perspex.Styling/Perspex.Styling.csproj | 6 +- .../Perspex.Themes.Default.csproj | 16 +- Perspex.UnitTests/Perspex.UnitTests.csproj | 4 +- TestApplication/App.cs | 22 ++- TestApplication/Program.cs | 4 + TestApplication/TestApplication-Mono.csproj | 147 ++++++++++++++++++ TestApplication/TestApplication.csproj | 79 ++++------ .../Perspex.Direct2D1.RenderTests.csproj | 2 +- .../Perspex.Direct2D1.csproj | 34 ++-- Windows/Perspex.Win32/Perspex.Win32.csproj | 49 +++--- 32 files changed, 718 insertions(+), 165 deletions(-) create mode 100644 Docs/mono-build.md create mode 100644 Gtk/Perspex.Gtk/GtkPlatform.cs create mode 100644 Gtk/Perspex.Gtk/MyClass.cs create mode 100644 Gtk/Perspex.Gtk/Perspex.Gtk.csproj create mode 100644 Gtk/Perspex.Gtk/Properties/AssemblyInfo.cs create mode 100644 Gtk/Perspex.Gtk/Window.cs create mode 100644 Gtk/Perspex.Gtk/packages.config create mode 100644 Perspex-Linux.userprefs create mode 100644 Perspex-Mono.sln create mode 100644 Perspex-Mono.userprefs create mode 100644 TestApplication/TestApplication-Mono.csproj diff --git a/Cairo/Perspex.Cairo/Perspex.Cairo.csproj b/Cairo/Perspex.Cairo/Perspex.Cairo.csproj index b4f6ae7b6b..1226e2afab 100644 --- a/Cairo/Perspex.Cairo/Perspex.Cairo.csproj +++ b/Cairo/Perspex.Cairo/Perspex.Cairo.csproj @@ -1,5 +1,5 @@  - + Debug @@ -30,26 +30,26 @@ 4 - - + + gtk-sharp-2.0 + ..\..\packages\Splat.1.5.1\lib\Net45\Splat.dll - - False - ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - - - False - ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - + + + ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + + + ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + @@ -61,11 +61,11 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph diff --git a/Docs/mono-build.md b/Docs/mono-build.md new file mode 100644 index 0000000000..b6921863b9 --- /dev/null +++ b/Docs/mono-build.md @@ -0,0 +1,15 @@ +Installing Portable Class Libraries +=================================== + +Microsoft's PCLs are here in an installer that needs to be run on a Windows +machine: + + http://www.microsoft.com/en-us/download/details.aspx?id=40727 + +But someone has made available a .zip here: + + https://www.dropbox.com/s/sf5fclzf2d1spfn/PortableReferenceAssemblies.zip?dl=0 + +Copy them to: + + /usr/lib/mono/xbuild-frameworks/.NETPortable diff --git a/Gtk/Perspex.Gtk/GtkPlatform.cs b/Gtk/Perspex.Gtk/GtkPlatform.cs new file mode 100644 index 0000000000..5b928fff1b --- /dev/null +++ b/Gtk/Perspex.Gtk/GtkPlatform.cs @@ -0,0 +1,46 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2014 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Gtk +{ + using System; + using System.Reactive.Disposables; + using Perspex.Platform; + using Splat; + using Gtk = global::Gtk; + + public class GtkPlatform : IPlatformThreadingInterface + { + private static GtkPlatform instance = new GtkPlatform (); + + public GtkPlatform () + { + Gtk.Application.Init(); + } + + public static void Initialize() + { + var locator = Locator.CurrentMutable; + //locator.Register(() => WindowsKeyboardDevice.Instance, typeof(IKeyboardDevice)); + locator.Register(() => instance, typeof(IPlatformThreadingInterface)); + } + + public void ProcessMessage () + { + Gtk.Application.RunIteration(); + } + + public IDisposable StartTimer (TimeSpan interval, Action internalTick) + { + return Disposable.Empty; + } + + public void Wake () + { + } + } +} + diff --git a/Gtk/Perspex.Gtk/MyClass.cs b/Gtk/Perspex.Gtk/MyClass.cs new file mode 100644 index 0000000000..ef330fa832 --- /dev/null +++ b/Gtk/Perspex.Gtk/MyClass.cs @@ -0,0 +1,12 @@ +using System; + +namespace Perspex.Gtk +{ + public class MyClass + { + public MyClass () + { + } + } +} + diff --git a/Gtk/Perspex.Gtk/Perspex.Gtk.csproj b/Gtk/Perspex.Gtk/Perspex.Gtk.csproj new file mode 100644 index 0000000000..f197f478e1 --- /dev/null +++ b/Gtk/Perspex.Gtk/Perspex.Gtk.csproj @@ -0,0 +1,90 @@ + + + + Debug + AnyCPU + {54F237D5-A70A-4752-9656-0C70B1A7B047} + Library + Perspex.Gtk + Perspex.Gtk + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + full + true + bin\Release + prompt + 4 + false + + + + + ..\..\packages\Splat.1.5.1\lib\Net45\Splat.dll + + + gtk-sharp-2.0 + + + gtk-sharp-2.0 + + + gtk-sharp-2.0 + + + ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + + + ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + + + + + + + + + + + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} + Perspex.Base + + + {62024B2D-53EB-4638-B26B-85EEAA54866E} + Perspex.Input + + + {EB582467-6ABB-43A1-B052-E981BA910E3A} + Perspex.SceneGraph + + + {42472427-4774-4C81-8AFF-9F27B8E31721} + Perspex.Layout + + + {D2221C82-4A25-4583-9B43-D791E3F6820C} + Perspex.Controls + + + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} + Perspex.Styling + + + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} + Perspex.Interactivity + + + + + + \ No newline at end of file diff --git a/Gtk/Perspex.Gtk/Properties/AssemblyInfo.cs b/Gtk/Perspex.Gtk/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..97680abc0e --- /dev/null +++ b/Gtk/Perspex.Gtk/Properties/AssemblyInfo.cs @@ -0,0 +1,27 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Perspex.Gtk")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("steven")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff --git a/Gtk/Perspex.Gtk/Window.cs b/Gtk/Perspex.Gtk/Window.cs new file mode 100644 index 0000000000..1449eb4239 --- /dev/null +++ b/Gtk/Perspex.Gtk/Window.cs @@ -0,0 +1,56 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2014 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Gtk +{ + using Perspex.Input; + using Perspex.Rendering; + using Perspex.Layout; + using Perspex.Controls; + using Gtk = global::Gtk; + + public class Window : ContentControl, ILayoutRoot, IRenderRoot, ICloseable + { + public static readonly PerspexProperty TitleProperty = + PerspexProperty.Register("Title"); + + private Gtk.Window inner; + + public Window () + { + this.inner = new Gtk.Window(Gtk.WindowType.Toplevel); + inner.SetDefaultSize(1400, 800); + inner.SetPosition(Gtk.WindowPosition.Center); + inner.DeleteEvent += delegate { Gtk.Application.Quit(); }; + } + + public event System.EventHandler Closed; + + public Size ClientSize + { + get { throw new System.NotImplementedException (); } + } + + public ILayoutManager LayoutManager { + get { throw new System.NotImplementedException (); } + } + + public IRenderManager RenderManager { + get { throw new System.NotImplementedException (); } + } + + public string Title + { + get { return this.GetValue(TitleProperty); } + set { this.SetValue(TitleProperty, value); } + } + + public void Show() + { + this.inner.Show(); + } + } +} \ No newline at end of file diff --git a/Gtk/Perspex.Gtk/packages.config b/Gtk/Perspex.Gtk/packages.config new file mode 100644 index 0000000000..0ab7b56b8d --- /dev/null +++ b/Gtk/Perspex.Gtk/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Perspex-Linux.userprefs b/Perspex-Linux.userprefs new file mode 100644 index 0000000000..b4525f70d2 --- /dev/null +++ b/Perspex-Linux.userprefs @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Perspex-Mono.sln b/Perspex-Mono.sln new file mode 100644 index 0000000000..56696bab38 --- /dev/null +++ b/Perspex-Mono.sln @@ -0,0 +1,105 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Base", "Perspex.Base\Perspex.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.SceneGraph", "Perspex.SceneGraph\Perspex.SceneGraph.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Layout", "Perspex.Layout\Perspex.Layout.csproj", "{42472427-4774-4C81-8AFF-9F27B8E31721}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Input", "Perspex.Input\Perspex.Input.csproj", "{62024B2D-53EB-4638-B26B-85EEAA54866E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Interactivity", "Perspex.Interactivity\Perspex.Interactivity.csproj", "{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Controls", "Perspex.Controls\Perspex.Controls.csproj", "{D2221C82-4A25-4583-9B43-D791E3F6820C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Styling", "Perspex.Styling\Perspex.Styling.csproj", "{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Themes.Default", "Perspex.Themes.Default\Perspex.Themes.Default.csproj", "{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Application", "Perspex.Application\Perspex.Application.csproj", "{799A7BB5-3C2C-48B6-85A7-406A12C420DA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Diagnostics", "Perspex.Diagnostics\Perspex.Diagnostics.csproj", "{7062AE20-5DCC-4442-9645-8195BDECE63E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Cairo", "Cairo", "{1D577B69-F23B-4C4F-8605-97704DAC75A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Cairo", "Cairo\Perspex.Cairo\Perspex.Cairo.csproj", "{FB05AC90-89BA-4F2F-A924-F37875FB547C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gtk", "Gtk", "{B8DA33FB-7ED2-4F4C-9647-D49492B1D07C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Gtk", "Gtk\Perspex.Gtk\Perspex.Gtk.csproj", "{54F237D5-A70A-4752-9656-0C70B1A7B047}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApplication-Mono", "TestApplication\TestApplication-Mono.csproj", "{E3A1060B-50D0-44E8-88B6-F44EF2E5BD72}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.Build.0 = Release|Any CPU + {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.Build.0 = Release|Any CPU + {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.Build.0 = Release|Any CPU + {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.Build.0 = Release|Any CPU + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.Build.0 = Release|Any CPU + {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Any CPU.Build.0 = Release|Any CPU + {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Any CPU.Build.0 = Release|Any CPU + {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Any CPU.Build.0 = Release|Any CPU + {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Any CPU.Build.0 = Release|Any CPU + {E3A1060B-50D0-44E8-88B6-F44EF2E5BD72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3A1060B-50D0-44E8-88B6-F44EF2E5BD72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3A1060B-50D0-44E8-88B6-F44EF2E5BD72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3A1060B-50D0-44E8-88B6-F44EF2E5BD72}.Release|Any CPU.Build.0 = Release|Any CPU + {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.Build.0 = Release|Any CPU + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.Build.0 = Release|Any CPU + {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {FB05AC90-89BA-4F2F-A924-F37875FB547C} = {1D577B69-F23B-4C4F-8605-97704DAC75A9} + {54F237D5-A70A-4752-9656-0C70B1A7B047} = {B8DA33FB-7ED2-4F4C-9647-D49492B1D07C} + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = TestApplication\TestApplication-Mono.csproj + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Perspex-Mono.userprefs b/Perspex-Mono.userprefs new file mode 100644 index 0000000000..d5dd52b18f --- /dev/null +++ b/Perspex-Mono.userprefs @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Perspex.Application/Perspex.Application.csproj b/Perspex.Application/Perspex.Application.csproj index 915072ae6c..bd85add2e1 100644 --- a/Perspex.Application/Perspex.Application.csproj +++ b/Perspex.Application/Perspex.Application.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -37,31 +37,31 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {d2221c82-4a25-4583-9b43-d791e3f6820c} + {D2221C82-4A25-4583-9B43-D791E3F6820C} Perspex.Controls - {62024b2d-53eb-4638-b26b-85eeaa54866e} + {62024B2D-53EB-4638-B26B-85EEAA54866E} Perspex.Input - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling diff --git a/Perspex.Base/Perspex.Base.csproj b/Perspex.Base/Perspex.Base.csproj index 0b224ac578..5ebb0ac957 100644 --- a/Perspex.Base/Perspex.Base.csproj +++ b/Perspex.Base/Perspex.Base.csproj @@ -1,5 +1,5 @@  - + 11.0 diff --git a/Perspex.Base/Platform/IPlatformThreadingInterface.cs b/Perspex.Base/Platform/IPlatformThreadingInterface.cs index 1b752ef297..649612dbda 100644 --- a/Perspex.Base/Platform/IPlatformThreadingInterface.cs +++ b/Perspex.Base/Platform/IPlatformThreadingInterface.cs @@ -11,6 +11,9 @@ namespace Perspex.Platform using System.Threading.Tasks; using Perspex.Threading; + /// + /// Provides platform-specific services relating to threading. + /// public interface IPlatformThreadingInterface { /// diff --git a/Perspex.Controls/Perspex.Controls.csproj b/Perspex.Controls/Perspex.Controls.csproj index a4d49af8ba..9f67148d6e 100644 --- a/Perspex.Controls/Perspex.Controls.csproj +++ b/Perspex.Controls/Perspex.Controls.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -114,27 +114,27 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {62024b2d-53eb-4638-b26b-85eeaa54866e} + {62024B2D-53EB-4638-B26B-85EEAA54866E} Perspex.Input - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling diff --git a/Perspex.Diagnostics/Perspex.Diagnostics.csproj b/Perspex.Diagnostics/Perspex.Diagnostics.csproj index d452d20867..91e89ecee9 100644 --- a/Perspex.Diagnostics/Perspex.Diagnostics.csproj +++ b/Perspex.Diagnostics/Perspex.Diagnostics.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -36,31 +36,31 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {d2221c82-4a25-4583-9b43-d791e3f6820c} + {D2221C82-4A25-4583-9B43-D791E3F6820C} Perspex.Controls - {62024b2d-53eb-4638-b26b-85eeaa54866e} + {62024B2D-53EB-4638-B26B-85EEAA54866E} Perspex.Input - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling diff --git a/Perspex.Input/Perspex.Input.csproj b/Perspex.Input/Perspex.Input.csproj index d8a4fc02ec..02125ec8e6 100644 --- a/Perspex.Input/Perspex.Input.csproj +++ b/Perspex.Input/Perspex.Input.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -36,19 +36,19 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph diff --git a/Perspex.Interactivity/Perspex.Interactivity.csproj b/Perspex.Interactivity/Perspex.Interactivity.csproj index 7faac4cede..6f30c8ed23 100644 --- a/Perspex.Interactivity/Perspex.Interactivity.csproj +++ b/Perspex.Interactivity/Perspex.Interactivity.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -36,15 +36,15 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph diff --git a/Perspex.Layout/Perspex.Layout.csproj b/Perspex.Layout/Perspex.Layout.csproj index 920966b61c..af8d421bd3 100644 --- a/Perspex.Layout/Perspex.Layout.csproj +++ b/Perspex.Layout/Perspex.Layout.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -36,11 +36,11 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph diff --git a/Perspex.SceneGraph.UnitTests/Perspex.SceneGraph.UnitTests.csproj b/Perspex.SceneGraph.UnitTests/Perspex.SceneGraph.UnitTests.csproj index e0592ce2b8..faec5d7788 100644 --- a/Perspex.SceneGraph.UnitTests/Perspex.SceneGraph.UnitTests.csproj +++ b/Perspex.SceneGraph.UnitTests/Perspex.SceneGraph.UnitTests.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU diff --git a/Perspex.SceneGraph/Perspex.SceneGraph.csproj b/Perspex.SceneGraph/Perspex.SceneGraph.csproj index 71306a04be..d34d8b968f 100644 --- a/Perspex.SceneGraph/Perspex.SceneGraph.csproj +++ b/Perspex.SceneGraph/Perspex.SceneGraph.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -36,7 +36,7 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base diff --git a/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj b/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj index 35f9b9561a..5dbe204925 100644 --- a/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj +++ b/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU diff --git a/Perspex.Styling/Perspex.Styling.csproj b/Perspex.Styling/Perspex.Styling.csproj index 3e4442f46a..d87a4cddce 100644 --- a/Perspex.Styling/Perspex.Styling.csproj +++ b/Perspex.Styling/Perspex.Styling.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -75,11 +75,11 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph diff --git a/Perspex.Themes.Default/Perspex.Themes.Default.csproj b/Perspex.Themes.Default/Perspex.Themes.Default.csproj index 643059bcba..ad58628f48 100644 --- a/Perspex.Themes.Default/Perspex.Themes.Default.csproj +++ b/Perspex.Themes.Default/Perspex.Themes.Default.csproj @@ -1,5 +1,5 @@  - + 11.0 @@ -37,31 +37,31 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {d2221c82-4a25-4583-9b43-d791e3f6820c} + {D2221C82-4A25-4583-9B43-D791E3F6820C} Perspex.Controls - {62024b2d-53eb-4638-b26b-85eeaa54866e} + {62024B2D-53EB-4638-B26B-85EEAA54866E} Perspex.Input - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling diff --git a/Perspex.UnitTests/Perspex.UnitTests.csproj b/Perspex.UnitTests/Perspex.UnitTests.csproj index a13658aaa7..90956ea27e 100644 --- a/Perspex.UnitTests/Perspex.UnitTests.csproj +++ b/Perspex.UnitTests/Perspex.UnitTests.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -70,10 +70,10 @@ - + diff --git a/TestApplication/App.cs b/TestApplication/App.cs index 329dcdc8bb..40ec041c58 100644 --- a/TestApplication/App.cs +++ b/TestApplication/App.cs @@ -1,10 +1,19 @@ namespace TestApplication { using Perspex; - using Perspex.Cairo; - using Perspex.Direct2D1; - using Perspex.Themes.Default; + using Perspex.Themes.Default; + +#if PERSPEX_CAIRO + using Perspex.Cairo; +#else + using Perspex.Direct2D1; +#endif + +#if PERSPEX_GTK + using Perspex.Gtk; +#else using Perspex.Win32; +#endif public class App : Application { @@ -17,7 +26,12 @@ #else Direct2D1Platform.Initialize(); #endif - Win32Platform.Initialize(); + +#if PERSPEX_GTK + GtkPlatform.Initialize(); +#else + Win32Platform.Initialize(); +#endif } } } diff --git a/TestApplication/Program.cs b/TestApplication/Program.cs index 34720898e5..04177b9e60 100644 --- a/TestApplication/Program.cs +++ b/TestApplication/Program.cs @@ -6,7 +6,11 @@ using Perspex.Diagnostics; using Perspex.Layout; using Perspex.Media; using Perspex.Media.Imaging; +#if PERSPEX_GTK +using Perspex.Gtk; +#else using Perspex.Win32; +#endif using Splat; namespace TestApplication diff --git a/TestApplication/TestApplication-Mono.csproj b/TestApplication/TestApplication-Mono.csproj new file mode 100644 index 0000000000..ae8d8e0982 --- /dev/null +++ b/TestApplication/TestApplication-Mono.csproj @@ -0,0 +1,147 @@ + + + + + Debug + AnyCPU + {E3A1060B-50D0-44E8-88B6-F44EF2E5BD72} + WinExe + Properties + TestApplication + TestApplication + v4.5 + 512 + caf18def + + + true + full + false + bin\Debug\ + TRACE;DEBUG;PERSPEX_CAIRO;PERSPEX_GTK + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\packages\Rx-Xaml.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll + + + + + + + + + + ..\packages\reactiveui-core.6.2.1.1\lib\Net45\ReactiveUI.dll + + + ..\packages\Splat.1.5.1\lib\Net45\Splat.dll + + + ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + + + ..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + + + ..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll + + + ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll + + + + + + + + + + + + + + {FB05AC90-89BA-4F2F-A924-F37875FB547C} + Perspex.Cairo + + + {799A7BB5-3C2C-48B6-85A7-406A12C420DA} + Perspex.Application + + + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} + Perspex.Base + + + {D2221C82-4A25-4583-9B43-D791E3F6820C} + Perspex.Controls + + + {7062AE20-5DCC-4442-9645-8195BDECE63E} + Perspex.Diagnostics + + + {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 + + + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F} + Perspex.Themes.Default + + + {54F237D5-A70A-4752-9656-0C70B1A7B047} + Perspex.Gtk + + + + + PreserveNewest + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable 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/TestApplication/TestApplication.csproj b/TestApplication/TestApplication.csproj index 3e6f7bbc99..6373e8a328 100644 --- a/TestApplication/TestApplication.csproj +++ b/TestApplication/TestApplication.csproj @@ -1,5 +1,5 @@  - + Debug @@ -33,14 +33,7 @@ prompt 4 - - - - - False - ..\packages\reactiveui-core.6.2.1.1\lib\Net45\ReactiveUI.dll - False $(SharpDXPackageBinDir)\SharpDX.dll @@ -53,31 +46,11 @@ False $(SharpDXPackageBinDir)\SharpDX.DXGI.dll - - False - ..\packages\Splat.1.5.1\lib\Net45\Splat.dll - - - False - ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - - - False - ..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - - - False - ..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll - - - False - ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll - - ..\packages\Rx-XAML.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll + ..\packages\Rx-Xaml.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll @@ -86,6 +59,24 @@ + + ..\packages\reactiveui-core.6.2.1.1\lib\Net45\ReactiveUI.dll + + + ..\packages\Splat.1.5.1\lib\Net45\Splat.dll + + + ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + + + ..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + + + ..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll + + + ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll + @@ -98,57 +89,49 @@ - {fb05ac90-89ba-4f2f-a924-f37875fb547c} + {FB05AC90-89BA-4F2F-A924-F37875FB547C} Perspex.Cairo - {799a7bb5-3c2c-48b6-85a7-406a12c420da} + {799A7BB5-3C2C-48B6-85A7-406A12C420DA} Perspex.Application - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {d2221c82-4a25-4583-9b43-d791e3f6820c} + {D2221C82-4A25-4583-9B43-D791E3F6820C} Perspex.Controls - {7062ae20-5dcc-4442-9645-8195bdece63e} + {7062AE20-5DCC-4442-9645-8195BDECE63E} Perspex.Diagnostics - - {3e908f67-5543-4879-a1dc-08eace79b3cd} - Perspex.Direct2D1 - - {62024b2d-53eb-4638-b26b-85eeaa54866e} + {62024B2D-53EB-4638-B26B-85EEAA54866E} Perspex.Input - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling - {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F} Perspex.Themes.Default - - {811a76cf-1cf6-440f-963b-bbe31bd72a82} - Perspex.Win32 - diff --git a/Windows/Perspex.Direct2D1.RenderTests/Perspex.Direct2D1.RenderTests.csproj b/Windows/Perspex.Direct2D1.RenderTests/Perspex.Direct2D1.RenderTests.csproj index 1eebdb3a00..bace0f0688 100644 --- a/Windows/Perspex.Direct2D1.RenderTests/Perspex.Direct2D1.RenderTests.csproj +++ b/Windows/Perspex.Direct2D1.RenderTests/Perspex.Direct2D1.RenderTests.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU diff --git a/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj b/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj index 1077b46351..07e4bb1800 100644 --- a/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj +++ b/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj @@ -1,5 +1,5 @@  - + Debug @@ -43,31 +43,27 @@ False $(SharpDXPackageBinDir)\SharpDX.DXGI.dll - - False - ..\..\packages\Splat.1.5.1\lib\Net45\Splat.dll - - - False - ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - - - False - ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - - - False - ..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll - + + ..\..\packages\Splat.1.5.1\lib\Net45\Splat.dll + + + ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + + + ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + + + ..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll + @@ -88,11 +84,11 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph diff --git a/Windows/Perspex.Win32/Perspex.Win32.csproj b/Windows/Perspex.Win32/Perspex.Win32.csproj index 34820c5520..fae0a97eee 100644 --- a/Windows/Perspex.Win32/Perspex.Win32.csproj +++ b/Windows/Perspex.Win32/Perspex.Win32.csproj @@ -1,5 +1,5 @@  - + Debug @@ -30,35 +30,30 @@ 4 - - False - ..\..\packages\Splat.1.5.1\lib\Net45\Splat.dll - - - False + + + + + + + + ..\..\packages\Splat.1.5.1\lib\Net45\Splat.dll + + ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - - False + ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - - False + ..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll - - False + ..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll - - - - - - @@ -75,35 +70,35 @@ - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base - {d2221c82-4a25-4583-9b43-d791e3f6820c} + {D2221C82-4A25-4583-9B43-D791E3F6820C} Perspex.Controls - {7062ae20-5dcc-4442-9645-8195bdece63e} + {7062AE20-5DCC-4442-9645-8195BDECE63E} Perspex.Diagnostics - {62024b2d-53eb-4638-b26b-85eeaa54866e} + {62024B2D-53EB-4638-B26B-85EEAA54866E} Perspex.Input - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} + {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} Perspex.Interactivity - {42472427-4774-4c81-8aff-9f27b8e31721} + {42472427-4774-4C81-8AFF-9F27B8E31721} Perspex.Layout - {eb582467-6abb-43a1-b052-e981ba910e3a} + {EB582467-6ABB-43A1-B052-E981BA910E3A} Perspex.SceneGraph - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} + {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling