InspectableFieldStyle.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. using bs;
  4. namespace bs.Editor
  5. {
  6. /// <summary>
  7. /// Contains style information about inspectable items.
  8. /// </summary>
  9. public abstract class InspectableFieldStyle
  10. {
  11. /// <summary>
  12. /// Creates all the relevant style information for a SerializableField.
  13. /// </summary>
  14. /// <param name="field">Field to create the style info structure for.</param>
  15. /// <returns>Style information retrieved from the field.</returns>
  16. public static InspectableFieldStyleInfo Create(SerializableField field)
  17. {
  18. SerializableFieldStyle style = field.Style;
  19. SerializableFieldAttributes flags = field.Flags;
  20. var styleInfo = new InspectableFieldStyleInfo();
  21. styleInfo.RangeStyle = flags.HasFlag(SerializableFieldAttributes.Ranged)
  22. ? new InspectableFieldRangeStyle(style.RangeMin, style.RangeMax, style.DisplayAsSlider) : null;
  23. styleInfo.StepStyle = flags.HasFlag(SerializableFieldAttributes.Stepped)
  24. ? new InspectableFieldStepStyle(style.StepIncrement) : null;
  25. styleInfo.CategoryStyle = flags.HasFlag(SerializableFieldAttributes.Category)
  26. ? new InspectableFieldCategoryStyle(style.CategoryName) : null;
  27. styleInfo.OrderStyle = flags.HasFlag(SerializableFieldAttributes.Order)
  28. ? new InspectableFieldOrderStyle(style.Order) : null;
  29. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.AsLayerMask)
  30. ? InspectableFieldStyleFlags.AsLayerMask : 0;
  31. styleInfo.StyleFlags |= style.DisplayAsSlider ? InspectableFieldStyleFlags.AsSlider : 0;
  32. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.PassByCopy)
  33. ? InspectableFieldStyleFlags.CopiedAsValue
  34. : 0;
  35. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.NotNull)
  36. ? InspectableFieldStyleFlags.NotNull
  37. : 0;
  38. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.NativeWrapper)
  39. ? InspectableFieldStyleFlags.NativeWrapper
  40. : 0;
  41. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.ApplyOnDirty)
  42. ? InspectableFieldStyleFlags.ApplyOnDirty
  43. : 0;
  44. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.AsQuaternion)
  45. ? InspectableFieldStyleFlags.AsQuaternion
  46. : 0;
  47. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.Inline)
  48. ? InspectableFieldStyleFlags.Inline
  49. : 0;
  50. styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.LoadOnAssign)
  51. ? InspectableFieldStyleFlags.LoadOnAssign
  52. : 0;
  53. return styleInfo;
  54. }
  55. }
  56. }