InspectableFieldStyle.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using BansheeEditor;
  7. using BansheeEngine;
  8. namespace BansheeEditor
  9. {
  10. /// <summary>
  11. /// Contains style information about inspectable items
  12. /// </summary>
  13. public class InspectableFieldStyle
  14. {
  15. public static InspectableFieldStyle[] Create(SerializableField field)
  16. {
  17. List<InspectableFieldStyle> styles = new List<InspectableFieldStyle>();
  18. if (field.Range)
  19. styles.Add(new InspectableFieldRangeStyle(field.RangeMinimum, field.RangeMaximum, field.RangeStep));
  20. return styles.ToArray();
  21. }
  22. public static T FindStyle<T>(InspectableFieldStyle[] styleInfo) where T : InspectableFieldRangeStyle
  23. {
  24. for (int i = 0; i < styleInfo.Length; i++)
  25. {
  26. if (styleInfo[i].GetType() == typeof(T))
  27. return (T)styleInfo[i];
  28. }
  29. return default(T);
  30. }
  31. }
  32. }