Example #1
0
        internal static bool AddNewType(Type type)
        {
            if (!CanAddType(type))
            {
                return(false);
            }

            var typeId     = type.FullName;
            var label      = DependencyTypeInfo.ToShortFullName(type.FullName);
            var settings   = Get();
            var newDepInfo = new DependencyTypeInfo(typeId, label)
            {
                defaultInstantiationMode = TemplateInstantiationMode.Clone,
                userAdded = true
            };

            var depInfoWidth = EditorStyles.label.CalcSize(newDepInfo.content).x;

            if (depInfoWidth > m_MaxLabelWidth)
            {
                m_MaxLabelWidth = Mathf.Min(kMaxLabelWidth, depInfoWidth);
            }

            settings.dependencyTypeInfos.Add(newDepInfo);
            Sort(settings.dependencyTypeInfos);
            Save();

            return(true);
        }
Example #2
0
 static IEnumerable <SearchProposition> BuildPropositionsFromTypes(IEnumerable <Type> types)
 {
     foreach (var t in types)
     {
         yield return(new SearchProposition(
                          label: DependencyTypeInfo.ToShortFullName(t.FullName),
                          type: t,
                          icon: Search.SearchUtils.GetTypeIcon(t)));
     }
 }
 private static SettingsProvider CreateSettings()
 {
     return(new SettingsProvider(k_SettingsKey, SettingsScope.Project)
     {
         keywords = new[] { "unity", "editor", "scene", "clone", "template" },
         activateHandler = (text, rootElement) =>
         {
             if (m_AllTypes == null)
             {
                 m_AllTypes = TypeCache.GetTypesDerivedFrom <UnityEngine.Object>().ToArray();
                 m_AllTypesLabels = m_AllTypes.Select(t => DependencyTypeInfo.ToShortFullName(t.FullName)).ToArray();
             }
             m_TypeToAddLabel = "";
             m_TypeToAdd = null;
         },
         label = "Scene Template",
         guiHandler = OnGUIHandler
     });
 }