private void AddConcreteTypesToMenu(GenericElementAdderMenu menu, Type[] concreteTypes)
{
if (concreteTypes.Length == 0)
{
return;
}
if (!menu.IsEmpty)
{
menu.AddSeparator();
}
foreach (Type concreteType in concreteTypes)
{
GUIContent content = new GUIContent(_typeDisplayNameFormatter(concreteType));
if (_elementAdder != null && _elementAdder.CanAddElement(concreteType))
{
menu.AddItem(content, () => {
if (_elementAdder.CanAddElement(concreteType))
{
_elementAdder.AddElement(concreteType);
}
});
}
else
{
menu.AddDisabledItem(content);
}
}
}