InspectableFieldStyle.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. using BansheeEngine;
  4. namespace BansheeEditor
  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. var styleInfo = new InspectableFieldStyleInfo();
  20. styleInfo.RangeStyle = style.HasRange ? new InspectableFieldRangeStyle(style.RangeMin, style.RangeMax, style.DisplayAsSlider) : null;
  21. styleInfo.StepStyle = style.HasStep ? new InspectableFieldStepStyle(style.StepIncrement) : null;
  22. styleInfo.StyleFlags |= style.DisplayAsSlider ? InspectableFieldStyleFlags.UseSlider : 0;
  23. styleInfo.StyleFlags |= style.DisplayAsLayerMask ? InspectableFieldStyleFlags.UseLayerMask : 0;
  24. styleInfo.StyleFlags |= field.Flags.HasFlag(SerializableFieldAttributes.PassByCopy)
  25. ? InspectableFieldStyleFlags.CopiedAsValue
  26. : 0;
  27. styleInfo.StyleFlags |= field.Flags.HasFlag(SerializableFieldAttributes.NotNull)
  28. ? InspectableFieldStyleFlags.NotNull
  29. : 0;
  30. styleInfo.StyleFlags |= field.Flags.HasFlag(SerializableFieldAttributes.NativeWrapper)
  31. ? InspectableFieldStyleFlags.NativeWrapper
  32. : 0;
  33. styleInfo.StyleFlags |= field.Flags.HasFlag(SerializableFieldAttributes.ApplyOnDirty)
  34. ? InspectableFieldStyleFlags.ApplyOnDirty
  35. : 0;
  36. styleInfo.StyleFlags |= field.Flags.HasFlag(SerializableFieldAttributes.DisplayAsQuaternion)
  37. ? InspectableFieldStyleFlags.AsQuaternion
  38. : 0;
  39. return styleInfo;
  40. }
  41. }
  42. }