Browse Source

Merge branch 'locator'

pull/197/head
Nikita Tsukanov 11 years ago
parent
commit
3e0f4059cd
  1. 4
      samples/TestApplication/App.config
  2. 3
      samples/TestApplication/TestApplication.csproj
  3. 15
      samples/TestApplication/packages.config
  4. 7
      samples/XamlTestApplication/XamlTestApplication.csproj
  5. 2
      samples/XamlTestApplication/packages.config
  6. 7
      src/Gtk/Perspex.Cairo/CairoPlatform.cs
  7. 1
      src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs
  8. 1
      src/Gtk/Perspex.Cairo/Media/StreamGeometryImpl.cs
  9. 3
      src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj
  10. 7
      src/Gtk/Perspex.Cairo/packages.config
  11. 20
      src/Gtk/Perspex.Gtk/GtkPlatform.cs
  12. 3
      src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj
  13. 7
      src/Gtk/Perspex.Gtk/packages.config
  14. 3
      src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
  15. 3
      src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
  16. 5
      src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs
  17. 1
      src/Markup/Perspex.Markup.Xaml/packages.config
  18. 22
      src/Perspex.Application/Application.cs
  19. 3
      src/Perspex.Application/Perspex.Application.csproj
  20. 1
      src/Perspex.Application/packages.config
  21. 4
      src/Perspex.Base/Perspex.Base.csproj
  22. 120
      src/Perspex.Base/PerspexLocator.cs
  23. 5
      src/Perspex.Base/Threading/DispatcherTimer.cs
  24. 3
      src/Perspex.Base/Threading/MainLoop.cs
  25. 1
      src/Perspex.Base/packages.config
  26. 3
      src/Perspex.Controls/Control.cs
  27. 18
      src/Perspex.Controls/MenuItem.cs
  28. 3
      src/Perspex.Controls/Perspex.Controls.csproj
  29. 3
      src/Perspex.Controls/Primitives/Popup.cs
  30. 5
      src/Perspex.Controls/Primitives/PopupRoot.cs
  31. 5
      src/Perspex.Controls/SystemDialog.cs
  32. 3
      src/Perspex.Controls/Templates/DataTemplateExtensions.cs
  33. 5
      src/Perspex.Controls/TextBox.cs
  34. 11
      src/Perspex.Controls/TopLevel.cs
  35. 3
      src/Perspex.Controls/Window.cs
  36. 1
      src/Perspex.Controls/packages.config
  37. 3
      src/Perspex.HtmlRenderer/Adapters/PerspexAdapter.cs
  38. 3
      src/Perspex.HtmlRenderer/Perspex.HtmlRenderer.csproj
  39. 1
      src/Perspex.HtmlRenderer/packages.config
  40. 3
      src/Perspex.Input/Cursors.cs
  41. 3
      src/Perspex.Input/FocusManager.cs
  42. 3
      src/Perspex.Input/InputManager.cs
  43. 7
      src/Perspex.Input/KeyboardDevice.cs
  44. 7
      src/Perspex.Input/MouseDevice.cs
  45. 3
      src/Perspex.Input/Perspex.Input.csproj
  46. 1
      src/Perspex.Input/packages.config
  47. 3
      src/Perspex.Interactivity/Perspex.Interactivity.csproj
  48. 1
      src/Perspex.Interactivity/packages.config
  49. 3
      src/Perspex.Layout/Perspex.Layout.csproj
  50. 1
      src/Perspex.Layout/packages.config
  51. 3
      src/Perspex.SceneGraph/Media/EllipseGeometry.cs
  52. 3
      src/Perspex.SceneGraph/Media/FormattedText.cs
  53. 7
      src/Perspex.SceneGraph/Media/Imaging/Bitmap.cs
  54. 3
      src/Perspex.SceneGraph/Media/Imaging/RenderTargetBitmap.cs
  55. 3
      src/Perspex.SceneGraph/Media/RectangleGeometry.cs
  56. 3
      src/Perspex.SceneGraph/Media/StreamGeometry.cs
  57. 3
      src/Perspex.SceneGraph/Perspex.SceneGraph.csproj
  58. 1
      src/Perspex.SceneGraph/packages.config
  59. 3
      src/Perspex.Styling/Perspex.Styling.csproj
  60. 3
      src/Perspex.Styling/Styling/Styler.cs
  61. 3
      src/Perspex.Themes.Default/Perspex.Themes.Default.csproj
  62. 1
      src/Perspex.Themes.Default/packages.config
  63. 7
      src/Shared/PlatformSupport/SharedPlatform.cs
  64. 14
      src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs
  65. 3
      src/Windows/Perspex.Direct2D1/Media/FormattedTextImpl.cs
  66. 3
      src/Windows/Perspex.Direct2D1/Media/GeometryImpl.cs
  67. 5
      src/Windows/Perspex.Direct2D1/Media/StreamGeometryImpl.cs
  68. 3
      src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj
  69. 9
      src/Windows/Perspex.Direct2D1/Renderer.cs
  70. 1
      src/Windows/Perspex.Direct2D1/packages.config
  71. 3
      src/Windows/Perspex.Win32/Perspex.Win32.csproj
  72. 26
      src/Windows/Perspex.Win32/Win32Platform.cs
  73. 1
      src/Windows/Perspex.Win32/packages.config
  74. 3
      tests/Perspex.Base.UnitTests/Perspex.Base.UnitTests.csproj
  75. 1
      tests/Perspex.Base.UnitTests/packages.config
  76. 8
      tests/Perspex.Controls.UnitTests/ContentControlTests.cs
  77. 9
      tests/Perspex.Controls.UnitTests/ControlTests.cs
  78. 6
      tests/Perspex.Controls.UnitTests/DropDownTests.cs
  79. 3
      tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj
  80. 16
      tests/Perspex.Controls.UnitTests/Primitives/PopupTests.cs
  81. 6
      tests/Perspex.Controls.UnitTests/TemplatedControlTests.cs
  82. 57
      tests/Perspex.Controls.UnitTests/TopLevelTests.cs
  83. 1
      tests/Perspex.Controls.UnitTests/packages.config
  84. 5
      tests/Perspex.Direct2D1.UnitTests/Controls/Shapes/PathTests.cs
  85. 5
      tests/Perspex.Direct2D1.UnitTests/Media/GeometryTests.cs
  86. 3
      tests/Perspex.Direct2D1.UnitTests/Perspex.Direct2D1.UnitTests.csproj
  87. 1
      tests/Perspex.Direct2D1.UnitTests/packages.config
  88. 3
      tests/Perspex.Input.UnitTests/Perspex.Input.UnitTests.csproj
  89. 1
      tests/Perspex.Input.UnitTests/packages.config
  90. 3
      tests/Perspex.Interactivity.UnitTests/Perspex.Interactivity.UnitTests.csproj
  91. 1
      tests/Perspex.Interactivity.UnitTests/packages.config
  92. 24
      tests/Perspex.Layout.UnitTests/FullLayoutTests.cs
  93. 3
      tests/Perspex.Layout.UnitTests/Perspex.Layout.UnitTests.csproj
  94. 1
      tests/Perspex.Layout.UnitTests/packages.config
  95. 3
      tests/Perspex.RenderTests/Perspex.Cairo.RenderTests.csproj
  96. 1
      tests/Perspex.RenderTests/packages.config
  97. 3
      tests/Perspex.SceneGraph.UnitTests/Perspex.SceneGraph.UnitTests.csproj
  98. 1
      tests/Perspex.SceneGraph.UnitTests/packages.config
  99. 3
      tests/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj
  100. 1
      tests/Perspex.Styling.UnitTests/packages.config

4
samples/TestApplication/App.config

@ -21,6 +21,10 @@
<assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.3.0" newVersion="2.6.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

3
samples/TestApplication/TestApplication.csproj

@ -66,9 +66,6 @@
<Reference Include="Serilog.FullNetFx, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\packages\Serilog.1.5.9\lib\net45\Serilog.FullNetFx.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="App.cs" />

15
samples/TestApplication/packages.config

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Rx-Core" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-Main" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-XAML" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Serilog" version="1.5.9" targetFramework="net45" userInstalled="true" />
<package id="Splat" version="1.6.2" targetFramework="net45" userInstalled="true" />
<package id="Rx-Core" version="2.2.5" targetFramework="net45" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" />
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
<package id="Rx-Main" version="2.2.5" targetFramework="net45" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" />
<package id="Rx-XAML" version="2.2.5" targetFramework="net45" />
<package id="Serilog" version="1.5.9" targetFramework="net45" />
</packages>

7
samples/XamlTestApplication/XamlTestApplication.csproj

@ -36,6 +36,10 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
@ -55,9 +59,6 @@
<Reference Include="Serilog.FullNetFx, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\packages\Serilog.1.5.9\lib\net45\Serilog.FullNetFx.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="Sprache, Version=2.0.0.47, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Sprache.2.0.0.47\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid1+MonoTouch1\Sprache.dll</HintPath>
</Reference>

