TestRoot.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright (c) The Perspex Project. All rights reserved.
  2. // Licensed under the MIT license. See licence.md file in the project root for full license information.
  3. using System;
  4. using Perspex.Controls;
  5. using Perspex.Layout;
  6. using Perspex.Platform;
  7. using Perspex.Rendering;
  8. using Perspex.Styling;
  9. namespace Perspex.UnitTests
  10. {
  11. public class TestRoot : Decorator, ILayoutRoot, INameScope, IRenderRoot, IStyleRoot
  12. {
  13. private readonly NameScope _nameScope = new NameScope();
  14. event EventHandler<NameScopeEventArgs> INameScope.Registered
  15. {
  16. add { _nameScope.Registered += value; ++NameScopeRegisteredSubscribers; }
  17. remove { _nameScope.Registered -= value; --NameScopeRegisteredSubscribers; }
  18. }
  19. public event EventHandler<NameScopeEventArgs> Unregistered
  20. {
  21. add { _nameScope.Unregistered += value; ++NameScopeUnregisteredSubscribers; }
  22. remove { _nameScope.Unregistered -= value; --NameScopeUnregisteredSubscribers; }
  23. }
  24. public int NameScopeRegisteredSubscribers { get; private set; }
  25. public int NameScopeUnregisteredSubscribers { get; private set; }
  26. public Size ClientSize => new Size(100, 100);
  27. public Size MaxClientSize => Size.Infinity;
  28. public double LayoutScaling => 1;
  29. public ILayoutManager LayoutManager => PerspexLocator.Current.GetService<ILayoutManager>();
  30. public IRenderTarget RenderTarget => null;
  31. public IRenderQueueManager RenderQueueManager => null;
  32. public Point PointToClient(Point p) => p;
  33. public Point PointToScreen(Point p) => p;
  34. void INameScope.Register(string name, object element)
  35. {
  36. _nameScope.Register(name, element);
  37. }
  38. object INameScope.Find(string name)
  39. {
  40. return _nameScope.Find(name);
  41. }
  42. void INameScope.Unregister(string name)
  43. {
  44. _nameScope.Unregister(name);
  45. }
  46. }
  47. }