//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// using bs; namespace bs.Editor { /// /// Contains style information about inspectable items. /// public abstract class InspectableFieldStyle { /// /// Creates all the relevant style information for a SerializableField. /// /// Field to create the style info structure for. /// Style information retrieved from the field. public static InspectableFieldStyleInfo Create(SerializableField field) { SerializableFieldStyle style = field.Style; SerializableFieldAttributes flags = field.Flags; var styleInfo = new InspectableFieldStyleInfo(); styleInfo.RangeStyle = flags.HasFlag(SerializableFieldAttributes.Ranged) ? new InspectableFieldRangeStyle(style.RangeMin, style.RangeMax, style.DisplayAsSlider) : null; styleInfo.StepStyle = flags.HasFlag(SerializableFieldAttributes.Stepped) ? new InspectableFieldStepStyle(style.StepIncrement) : null; styleInfo.CategoryStyle = flags.HasFlag(SerializableFieldAttributes.Category) ? new InspectableFieldCategoryStyle(style.CategoryName) : null; styleInfo.OrderStyle = flags.HasFlag(SerializableFieldAttributes.Order) ? new InspectableFieldOrderStyle(style.Order) : null; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.AsLayerMask) ? InspectableFieldStyleFlags.AsLayerMask : 0; styleInfo.StyleFlags |= style.DisplayAsSlider ? InspectableFieldStyleFlags.AsSlider : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.PassByCopy) ? InspectableFieldStyleFlags.CopiedAsValue : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.NotNull) ? InspectableFieldStyleFlags.NotNull : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.NativeWrapper) ? InspectableFieldStyleFlags.NativeWrapper : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.ApplyOnDirty) ? InspectableFieldStyleFlags.ApplyOnDirty : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.AsQuaternion) ? InspectableFieldStyleFlags.AsQuaternion : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.Inline) ? InspectableFieldStyleFlags.Inline : 0; styleInfo.StyleFlags |= flags.HasFlag(SerializableFieldAttributes.LoadOnAssign) ? InspectableFieldStyleFlags.LoadOnAssign : 0; return styleInfo; } } }