GenericInspector.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. using System;
  4. using System.Collections.Generic;
  5. using bs;
  6. namespace bs.Editor
  7. {
  8. /** @addtogroup Inspector
  9. * @{
  10. */
  11. /// <summary>
  12. /// Default implementation of the inspector used when no specified inspector is provided for the type. Inspector
  13. /// displays GUI for all the inspectable fields in the object.
  14. /// </summary>
  15. internal sealed class GenericInspector : Inspector
  16. {
  17. private bool isEmpty = true;
  18. /// <inheritdoc/>
  19. protected internal override void Initialize()
  20. {
  21. if (InspectedObject == null)
  22. LoadResource();
  23. drawer.AddDefault(InspectedObject);
  24. isEmpty = drawer.Fields.Count == 0;
  25. base.SetVisible(!isEmpty);
  26. }
  27. /// <inheritdoc/>
  28. protected internal override InspectableState Refresh()
  29. {
  30. return drawer.Refresh();
  31. }
  32. /// <inheritdoc/>
  33. internal override void SetVisible(bool visible)
  34. {
  35. base.SetVisible(!isEmpty && visible);
  36. }
  37. }
  38. /** @} */
  39. }