TestVisual.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // -----------------------------------------------------------------------
  2. // <copyright file="TestVisual.cs" company="Steven Kirk">
  3. // Copyright 2014 MIT Licence. See licence.md for more information.
  4. // </copyright>
  5. // -----------------------------------------------------------------------
  6. namespace Perspex.SceneGraph.UnitTests
  7. {
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using Perspex.Rendering;
  12. public class ParamEventArgs<T> : EventArgs
  13. {
  14. public ParamEventArgs(T param)
  15. {
  16. this.Param = param;
  17. }
  18. public T Param { get; set; }
  19. }
  20. public class TestVisual : Visual
  21. {
  22. public event EventHandler<ParamEventArgs<IRenderRoot>> AttachedToVisualTreeCalled;
  23. public event EventHandler<ParamEventArgs<IRenderRoot>> DetachedFromVisualTreeCalled;
  24. public new PerspexObject InheritanceParent
  25. {
  26. get { return base.InheritanceParent; }
  27. }
  28. public void AddChild(Visual v)
  29. {
  30. this.AddVisualChild(v);
  31. }
  32. public void AddChildren(IEnumerable<Visual> v)
  33. {
  34. this.AddVisualChildren(v);
  35. }
  36. public void RemoveChild(Visual v)
  37. {
  38. this.RemoveVisualChild(v);
  39. }
  40. public void ClearChildren()
  41. {
  42. this.ClearVisualChildren();
  43. }
  44. protected override void OnAttachedToVisualTree(IRenderRoot root)
  45. {
  46. if (this.AttachedToVisualTreeCalled != null)
  47. {
  48. this.AttachedToVisualTreeCalled(this, new ParamEventArgs<IRenderRoot>(root));
  49. }
  50. }
  51. protected override void OnDetachedFromVisualTree(IRenderRoot oldRoot)
  52. {
  53. if (this.DetachedFromVisualTreeCalled != null)
  54. {
  55. this.DetachedFromVisualTreeCalled(this, new ParamEventArgs<IRenderRoot>(oldRoot));
  56. }
  57. }
  58. }
  59. }