2
samples/XamlTestApplication/packages.config

@ -7,6 +7,6 @@
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net46" />
<package id="Rx-XAML" version="2.2.5" targetFramework="net46" />
<package id="Serilog" version="1.5.9" targetFramework="net46" />
<package id="Splat" version="1.6.2" targetFramework="net46" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="Sprache" version="2.0.0.47" targetFramework="net451" />
</packages>

7
src/Gtk/Perspex.Cairo/CairoPlatform.cs

@ -6,7 +6,6 @@ using Perspex.Cairo.Media;
using Perspex.Cairo.Media.Imaging;
using Perspex.Media;
using Perspex.Platform;
using Splat;
namespace Perspex.Cairo
{
@ -19,11 +18,7 @@ namespace Perspex.Cairo
private static Pango.Context s_pangoContext = CreatePangoContext();
public static void Initialize()
{
var locator = Locator.CurrentMutable;
locator.Register(() => s_instance, typeof(IPlatformRenderInterface));
}
public static void Initialize() => PerspexLocator.CurrentMutable.Bind<IPlatformRenderInterface>().ToConstant(s_instance);
public IBitmapImpl CreateBitmap(int width, int height)
{

1
src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs

@ -7,7 +7,6 @@ using System.Linq;
using System.Text;
using Perspex.Media;
using Perspex.Platform;
using Splat;
namespace Perspex.Cairo.Media
{

1
src/Gtk/Perspex.Cairo/Media/StreamGeometryImpl.cs

@ -4,7 +4,6 @@
using System;
using Perspex.Media;
using Perspex.Platform;
using Splat;
using System.Collections.Generic;
namespace Perspex.Cairo.Media

3
src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj

@ -51,9 +51,6 @@
<HintPath>..\..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll</HintPath>
</Reference>
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="CairoPlatform.cs" />

7
src/Gtk/Perspex.Cairo/packages.config

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Rx-Core" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Splat" version="1.6.2" targetFramework="net45" userInstalled="true" />
</packages>
<package id="Rx-Core" version="2.2.5" targetFramework="net45" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" />
</packages>

20
src/Gtk/Perspex.Gtk/GtkPlatform.cs

@ -8,7 +8,6 @@ using Perspex.Input.Platform;
using Perspex.Input;
using Perspex.Platform;
using Perspex.Shared.PlatformSupport;
using Splat;
namespace Perspex.Gtk
{
@ -29,15 +28,16 @@ namespace Perspex.Gtk
public static void Initialize()
{
var locator = Locator.CurrentMutable;
locator.Register(() => new WindowImpl(), typeof(IWindowImpl));
locator.Register(() => new PopupImpl(), typeof(IPopupImpl));
locator.Register(() => new ClipboardImpl(), typeof(IClipboard));
locator.Register(() => CursorFactory.Instance, typeof(IStandardCursorFactory));
locator.Register(() => GtkKeyboardDevice.Instance, typeof(IKeyboardDevice));
locator.Register(() => s_instance, typeof(IPlatformSettings));
locator.Register(() => s_instance, typeof(IPlatformThreadingInterface));
locator.Register(() => new SystemDialogImpl(), typeof (ISystemDialogImpl));
PerspexLocator.CurrentMutable
.Bind<IWindowImpl>().ToTransient<WindowImpl>()
.Bind<IPopupImpl>().ToTransient<PopupImpl>()
.Bind<IClipboard>().ToSingleton<ClipboardImpl>()
.Bind<IStandardCursorFactory>().ToConstant(CursorFactory.Instance)
.Bind<IKeyboardDevice>().ToConstant(GtkKeyboardDevice.Instance)
.Bind<IMouseDevice>().ToConstant(GtkMouseDevice.Instance)
.Bind<IPlatformSettings>().ToConstant(s_instance)
.Bind<IPlatformThreadingInterface>().ToConstant(s_instance)
.Bind<ISystemDialogImpl>().ToSingleton<SystemDialogImpl>();
SharedPlatform.Register();
}

3
src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj

@ -44,9 +44,6 @@
<HintPath>..\..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll</HintPath>
</Reference>
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ClipboardImpl.cs" />

7
src/Gtk/Perspex.Gtk/packages.config

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Rx-Core" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" userInstalled="true" />
<package id="Splat" version="1.6.2" targetFramework="net45" userInstalled="true" />
<package id="Rx-Core" version="2.2.5" targetFramework="net45" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" />
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
</packages>

3
src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs

@ -20,7 +20,6 @@ using Perspex.Media.Imaging;
using Perspex.Metadata;
using Perspex.Platform;
using Perspex.Styling;
using Splat;
namespace Perspex.Markup.Xaml.Context
{
@ -52,7 +51,7 @@ namespace Perspex.Markup.Xaml.Context
foreach (var nsa in
forcedAssemblies
.Concat(Locator.Current.GetService<IPclPlatformWrapper>().GetLoadedAssemblies())
.Concat(PerspexLocator.Current.GetService<IPclPlatformWrapper>().GetLoadedAssemblies())
.Distinct()
.SelectMany(asm
=> asm.GetCustomAttributes<XmlnsDefinitionAttribute>().Select(attr => new {asm, attr}))

3
src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj

@ -291,9 +291,6 @@
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
<Reference Include="Sprache, Version=2.0.0.47, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\..\packages\Sprache.2.0.0.47\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid1+MonoTouch1\Sprache.dll</HintPath>
</Reference>

5
src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs

@ -8,7 +8,6 @@ using System.Reflection;
using OmniXaml;
using Perspex.Markup.Xaml.Context;
using Perspex.Platform;
using Splat;
namespace Perspex.Markup.Xaml
{
@ -57,7 +56,7 @@ namespace Perspex.Markup.Xaml
// HACK: Currently Visual Studio is forcing us to change the extension of xaml files
// in certain situations, so we try to load .xaml and if that's not found we try .paml.
// Ideally we'd be able to use .xaml everywhere
var assetLocator = Locator.Current.GetService<IAssetLoader>();
var assetLocator = PerspexLocator.Current.GetService<IAssetLoader>();
if (assetLocator == null)
{
throw new InvalidOperationException(
@ -86,7 +85,7 @@ namespace Perspex.Markup.Xaml
/// <returns>The loaded object.</returns>
public object Load(Uri uri, object rootInstance = null)
{
var assetLocator = Locator.Current.GetService<IAssetLoader>();
var assetLocator = PerspexLocator.Current.GetService<IAssetLoader>();
if (assetLocator == null)
{

1
src/Markup/Perspex.Markup.Xaml/packages.config

@ -6,6 +6,5 @@
<package id="Rx-Main" version="2.2.5" targetFramework="portable46-net451+win81" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable46-net451+win81" />
<package id="Serilog" version="1.5.9" targetFramework="portable46-net451+win81" />
<package id="Splat" version="1.6.2" targetFramework="portable46-net451+win81" />
<package id="Sprache" version="2.0.0.47" targetFramework="portable45-net45+win8" />
</packages>

22
src/Perspex.Application/Application.cs

@ -12,7 +12,6 @@ using Perspex.Layout;
using Perspex.Rendering;
using Perspex.Styling;
using Perspex.Threading;
using Splat;
namespace Perspex
{
@ -40,7 +39,7 @@ namespace Perspex
private DataTemplates _dataTemplates;
private readonly Lazy<IClipboard> _clipboard =
new Lazy<IClipboard>(() => (IClipboard)Locator.Current.GetService(typeof(IClipboard)));
new Lazy<IClipboard>(() => (IClipboard)PerspexLocator.Current.GetService(typeof(IClipboard)));
/// <summary>
/// The styler that will be used to apply styles to controls.
@ -157,15 +156,16 @@ namespace Perspex
FocusManager = new FocusManager();
InputManager = new InputManager();
Locator.CurrentMutable.Register(() => new AccessKeyHandler(), typeof(IAccessKeyHandler));
Locator.CurrentMutable.Register(() => this, typeof(IGlobalDataTemplates));
Locator.CurrentMutable.Register(() => this, typeof(IGlobalStyles));
Locator.CurrentMutable.Register(() => FocusManager, typeof(IFocusManager));
Locator.CurrentMutable.Register(() => InputManager, typeof(IInputManager));
Locator.CurrentMutable.Register(() => new KeyboardNavigationHandler(), typeof(IKeyboardNavigationHandler));
Locator.CurrentMutable.Register(() => _styler, typeof(IStyler));
Locator.CurrentMutable.Register(() => new LayoutManager(), typeof(ILayoutManager));
Locator.CurrentMutable.Register(() => new RenderManager(), typeof(IRenderManager));
PerspexLocator.CurrentMutable
.Bind<IAccessKeyHandler>().ToTransient<AccessKeyHandler>()
.Bind<IGlobalDataTemplates>().ToConstant(this)
.Bind<IGlobalStyles>().ToConstant(this)
.Bind<IFocusManager>().ToConstant(FocusManager)
.Bind<IInputManager>().ToConstant(InputManager)
.Bind<IKeyboardNavigationHandler>().ToTransient<KeyboardNavigationHandler>()
.Bind<IStyler>().ToConstant(_styler)
.Bind<ILayoutManager>().ToTransient<LayoutManager>()
.Bind<IRenderManager>().ToTransient<RenderManager>();
}
/// <summary>

3
src/Perspex.Application/Perspex.Application.csproj

@ -89,9 +89,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\packages\Rx-PlatformServices.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

1
src/Perspex.Application/packages.config

@ -5,5 +5,4 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

4
src/Perspex.Base/Perspex.Base.csproj

@ -46,6 +46,7 @@
<Compile Include="Diagnostics\PerspexObjectExtensions.cs" />
<Compile Include="IObservablePropertyBag.cs" />
<Compile Include="IPropertyBag.cs" />
<Compile Include="PerspexLocator.cs" />
<Compile Include="Metadata\XmlnsDefinitionAttribute.cs" />
<Compile Include="PerspexObjectExtensions.cs" />
<Compile Include="PerspexProperty`1.cs" />
@ -93,9 +94,6 @@
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

120
src/Perspex.Base/PerspexLocator.cs

@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.Reactive.Disposables;
#pragma warning disable CS1591 // Enable me later
namespace Perspex
{
public class PerspexLocator : IPerspexDependencyResolver
{
private readonly IPerspexDependencyResolver _parentScope;
public static IPerspexDependencyResolver Current { get; set; }
public static PerspexLocator CurrentMutable { get; set; }
private readonly Dictionary<Type, Func<object>> _registry = new Dictionary<Type, Func<object>>();
static PerspexLocator()
{
Current = CurrentMutable = new PerspexLocator();
}
public PerspexLocator()
{
}
public PerspexLocator(IPerspexDependencyResolver parentScope)
{
_parentScope = parentScope;
}
public object GetService(Type t)
{
Func<object> rv;
return _registry.TryGetValue(t, out rv) ? rv() : _parentScope?.GetService(t);
}
public class RegistrationHelper<TService>
{
private PerspexLocator _locator;
public RegistrationHelper(PerspexLocator locator)
{
_locator = locator;
}
public PerspexLocator ToConstant<TImpl>(TImpl constant) where TImpl : TService
{
_locator._registry[typeof (TService)] = () => constant;
return _locator;
}
public PerspexLocator ToFunc<TImlp>(Func<TImlp> func) where TImlp : TService
{
_locator._registry[typeof (TService)] = () => func();
return _locator;
}
public PerspexLocator ToSingleton<TImpl>() where TImpl : class, TService, new()
{
TImpl instance = null;
return ToFunc(() => instance ?? (instance = new TImpl()));
}
public PerspexLocator ToTransient<TImpl>() where TImpl : class, TService, new() => ToFunc(() => new TImpl());
}
public RegistrationHelper<T> Bind<T>() => new RegistrationHelper<T>(this);
public PerspexLocator BindToSelf<T>(T constant)
=> Bind<T>().ToConstant(constant);
public PerspexLocator BindToSelfSingleton<T>() where T : class, new() => Bind<T>().ToSingleton<T>();
class ResolverDisposable : IDisposable
{
private readonly IPerspexDependencyResolver _resolver;
private readonly PerspexLocator _mutable;
public ResolverDisposable(IPerspexDependencyResolver resolver, PerspexLocator mutable)
{
_resolver = resolver;
_mutable = mutable;
}
public void Dispose()
{
Current = _resolver;
CurrentMutable = _mutable;
}
}
public static IDisposable EnterScope()
{
return Disposable.Empty;
//Switch to that code when we are ready to fix tests
/*
var d = new ResolverDisposable(Current, CurrentMutable);
Current = CurrentMutable = new PerspexLocator(Current);
return d;
*/
}
}
public interface IPerspexDependencyResolver
{
object GetService(Type t);
}
public static class LocatorExtensions
{
public static T GetService<T>(this IPerspexDependencyResolver resolver)
{
return (T) resolver.GetService(typeof (T));
}
}
}

5
src/Perspex.Base/Threading/DispatcherTimer.cs

@ -4,7 +4,6 @@
using System;
using System.Reactive.Disposables;
using Perspex.Platform;
using Splat;
namespace Perspex.Threading
{
@ -175,7 +174,7 @@ namespace Perspex.Threading
{
if (!IsEnabled)
{
IPlatformThreadingInterface threading = Locator.Current.GetService<IPlatformThreadingInterface>();
IPlatformThreadingInterface threading = PerspexLocator.Current.GetService<IPlatformThreadingInterface>();
_timer = threading.StartTimer(Interval, InternalTick);
}
}
@ -187,7 +186,7 @@ namespace Perspex.Threading
{
if (IsEnabled)
{
IPlatformThreadingInterface threading = Locator.Current.GetService<IPlatformThreadingInterface>();
IPlatformThreadingInterface threading = PerspexLocator.Current.GetService<IPlatformThreadingInterface>();
_timer.Dispose();
_timer = null;
}

3
src/Perspex.Base/Threading/MainLoop.cs

@ -7,7 +7,6 @@ using System.Threading;
using System.Threading.Tasks;
using Perspex.Platform;
using Perspex.Threading;
using Splat;
namespace Perspex.Win32.Threading
{
@ -25,7 +24,7 @@ namespace Perspex.Win32.Threading
/// </summary>
static MainLoop()
{
s_platform = Locator.Current.GetService<IPlatformThreadingInterface>();
s_platform = PerspexLocator.Current.GetService<IPlatformThreadingInterface>();
}
/// <summary>

1
src/Perspex.Base/packages.config

@ -6,5 +6,4 @@
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Serilog" version="1.5.9" targetFramework="portable45-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.Controls/Control.cs

@ -12,7 +12,6 @@ using Perspex.Interactivity;
using Perspex.LogicalTree;
using Perspex.Rendering;
using Perspex.Styling;
using Splat;
namespace Perspex.Controls
{
@ -397,7 +396,7 @@ namespace Perspex.Controls
{
base.OnAttachedToVisualTree(root);
IStyler styler = Locator.Current.GetService<IStyler>();
IStyler styler = PerspexLocator.Current.GetService<IStyler>();
styler.ApplyStyles(this);
}

18
src/Perspex.Controls/MenuItem.cs

@ -14,7 +14,6 @@ using Perspex.Input;
using Perspex.Interactivity;
using Perspex.Threading;
using Perspex.VisualTree;
using Splat;
namespace Perspex.Controls
{
@ -489,7 +488,7 @@ namespace Perspex.Controls
/// <summary>
/// A dependency resolver which returns a <see cref="MenuItemAccessKeyHandler"/>.
/// </summary>
private class DependencyResolver : IDependencyResolver
private class DependencyResolver : IPerspexDependencyResolver
{
/// <summary>
/// Gets the default instance of <see cref="DependencyResolver"/>.
@ -509,7 +508,7 @@ namespace Perspex.Controls
/// <param name="serviceType">The service type.</param>
/// <param name="contract">An optional contract.</param>
/// <returns>A service of the requested type.</returns>
public object GetService(Type serviceType, string contract = null)
public object GetService(Type serviceType)
{
if (serviceType == typeof(IAccessKeyHandler))
{
@ -517,20 +516,9 @@ namespace Perspex.Controls
}
else
{
return Locator.Current.GetService(serviceType, contract);
return PerspexLocator.Current.GetService(serviceType);
}
}
/// <summary>
/// Gets collection of services of the specified type.
/// </summary>
/// <param name="serviceType">The service type.</param>
/// <param name="contract">An optional contract.</param>
/// <returns>A collection of services of the requested type.</returns>
public IEnumerable<object> GetServices(Type serviceType, string contract = null)
{
return Locator.Current.GetServices(serviceType, contract);
}
}
}
}

3
src/Perspex.Controls/Perspex.Controls.csproj

@ -187,9 +187,6 @@
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

3
src/Perspex.Controls/Primitives/Popup.cs

@ -5,7 +5,6 @@ using System;
using Perspex.Interactivity;
using Perspex.Rendering;
using Perspex.VisualTree;
using Splat;
namespace Perspex.Controls.Primitives
{
@ -94,7 +93,7 @@ namespace Perspex.Controls.Primitives
/// This property allows a client to customize the behaviour of the popup by injecting
/// a specialized dependency resolver into the <see cref="PopupRoot"/>'s constructor.
/// </remarks>
public IDependencyResolver DependencyResolver
public IPerspexDependencyResolver DependencyResolver
{
get;
set;

5
src/Perspex.Controls/Primitives/PopupRoot.cs

@ -8,7 +8,6 @@ using Perspex.Interactivity;
using Perspex.Media;
using Perspex.Platform;
using Perspex.VisualTree;
using Splat;
namespace Perspex.Controls.Primitives
{
@ -41,8 +40,8 @@ namespace Perspex.Controls.Primitives
/// <param name="dependencyResolver">
/// The dependency resolver to use. If null the default dependency resolver will be used.
/// </param>
public PopupRoot(IDependencyResolver dependencyResolver)
: base(Locator.Current.GetService<IPopupImpl>(), dependencyResolver)
public PopupRoot(IPerspexDependencyResolver dependencyResolver)
: base(PerspexLocator.Current.GetService<IPopupImpl>(), dependencyResolver)
{
GetObservable(ParentProperty).Subscribe(x => InheritanceParent = (PerspexObject)x);
}

5
src/Perspex.Controls/SystemDialog.cs

@ -2,7 +2,6 @@
using System.Linq;
using System.Threading.Tasks;
using Perspex.Controls.Platform;
using Splat;
namespace Perspex.Controls
{
@ -20,7 +19,7 @@ namespace Perspex.Controls
public async Task<string> ShowAsync(Window window = null)
=>
((await Locator.Current.GetService<ISystemDialogImpl>().ShowFileDialogAsync(this, window?.PlatformImpl)) ??
((await PerspexLocator.Current.GetService<ISystemDialogImpl>().ShowFileDialogAsync(this, window?.PlatformImpl)) ??
new string[0]).FirstOrDefault();
}
@ -29,7 +28,7 @@ namespace Perspex.Controls
public bool AllowMultiple { get; set; }
public Task<string[]> ShowAsync(Window window = null)
=> Locator.Current.GetService<ISystemDialogImpl>().ShowFileDialogAsync(this, window?.PlatformImpl);
=> PerspexLocator.Current.GetService<ISystemDialogImpl>().ShowFileDialogAsync(this, window?.PlatformImpl);
}
public abstract class SystemDialog

3
src/Perspex.Controls/Templates/DataTemplateExtensions.cs

@ -3,7 +3,6 @@
using System.Linq;
using Perspex.LogicalTree;
using Splat;
namespace Perspex.Controls.Templates
{
@ -63,7 +62,7 @@ namespace Perspex.Controls.Templates
}
}
IGlobalDataTemplates global = Locator.Current.GetService<IGlobalDataTemplates>();
IGlobalDataTemplates global = PerspexLocator.Current.GetService<IGlobalDataTemplates>();
if (global != null)
{

5
src/Perspex.Controls/TextBox.cs

@ -2,7 +2,6 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Perspex.Input.Platform;
using Splat;
using System;
using System.Collections.Generic;
using System.Linq;
@ -150,13 +149,13 @@ namespace Perspex.Controls
private async void Copy()
{
await ((IClipboard)Locator.Current.GetService(typeof(IClipboard)))
await ((IClipboard)PerspexLocator.Current.GetService(typeof(IClipboard)))
.SetTextAsync(GetSelection());
}
private async void Paste()
{
var text = await ((IClipboard)Locator.Current.GetService(typeof(IClipboard))).GetTextAsync();
var text = await ((IClipboard)PerspexLocator.Current.GetService(typeof(IClipboard))).GetTextAsync();
if (text == null)
{
return;

11
src/Perspex.Controls/TopLevel.cs

@ -12,7 +12,6 @@ using Perspex.Platform;
using Perspex.Rendering;
using Perspex.Styling;
using Perspex.Threading;
using Splat;
namespace Perspex.Controls
{
@ -87,7 +86,7 @@ namespace Perspex.Controls
/// </summary>
/// <param name="impl">The platform-specific window implementation.</param>
public TopLevel(ITopLevelImpl impl)
: this(impl, Locator.Current)
: this(impl, PerspexLocator.Current)
{
}
@ -98,7 +97,7 @@ namespace Perspex.Controls
/// <param name="dependencyResolver">
/// The dependency resolver to use. If null the default dependency resolver will be used.
/// </param>
public TopLevel(ITopLevelImpl impl, IDependencyResolver dependencyResolver)
public TopLevel(ITopLevelImpl impl, IPerspexDependencyResolver dependencyResolver)
{
if (impl == null)
{
@ -108,7 +107,7 @@ namespace Perspex.Controls
PlatformImpl = impl;
dependencyResolver = dependencyResolver ?? Locator.Current;
dependencyResolver = dependencyResolver ?? PerspexLocator.Current;
var renderInterface = TryGetService<IPlatformRenderInterface>(dependencyResolver);
var styler = TryGetService<IStyler>(dependencyResolver);
_accessKeyHandler = TryGetService<IAccessKeyHandler>(dependencyResolver);
@ -327,13 +326,13 @@ namespace Perspex.Controls
}
/// <summary>
/// Tries to get a service from an <see cref="IDependencyResolver"/>, throwing an
/// Tries to get a service from an <see cref="IPerspexDependencyResolver"/>, throwing an
/// exception if not found.
/// </summary>
/// <typeparam name="T">The service type.</typeparam>
/// <param name="resolver">The resolver.</param>
/// <returns>The service.</returns>
private static T TryGetService<T>(IDependencyResolver resolver) where T : class
private static T TryGetService<T>(IPerspexDependencyResolver resolver) where T : class
{
var result = resolver.GetService<T>();

3
src/Perspex.Controls/Window.cs

@ -8,7 +8,6 @@ using Perspex.Input;
using Perspex.Media;
using Perspex.Platform;
using Perspex.Styling;
using Splat;
namespace Perspex.Controls
{
@ -72,7 +71,7 @@ namespace Perspex.Controls
/// Initializes a new instance of the <see cref="Window"/> class.
/// </summary>
public Window()
: base(Locator.Current.GetService<IWindowImpl>())
: base(PerspexLocator.Current.GetService<IWindowImpl>())
{
_maxPlatformClientSize = this.PlatformImpl.MaxClientSize;
}

1
src/Perspex.Controls/packages.config

@ -6,5 +6,4 @@
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Serilog" version="1.5.9" targetFramework="portable45-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.HtmlRenderer/Adapters/PerspexAdapter.cs

@ -9,7 +9,6 @@ using Perspex;
using Perspex.Input.Platform;
using Perspex.Media;
using Perspex.Media.Imaging;
using Splat;
using TheArtOfDev.HtmlRenderer.Adapters;
using TheArtOfDev.HtmlRenderer.Adapters.Entities;
using TheArtOfDev.HtmlRenderer.Perspex.Utilities;
@ -118,7 +117,7 @@ namespace TheArtOfDev.HtmlRenderer.Perspex.Adapters
protected override void SetToClipboardInt(string text)
{
Locator.Current.GetService<IClipboard>().SetTextAsync(text);
PerspexLocator.Current.GetService<IClipboard>().SetTextAsync(text);
}
protected override void SetToClipboardInt(RImage image)

3
src/Perspex.HtmlRenderer/Perspex.HtmlRenderer.csproj

@ -172,9 +172,6 @@
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Reference Include="Splat">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Core, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\packages\Rx-Core.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.Core.dll</HintPath>
</Reference>

1
src/Perspex.HtmlRenderer/packages.config

@ -4,5 +4,4 @@
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="portable45-net45+win8" />
<package id="Rx-Core" version="2.2.5" targetFramework="portable45-net45+win8" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="portable45-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.Input/Cursors.cs

@ -1,7 +1,6 @@
// Copyright (c) The Perspex Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Splat;
using System;
using System.Collections.Generic;
using System.Linq;
@ -50,7 +49,7 @@ namespace Perspex.Input
public Cursor(StandardCursorType cursorType)
: this(
((IStandardCursorFactory)Locator.Current.GetService(typeof(IStandardCursorFactory))).GetCursor(
((IStandardCursorFactory)PerspexLocator.Current.GetService(typeof(IStandardCursorFactory))).GetCursor(
cursorType))
{
}

3
src/Perspex.Input/FocusManager.cs

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Linq;
using Perspex.Interactivity;
using Perspex.VisualTree;
using Splat;
namespace Perspex.Input
{
@ -35,7 +34,7 @@ namespace Perspex.Input
/// <summary>
/// Gets the instance of the <see cref="IFocusManager"/>.
/// </summary>
public static IFocusManager Instance => Locator.Current.GetService<IFocusManager>();
public static IFocusManager Instance => PerspexLocator.Current.GetService<IFocusManager>();
/// <summary>
/// Gets the currently focused <see cref="IInputElement"/>.

3
src/Perspex.Input/InputManager.cs

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Reactive.Subjects;
using Perspex.Input.Raw;
using Splat;
namespace Perspex.Input
{
@ -16,7 +15,7 @@ namespace Perspex.Input
private readonly Subject<RawInputEventArgs> _postProcess = new Subject<RawInputEventArgs>();
public static IInputManager Instance => Locator.Current.GetService<IInputManager>();
public static IInputManager Instance => PerspexLocator.Current.GetService<IInputManager>();
public IObservable<RawInputEventArgs> RawEventReceived => _rawEventReceived;

7
src/Perspex.Input/KeyboardDevice.cs

@ -8,7 +8,6 @@ using System.Reactive.Linq;
using System.Runtime.CompilerServices;
using Perspex.Input.Raw;
using Perspex.Interactivity;
using Splat;
namespace Perspex.Input
{
@ -26,11 +25,11 @@ namespace Perspex.Input
public event PropertyChangedEventHandler PropertyChanged;
public static IKeyboardDevice Instance => Locator.Current.GetService<IKeyboardDevice>();
public static IKeyboardDevice Instance => PerspexLocator.Current.GetService<IKeyboardDevice>();
public IInputManager InputManager => Locator.Current.GetService<IInputManager>();
public IInputManager InputManager => PerspexLocator.Current.GetService<IInputManager>();
public IFocusManager FocusManager => Locator.Current.GetService<IFocusManager>();
public IFocusManager FocusManager => PerspexLocator.Current.GetService<IFocusManager>();
public IInputElement FocusedElement
{

7
src/Perspex.Input/MouseDevice.cs

@ -9,7 +9,6 @@ using Perspex.Input.Raw;
using Perspex.Interactivity;
using Perspex.Platform;
using Perspex.VisualTree;
using Splat;
namespace Perspex.Input
{
@ -31,7 +30,7 @@ namespace Perspex.Input
.Subscribe(ProcessRawEvent);
}
public static IMouseDevice Instance => Locator.Current.GetService<IMouseDevice>();
public static IMouseDevice Instance => PerspexLocator.Current.GetService<IMouseDevice>();
public IInputElement Captured
{
@ -39,7 +38,7 @@ namespace Perspex.Input
protected set;
}
public IInputManager InputManager => Locator.Current.GetService<IInputManager>();
public IInputManager InputManager => PerspexLocator.Current.GetService<IInputManager>();
public Point Position
{
@ -107,7 +106,7 @@ namespace Perspex.Input
if (source != null)
{
var settings = Locator.Current.GetService<IPlatformSettings>();
var settings = PerspexLocator.Current.GetService<IPlatformSettings>();
var doubleClickTime = settings.DoubleClickTime.TotalMilliseconds;
if (!_lastClickRect.Contains(p) || timestamp - _lastClickTime > doubleClickTime)

3
src/Perspex.Input/Perspex.Input.csproj

@ -126,9 +126,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\packages\Rx-PlatformServices.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

1
src/Perspex.Input/packages.config

@ -5,5 +5,4 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.Interactivity/Perspex.Interactivity.csproj

@ -81,9 +81,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\packages\Rx-PlatformServices.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

1
src/Perspex.Interactivity/packages.config

@ -5,5 +5,4 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.Layout/Perspex.Layout.csproj

@ -80,9 +80,6 @@
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

1
src/Perspex.Layout/packages.config

@ -6,5 +6,4 @@
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Serilog" version="1.5.9" targetFramework="portable45-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.SceneGraph/Media/EllipseGeometry.cs

@ -3,7 +3,6 @@
using System;
using Perspex.Platform;
using Splat;
namespace Perspex.Media
{
@ -18,7 +17,7 @@ namespace Perspex.Media
/// <param name="rect">The rectangle that the ellipse should fill.</param>
public EllipseGeometry(Rect rect)
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
IStreamGeometryImpl impl = factory.CreateStreamGeometry();
using (IStreamGeometryContextImpl ctx = impl.Open())

3
src/Perspex.SceneGraph/Media/FormattedText.cs

@ -4,7 +4,6 @@
using System;
using System.Collections.Generic;
using Perspex.Platform;
using Splat;
namespace Perspex.Media
{
@ -37,7 +36,7 @@ namespace Perspex.Media
FontWeight = fontWeight;
TextAlignment = textAlignment;
var platform = Locator.Current.GetService<IPlatformRenderInterface>();
var platform = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
PlatformImpl = platform.CreateFormattedText(
text,

7
src/Perspex.SceneGraph/Media/Imaging/Bitmap.cs

@ -3,7 +3,6 @@
using System.IO;
using Perspex.Platform;
using Splat;
namespace Perspex.Media.Imaging
{
@ -18,7 +17,7 @@ namespace Perspex.Media.Imaging
/// <param name="fileName">The filename of the bitmap.</param>
public Bitmap(string fileName)
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
PlatformImpl = factory.LoadBitmap(fileName);
}
@ -28,7 +27,7 @@ namespace Perspex.Media.Imaging
/// <param name="stream">The stream to read the bitmap from.</param>
public Bitmap(Stream stream)
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
PlatformImpl = factory.LoadBitmap(stream);
}
@ -39,7 +38,7 @@ namespace Perspex.Media.Imaging
/// <param name="height">The height of the bitmap, in pixels.</param>
public Bitmap(int width, int height)
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
PlatformImpl = factory.CreateBitmap(width, height);
}

3
src/Perspex.SceneGraph/Media/Imaging/RenderTargetBitmap.cs

@ -3,7 +3,6 @@
using System;
using Perspex.Platform;
using Splat;
namespace Perspex.Media.Imaging
{
@ -55,7 +54,7 @@ namespace Perspex.Media.Imaging
/// <returns>The platform-specific implementation.</returns>
private static IBitmapImpl CreateImpl(int width, int height)
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
return factory.CreateRenderTargetBitmap(width, height);
}
}

3
src/Perspex.SceneGraph/Media/RectangleGeometry.cs

@ -2,7 +2,6 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Perspex.Platform;
using Splat;
namespace Perspex.Media
{
@ -17,7 +16,7 @@ namespace Perspex.Media
/// <param name="rect">The rectangle bounds.</param>
public RectangleGeometry(Rect rect)
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
IStreamGeometryImpl impl = factory.CreateStreamGeometry();
using (IStreamGeometryContextImpl context = impl.Open())

3
src/Perspex.SceneGraph/Media/StreamGeometry.cs

@ -2,7 +2,6 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Perspex.Platform;
using Splat;
namespace Perspex.Media
{
@ -16,7 +15,7 @@ namespace Perspex.Media
/// </summary>
public StreamGeometry()
{
IPlatformRenderInterface factory = Locator.Current.GetService<IPlatformRenderInterface>();
IPlatformRenderInterface factory = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
PlatformImpl = factory.CreateStreamGeometry();
}

3
src/Perspex.SceneGraph/Perspex.SceneGraph.csproj

@ -143,9 +143,6 @@
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10">
<HintPath>..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

1
src/Perspex.SceneGraph/packages.config

@ -6,5 +6,4 @@
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Serilog" version="1.5.9" targetFramework="portable45-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

3
src/Perspex.Styling/Perspex.Styling.csproj

@ -77,9 +77,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\packages\Rx-PlatformServices.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

3
src/Perspex.Styling/Styling/Styler.cs

@ -4,7 +4,6 @@
using System;
using System.Linq;
using Perspex.VisualTree;
using Splat;
namespace Perspex.Styling
{
@ -17,7 +16,7 @@ namespace Perspex.Styling
.GetSelfAndVisualAncestors()
.OfType<IStyleHost>()
.FirstOrDefault();
IGlobalStyles global = Locator.Current.GetService<IGlobalStyles>();
IGlobalStyles global = PerspexLocator.Current.GetService<IGlobalStyles>();
if (global != null)
{

3
src/Perspex.Themes.Default/Perspex.Themes.Default.csproj

@ -118,9 +118,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\packages\Rx-PlatformServices.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

1
src/Perspex.Themes.Default/packages.config

@ -5,5 +5,4 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-Main" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="portable-net45+win8" />
<package id="Splat" version="1.6.2" targetFramework="portable45-net45+win8" />
</packages>

7
src/Shared/PlatformSupport/SharedPlatform.cs

@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Text;
using Perspex.Platform;
using Splat;
namespace Perspex.Shared.PlatformSupport
{
@ -10,9 +9,9 @@ namespace Perspex.Shared.PlatformSupport
{
public static void Register()
{
var locator = Locator.CurrentMutable;
locator.Register(() => new PclPlatformWrapper(), typeof(IPclPlatformWrapper));
locator.RegisterConstant(new AssetLoader(), typeof(IAssetLoader));
PerspexLocator.CurrentMutable
.Bind<IPclPlatformWrapper>().ToSingleton<PclPlatformWrapper>()
.Bind<IAssetLoader>().ToSingleton<AssetLoader>();
}
}
}

14
src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs

@ -6,7 +6,6 @@ using System.IO;
using Perspex.Direct2D1.Media;
using Perspex.Media;
using Perspex.Platform;
using Splat;
namespace Perspex.Direct2D1
{
@ -20,14 +19,11 @@ namespace Perspex.Direct2D1
private static readonly SharpDX.WIC.ImagingFactory s_imagingFactory = new SharpDX.WIC.ImagingFactory();
public static void Initialize()
{
var locator = Locator.CurrentMutable;
locator.Register(() => s_instance, typeof(IPlatformRenderInterface));
locator.Register(() => s_d2D1Factory, typeof(SharpDX.Direct2D1.Factory));
locator.Register(() => s_dwfactory, typeof(SharpDX.DirectWrite.Factory));
locator.Register(() => s_imagingFactory, typeof(SharpDX.WIC.ImagingFactory));
}
public static void Initialize() => PerspexLocator.CurrentMutable
.Bind<IPlatformRenderInterface>().ToConstant(s_instance)
.BindToSelf(s_d2D1Factory)
.BindToSelf(s_dwfactory)
.BindToSelf(s_imagingFactory);
public IBitmapImpl CreateBitmap(int width, int height)
{

3
src/Windows/Perspex.Direct2D1/Media/FormattedTextImpl.cs

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Linq;
using Perspex.Media;
using Perspex.Platform;
using Splat;
using DWrite = SharpDX.DirectWrite;
namespace Perspex.Direct2D1.Media
@ -21,7 +20,7 @@ namespace Perspex.Direct2D1.Media
TextAlignment textAlignment,
FontWeight fontWeight)
{
var factory = Locator.Current.GetService<DWrite.Factory>();
var factory = PerspexLocator.Current.GetService<DWrite.Factory>();
var format = new DWrite.TextFormat(
factory,

3
src/Windows/Perspex.Direct2D1/Media/GeometryImpl.cs

@ -3,7 +3,6 @@
using Perspex.Platform;
using SharpDX.Direct2D1;
using Splat;
namespace Perspex.Direct2D1.Media
{
@ -59,7 +58,7 @@ namespace Perspex.Direct2D1.Media
if (!value.IsIdentity)
{
Factory factory = Locator.Current.GetService<Factory>();
Factory factory = PerspexLocator.Current.GetService<Factory>();
_transformed = new TransformedGeometry(
factory,
DefiningGeometry,

5
src/Windows/Perspex.Direct2D1/Media/StreamGeometryImpl.cs

@ -4,7 +4,6 @@
using Perspex.Media;
using Perspex.Platform;
using SharpDX.Direct2D1;
using Splat;
using D2DGeometry = SharpDX.Direct2D1.Geometry;
namespace Perspex.Direct2D1.Media
@ -21,7 +20,7 @@ namespace Perspex.Direct2D1.Media
/// </summary>
public StreamGeometryImpl()
{
Factory factory = Locator.Current.GetService<Factory>();
Factory factory = PerspexLocator.Current.GetService<Factory>();
_path = new PathGeometry(factory);
}
@ -46,7 +45,7 @@ namespace Perspex.Direct2D1.Media
/// <returns>A cloned geometry.</returns>
public IStreamGeometryImpl Clone()
{
Factory factory = Locator.Current.GetService<Factory>();
Factory factory = PerspexLocator.Current.GetService<Factory>();
var result = new PathGeometry(factory);
var sink = result.Open();
_path.Stream(sink);

3
src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj

@ -64,9 +64,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Shared\SharedAssemblyInfo.cs">

9
src/Windows/Perspex.Direct2D1/Renderer.cs

@ -8,7 +8,6 @@ using Perspex.Platform;
using Perspex.Rendering;
using SharpDX;
using SharpDX.Direct2D1;
using Splat;
using DwFactory = SharpDX.DirectWrite.Factory;
namespace Perspex.Direct2D1
@ -28,8 +27,8 @@ namespace Perspex.Direct2D1
/// <param name="height">The height of the window.</param>
public Renderer(IntPtr hwnd, double width, double height)
{
Direct2DFactory = Locator.Current.GetService<Factory>();
DirectWriteFactory = Locator.Current.GetService<DwFactory>();
Direct2DFactory = PerspexLocator.Current.GetService<Factory>();
DirectWriteFactory = PerspexLocator.Current.GetService<DwFactory>();
RenderTargetProperties renderTargetProperties = new RenderTargetProperties
{
@ -54,8 +53,8 @@ namespace Perspex.Direct2D1
/// <param name="renderTarget">The render target.</param>
public Renderer(RenderTarget renderTarget)
{
Direct2DFactory = Locator.Current.GetService<Factory>();
DirectWriteFactory = Locator.Current.GetService<DwFactory>();
Direct2DFactory = PerspexLocator.Current.GetService<Factory>();
DirectWriteFactory = PerspexLocator.Current.GetService<DwFactory>();
_renderTarget = renderTarget;
}

1
src/Windows/Perspex.Direct2D1/packages.config

@ -6,5 +6,4 @@
<package id="SharpDX" version="2.6.3" targetFramework="net45" />
<package id="SharpDX.Direct2D1" version="2.6.3" targetFramework="net45" />
<package id="SharpDX.DXGI" version="2.6.3" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
</packages>

3
src/Windows/Perspex.Win32/Perspex.Win32.csproj

@ -58,9 +58,6 @@
<Reference Include="System.Reactive.PlatformServices">
<HintPath>..\..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Shared\SharedAssemblyInfo.cs">

26
src/Windows/Perspex.Win32/Win32Platform.cs

@ -14,7 +14,6 @@ using Perspex.Platform;
using Perspex.Shared.PlatformSupport;
using Perspex.Win32.Input;
using Perspex.Win32.Interop;
using Splat;
namespace Perspex.Win32
{
@ -41,29 +40,28 @@ namespace Perspex.Win32
private static void InitializeInternal()
{
var locator = Locator.CurrentMutable;
locator.Register(() => new SystemDialogImpl(), typeof (ISystemDialogImpl));
locator.Register(() => new PopupImpl(), typeof(IPopupImpl));
locator.Register(() => new ClipboardImpl(), typeof(IClipboard));
locator.Register(() => WindowsKeyboardDevice.Instance, typeof(IKeyboardDevice));
locator.Register(() => WindowsMouseDevice.Instance, typeof(IMouseDevice));
locator.Register(() => CursorFactory.Instance, typeof(IStandardCursorFactory));
locator.Register(() => s_instance, typeof(IPlatformSettings));
locator.Register(() => s_instance, typeof(IPlatformThreadingInterface));
PerspexLocator.CurrentMutable
.Bind<IPopupImpl>().ToTransient<PopupImpl>()
.Bind<IClipboard>().ToSingleton<ClipboardImpl>()
.Bind<IStandardCursorFactory>().ToConstant(CursorFactory.Instance)
.Bind<IKeyboardDevice>().ToConstant(WindowsKeyboardDevice.Instance)
.Bind<IMouseDevice>().ToConstant(WindowsMouseDevice.Instance)
.Bind<IPlatformSettings>().ToConstant(s_instance)
.Bind<IPlatformThreadingInterface>().ToConstant(s_instance)
.Bind<ISystemDialogImpl>().ToSingleton<SystemDialogImpl>();
SharedPlatform.Register();
}
public static void Initialize()
{
var locator = Locator.CurrentMutable;
locator.Register(() => new WindowImpl(), typeof(IWindowImpl));
PerspexLocator.CurrentMutable.Bind<IWindowImpl>().ToTransient<WindowImpl>();
InitializeInternal();
}
public static void InitializeEmbedded()
{
var locator = Locator.CurrentMutable;
locator.Register(() => new EmbeddedWindowImpl(), typeof(IWindowImpl));
PerspexLocator.CurrentMutable.Bind<IWindowImpl>().ToTransient<EmbeddedWindowImpl>();
InitializeInternal();
}

1
src/Windows/Perspex.Win32/packages.config

@ -5,5 +5,4 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
<package id="Rx-Main" version="2.2.5" targetFramework="net45" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
</packages>

3
tests/Perspex.Base.UnitTests/Perspex.Base.UnitTests.csproj

@ -47,9 +47,6 @@
<Reference Include="xunit.core">
<HintPath>..\..\packages\xunit.extensibility.core.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Core">
<HintPath>..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll</HintPath>
</Reference>

1
tests/Perspex.Base.UnitTests/packages.config

@ -3,7 +3,6 @@
<package id="Rx-Core" version="2.2.5" targetFramework="net45" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net45" />
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

8
tests/Perspex.Controls.UnitTests/ContentControlTests.cs

@ -13,7 +13,6 @@ using Perspex.Styling;
using Perspex.VisualTree;
using Ploeh.AutoFixture;
using Ploeh.AutoFixture.AutoMoq;
using Splat;
using Xunit;
namespace Perspex.Controls.UnitTests
@ -49,7 +48,7 @@ namespace Perspex.Controls.UnitTests
var target = new ContentControl();
var styler = new Mock<IStyler>();
Locator.CurrentMutable.Register(() => styler.Object, typeof(IStyler));
PerspexLocator.CurrentMutable.Bind<IStyler>().ToConstant(styler.Object);
target.Content = "Foo";
target.Template = GetTemplate();
root.Child = target;
@ -281,10 +280,11 @@ namespace Perspex.Controls.UnitTests
private IDisposable RegisterServices()
{
var result = Locator.CurrentMutable.WithResolver();
var result = PerspexLocator.EnterScope();
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var renderInterface = fixture.Create<IPlatformRenderInterface>();
Locator.CurrentMutable.RegisterConstant(renderInterface, typeof(IPlatformRenderInterface));
PerspexLocator.CurrentMutable
.Bind<IPlatformRenderInterface>().ToConstant(renderInterface);
return result;
}
}

9
tests/Perspex.Controls.UnitTests/ControlTests.cs

@ -7,7 +7,6 @@ using Perspex.Layout;
using Perspex.Platform;
using Perspex.Rendering;
using Perspex.Styling;
using Splat;
using Xunit;
namespace Perspex.Controls.UnitTests
@ -25,13 +24,13 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Adding_Control_To_IRenderRoot_Should_Style_Control()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
var root = new TestRoot();
var target = new Control();
var styler = new Mock<IStyler>();
Locator.CurrentMutable.Register(() => styler.Object, typeof(IStyler));
PerspexLocator.CurrentMutable.Bind<IStyler>().ToConstant(styler.Object);
root.Child = target;
@ -42,7 +41,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Adding_Tree_To_ILayoutRoot_Should_Style_Controls()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
var root = new TestRoot();
var parent = new Border();
@ -50,7 +49,7 @@ namespace Perspex.Controls.UnitTests
var grandchild = new Control();
var styler = new Mock<IStyler>();
Locator.CurrentMutable.Register(() => styler.Object, typeof(IStyler));
PerspexLocator.CurrentMutable.Bind<IStyler>().ToConstant(styler.Object);
parent.Child = child;
child.Child = grandchild;

6
tests/Perspex.Controls.UnitTests/DropDownTests.cs

@ -9,7 +9,6 @@ using Perspex.Controls.Templates;
using Perspex.Platform;
using Ploeh.AutoFixture;
using Ploeh.AutoFixture.AutoMoq;
using Splat;
using Xunit;
namespace Perspex.Controls.UnitTests
@ -58,10 +57,11 @@ namespace Perspex.Controls.UnitTests
private IDisposable RegisterServices()
{
var result = Locator.CurrentMutable.WithResolver();
var result = PerspexLocator.EnterScope();
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var renderInterface = fixture.Create<IPlatformRenderInterface>();
Locator.CurrentMutable.RegisterConstant(renderInterface, typeof(IPlatformRenderInterface));
PerspexLocator.CurrentMutable.Bind<IPlatformRenderInterface>().ToConstant(renderInterface);
return result;
}
}

3
tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj

@ -59,9 +59,6 @@
<Reference Include="Ploeh.AutoFixture.AutoMoq, Version=3.31.1.0, Culture=neutral, PublicKeyToken=b24654c590009d4f">
<HintPath>..\..\packages\AutoFixture.AutoMoq.3.31.1\lib\net40\Ploeh.AutoFixture.AutoMoq.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Core">
<HintPath>..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll</HintPath>
</Reference>

16
tests/Perspex.Controls.UnitTests/Primitives/PopupTests.cs

@ -13,7 +13,6 @@ using Perspex.LogicalTree;
using Perspex.Platform;
using Perspex.Styling;
using Perspex.VisualTree;
using Splat;
using Xunit;
namespace Perspex.Controls.UnitTests.Primitives
@ -248,7 +247,7 @@ namespace Perspex.Controls.UnitTests.Primitives
private static IDisposable CreateServices()
{
var result = Locator.Current.WithResolver();
var result = PerspexLocator.EnterScope();
var styles = new Styles
{
@ -264,11 +263,14 @@ namespace Perspex.Controls.UnitTests.Primitives
var globalStyles = new Mock<IGlobalStyles>();
globalStyles.Setup(x => x.Styles).Returns(styles);
Locator.CurrentMutable.Register(() => globalStyles.Object, typeof(IGlobalStyles));
Locator.CurrentMutable.Register(() => new LayoutManager(), typeof(ILayoutManager));
Locator.CurrentMutable.Register(() => new Mock<IPlatformThreadingInterface>().Object, typeof(IPlatformThreadingInterface));
Locator.CurrentMutable.Register(() => new Mock<IPopupImpl>().Object, typeof(IPopupImpl));
Locator.CurrentMutable.Register(() => new Styler(), typeof(IStyler));
PerspexLocator.CurrentMutable
.Bind<ILayoutManager>().ToTransient<LayoutManager>()
.Bind<IGlobalStyles>().ToFunc(() => globalStyles.Object)
.Bind<IPlatformThreadingInterface>().ToConstant(new Mock<IPlatformThreadingInterface>().Object)
.Bind<IPopupImpl>().ToConstant(new Mock<IPopupImpl>().Object)
.Bind<IStyler>().ToTransient<Styler>();
return result;
}

6
tests/Perspex.Controls.UnitTests/TemplatedControlTests.cs

@ -9,7 +9,6 @@ using Perspex.Controls.Primitives;
using Perspex.Controls.Templates;
using Perspex.Styling;
using Perspex.VisualTree;
using Splat;
using Xunit;
namespace Perspex.Controls.UnitTests
@ -143,10 +142,11 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Templated_Children_Should_Be_Styled()
{
using (Locator.Current.WithResolver())
using (PerspexLocator.EnterScope())
{
var styler = new Mock<IStyler>();
Locator.CurrentMutable.Register(() => styler.Object, typeof(IStyler));
PerspexLocator.CurrentMutable.Bind<IStyler>().ToConstant(styler.Object);
TestTemplatedControl target;

57
tests/Perspex.Controls.UnitTests/TopLevelTests.cs

@ -14,7 +14,6 @@ using Perspex.Rendering;
using Perspex.Styling;
using Ploeh.AutoFixture;
using Ploeh.AutoFixture.AutoMoq;
using Splat;
using Xunit;
namespace Perspex.Controls.UnitTests
@ -24,7 +23,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void ClientSize_Should_Be_Set_On_Construction()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -40,7 +39,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Width_Should_Not_Be_Set_On_Construction()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -56,7 +55,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Height_Should_Not_Be_Set_On_Construction()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -72,7 +71,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Layout_Pass_Should_Not_Be_Automatically_Scheduled()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -88,10 +87,10 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Bounds_Should_Be_Set_After_Layout_Pass()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
Locator.CurrentMutable.RegisterConstant(new LayoutManager(), typeof(ILayoutManager));
PerspexLocator.CurrentMutable.Bind<ILayoutManager>().ToConstant(new LayoutManager());
var impl = new Mock<ITopLevelImpl>();
impl.SetupProperty(x => x.ClientSize);
@ -120,10 +119,10 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Impl_ClientSize_Should_Be_Set_After_Layout_Pass()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
Locator.CurrentMutable.RegisterConstant(new LayoutManager(), typeof(ILayoutManager));
PerspexLocator.CurrentMutable.Bind<ILayoutManager>().ToConstant(new LayoutManager());
var impl = new Mock<ITopLevelImpl>();
@ -150,7 +149,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Width_And_Height_Should_Not_Be_Set_After_Layout_Pass()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -168,11 +167,11 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Render_Should_Be_Scheduled_After_Layout_Pass()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
var completed = new Subject<Unit>();
var layoutManagerMock = Mock.Get(Locator.Current.GetService<ILayoutManager>());
var layoutManagerMock = Mock.Get(PerspexLocator.Current.GetService<ILayoutManager>());
layoutManagerMock.Setup(x => x.LayoutCompleted).Returns(completed);
var impl = new Mock<ITopLevelImpl>();
@ -181,7 +180,7 @@ namespace Perspex.Controls.UnitTests
var target = new TestTopLevel(impl.Object);
completed.OnNext(Unit.Default);
var renderManagerMock = Mock.Get(Locator.Current.GetService<IRenderManager>());
var renderManagerMock = Mock.Get(PerspexLocator.Current.GetService<IRenderManager>());
renderManagerMock.Verify(x => x.InvalidateRender(target));
}
}
@ -189,7 +188,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Width_And_Height_Should_Be_Set_After_Window_Resize_Notification()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -209,7 +208,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Activate_Should_Call_Impl_Activate()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -225,7 +224,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Impl_Activate_Should_Call_Raise_Activated_Event()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -245,7 +244,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Impl_Close_Should_Call_Raise_Closed_Event()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -265,7 +264,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Impl_Deactivate_Should_Call_Raise_Activated_Event()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -285,7 +284,7 @@ namespace Perspex.Controls.UnitTests
[Fact]
public void Impl_Input_Should_Pass_Input_To_InputManager()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
RegisterServices();
@ -308,7 +307,7 @@ namespace Perspex.Controls.UnitTests
private void RegisterServices()
{
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var l = Locator.CurrentMutable;
var l = PerspexLocator.CurrentMutable;
var formattedText = fixture.Create<IFormattedTextImpl>();
var globalStyles = new Mock<IGlobalStyles>();
@ -320,14 +319,16 @@ namespace Perspex.Controls.UnitTests
globalStyles.Setup(x => x.Styles).Returns(theme);
l.RegisterConstant(new Mock<IInputManager>().Object, typeof(IInputManager));
l.RegisterConstant(new Mock<IFocusManager>().Object, typeof(IFocusManager));
l.RegisterConstant(globalStyles.Object, typeof(IGlobalStyles));
l.RegisterConstant(layoutManager, typeof(ILayoutManager));
l.RegisterConstant(new Mock<IPlatformThreadingInterface>().Object, typeof(IPlatformThreadingInterface));
l.RegisterConstant(renderInterface, typeof(IPlatformRenderInterface));
l.RegisterConstant(renderManager, typeof(IRenderManager));
l.RegisterConstant(new Styler(), typeof(IStyler));
PerspexLocator.CurrentMutable
.Bind<IInputManager>().ToConstant(new Mock<IInputManager>().Object)
.Bind<IFocusManager>().ToConstant(new Mock<IFocusManager>().Object)
.Bind<IGlobalStyles>().ToConstant(globalStyles.Object)
.Bind<ILayoutManager>().ToConstant(layoutManager)
.Bind<IPlatformRenderInterface>().ToConstant(renderInterface)
.Bind<IPlatformThreadingInterface>().ToConstant(new Mock<IPlatformThreadingInterface>().Object)
.Bind<IRenderManager>().ToConstant(renderManager)
.Bind<IStyler>().ToConstant(new Styler());
}
private class TestTopLevel : TopLevel

1
tests/Perspex.Controls.UnitTests/packages.config

@ -8,7 +8,6 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
<package id="Rx-Main" version="2.2.5" targetFramework="net45" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

5
tests/Perspex.Direct2D1.UnitTests/Controls/Shapes/PathTests.cs

@ -4,7 +4,6 @@
using Perspex.Controls.Shapes;
using Perspex.Layout;
using Perspex.Media;
using Splat;
using Xunit;
namespace Perspex.Direct2D1.UnitTests.Controls.Shapes
@ -16,7 +15,7 @@ namespace Perspex.Direct2D1.UnitTests.Controls.Shapes
[Fact]
public void Should_Measure_Expander_Triangle_Correctly()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
Direct2D1Platform.Initialize();
@ -39,7 +38,7 @@ namespace Perspex.Direct2D1.UnitTests.Controls.Shapes
[Fact]
public void Should_Measure_Expander_Triangle_With_Stroke_Correctly()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
Direct2D1Platform.Initialize();

5
tests/Perspex.Direct2D1.UnitTests/Media/GeometryTests.cs

@ -2,7 +2,6 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Perspex.Media;
using Splat;
using Xunit;
namespace Perspex.Direct2D1.UnitTests.Media
@ -14,7 +13,7 @@ namespace Perspex.Direct2D1.UnitTests.Media
[Fact]
public void Should_Measure_Expander_Triangle_Correctly()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
Direct2D1Platform.Initialize();
@ -27,7 +26,7 @@ namespace Perspex.Direct2D1.UnitTests.Media
[Fact]
public void Should_Measure_Expander_Triangle_With_Stroke_Correctly()
{
using (Locator.CurrentMutable.WithResolver())
using (PerspexLocator.EnterScope())
{
Direct2D1Platform.Initialize();

3
tests/Perspex.Direct2D1.UnitTests/Perspex.Direct2D1.UnitTests.csproj

@ -44,9 +44,6 @@
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
<HintPath>..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
</Reference>

1
tests/Perspex.Direct2D1.UnitTests/packages.config

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

3
tests/Perspex.Input.UnitTests/Perspex.Input.UnitTests.csproj

@ -44,9 +44,6 @@
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
<HintPath>..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
</Reference>

1
tests/Perspex.Input.UnitTests/packages.config

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

3
tests/Perspex.Interactivity.UnitTests/Perspex.Interactivity.UnitTests.csproj

@ -49,9 +49,6 @@
<Reference Include="xunit.core">
<HintPath>..\..\packages\xunit.extensibility.core.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
<HintPath>..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
</Reference>

1
tests/Perspex.Interactivity.UnitTests/packages.config

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

24
tests/Perspex.Layout.UnitTests/FullLayoutTests.cs

@ -17,7 +17,6 @@ using Perspex.Styling;
using Perspex.Themes.Default;
using Ploeh.AutoFixture;
using Ploeh.AutoFixture.AutoMoq;
using Splat;
using Xunit;
namespace Perspex.Layout.UnitTests
@ -27,7 +26,7 @@ namespace Perspex.Layout.UnitTests
[Fact]
public void Grandchild_Size_Changed()
{
using (var context = Locator.CurrentMutable.WithResolver())
using (var context = PerspexLocator.EnterScope())
{
RegisterServices();
@ -66,7 +65,7 @@ namespace Perspex.Layout.UnitTests
[Fact]
public void Test_ScrollViewer_With_TextBlock()
{
using (var context = Locator.CurrentMutable.WithResolver())
using (var context = PerspexLocator.EnterScope())
{
RegisterServices();
@ -130,7 +129,7 @@ namespace Perspex.Layout.UnitTests
private void RegisterServices()
{
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var l = Locator.CurrentMutable;
var formattedText = fixture.Create<IFormattedTextImpl>();
var globalStyles = new Mock<IGlobalStyles>();
@ -143,14 +142,15 @@ namespace Perspex.Layout.UnitTests
windowImpl.Setup(x => x.MaxClientSize).Returns(new Size(1024, 1024));
globalStyles.Setup(x => x.Styles).Returns(theme);
l.RegisterConstant(new Mock<IInputManager>().Object, typeof(IInputManager));
l.RegisterConstant(globalStyles.Object, typeof(IGlobalStyles));
l.RegisterConstant(new LayoutManager(), typeof(ILayoutManager));
l.RegisterConstant(renderInterface, typeof(IPlatformRenderInterface));
l.RegisterConstant(new Mock<IPlatformThreadingInterface>().Object, typeof(IPlatformThreadingInterface));
l.RegisterConstant(renderManager, typeof(IRenderManager));
l.RegisterConstant(new Styler(), typeof(IStyler));
l.RegisterConstant(windowImpl.Object, typeof(IWindowImpl));
PerspexLocator.CurrentMutable
.Bind<IInputManager>().ToConstant(new Mock<IInputManager>().Object)
.Bind<IGlobalStyles>().ToConstant(globalStyles.Object)
.Bind<ILayoutManager>().ToConstant(new LayoutManager())
.Bind<IPlatformRenderInterface>().ToConstant(renderInterface)
.Bind<IPlatformThreadingInterface>().ToConstant(new Mock<IPlatformThreadingInterface>().Object)
.Bind<IRenderManager>().ToConstant(renderManager)
.Bind<IStyler>().ToConstant(new Styler())
.Bind<IWindowImpl>().ToConstant(windowImpl.Object);
}
}
}

3
tests/Perspex.Layout.UnitTests/Perspex.Layout.UnitTests.csproj

@ -56,9 +56,6 @@
<Reference Include="Ploeh.AutoFixture.AutoMoq, Version=3.31.1.0, Culture=neutral, PublicKeyToken=b24654c590009d4f">
<HintPath>..\..\packages\AutoFixture.AutoMoq.3.31.1\lib\net40\Ploeh.AutoFixture.AutoMoq.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
<HintPath>..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
</Reference>

1
tests/Perspex.Layout.UnitTests/packages.config

@ -3,7 +3,6 @@
<package id="AutoFixture" version="3.31.3" targetFramework="net45" />
<package id="AutoFixture.AutoMoq" version="3.31.1" targetFramework="net45" />
<package id="Moq" version="4.2.1507.0118" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

3
tests/Perspex.RenderTests/Perspex.Cairo.RenderTests.csproj

@ -53,9 +53,6 @@
<Reference Include="Magick.NET.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec">
<HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.0.0.0018\lib\net40-client\Magick.NET.Core.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
<HintPath>..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
</Reference>

1
tests/Perspex.RenderTests/packages.config

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Magick.NET-Q16-AnyCPU" version="7.0.0.0018" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

3
tests/Perspex.SceneGraph.UnitTests/Perspex.SceneGraph.UnitTests.csproj

@ -47,9 +47,6 @@
<Reference Include="xunit.core">
<HintPath>..\..\packages\xunit.extensibility.core.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Core, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll</HintPath>
</Reference>

1
tests/Perspex.SceneGraph.UnitTests/packages.config

@ -5,7 +5,6 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
<package id="Rx-Main" version="2.2.5" targetFramework="net45" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

3
tests/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj

@ -50,9 +50,6 @@
<Reference Include="Moq, Version=4.2.1507.118, Culture=neutral, PublicKeyToken=69f491c39445e920">
<HintPath>..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll</HintPath>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>
<Reference Include="System.Reactive.Core">
<HintPath>..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll</HintPath>
</Reference>

1
tests/Perspex.Styling.UnitTests/packages.config

@ -6,7 +6,6 @@
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
<package id="Rx-Main" version="2.2.5" targetFramework="net45" />
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" />
<package id="Splat" version="1.6.2" targetFramework="net45" />
<package id="xunit" version="2.0.0" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0" targetFramework="net45" />

Loading…
Cancel
Save