static IEnumerable <AttributeDescriptor <Type, string> > GetInspectorDescriptor(Type targetType) { foreach (var t in TypeCache.GetTypesDerivedFrom(targetType)) { if (t.IsAbstract || t.IsInterface) { continue; } var value = ""; if (typeof(IRootInspector).IsAssignableFrom(t)) { value = "Inspector"; } else if (typeof(IPropertyDrawer).IsAssignableFrom(t)) { value = "Property Inspector"; } else { value = "Attribute Inspector"; } yield return(AttributeDescriptor.Make(t, value)); } }
static IEnumerable <AttributeDescriptor <Type, string> > GetTypeDescriptor(Type targetType, string value) { foreach (var t in TypeCache.GetTypesDerivedFrom(targetType)) { if (t.IsAbstract || t.IsInterface) { continue; } yield return(AttributeDescriptor.Make(t, value)); } }
List <IAttributeDescriptor> CacheTypeInfo() { var info = new List <IAttributeDescriptor>(); info.Add(AttributeDescriptor.Make("Namespace", Namespace)); info.Add(AttributeDescriptor.Make("Assembly", Assembly)); info.Add(AttributeDescriptor.Make("Property Bag Type", PropertyBagType.ToString())); info.Add(AttributeDescriptor.Make("Traits", string.Join(" | ", Editor.EnumUtility.EnumerateFlags(TypeTraits)))); info.Add(AttributeDescriptor.Make("Constructable", CanBeConstructed.ToString())); return(info); }