/*private static string GetInterfaces(Type componentType)
        {
            var interfaces = componentType.GetInterfaces();

            var list = new List<string>();
            foreach (Type type in interfaces)
            {
                list.Add(type.Name);
            }

            return string.Join(", ", list.ToArray());
        }*/

        private static string GetSubclasses(Type componentType)
        {
            var list = new List<string>();
            foreach (Type type in GlobalTypeDictionary.Instance.Values)
            {
                if (type.BaseType == componentType)
                    list.Add(type.Name);
            }
            return list.Count == 0 ? "-" : string.Join(", ", list.ToArray());
        }
Example #2
0
        /// <summary>
        /// Adds a popup to popup stage
        /// </summary>
        /// <param name="popup">A popup to add</param>
        /// <param name="parent">Parent component (for position calculations)</param>
        /// <param name="modal">Is this a modal popup</param>
        /// <param name="centered">Should popup be centered</param>
        /// <param name="keepCenter">Should popup stay centered after the screen resize</param>
        public void AddPopup(DisplayListMember popup, DisplayObjectContainer parent, bool modal, bool centered, bool keepCenter)
        {
#if TRIAL
            /* HACK CHECK */
            Acme acme = (Acme) Framework.GetComponent<Acme>(true);
            if (null == acme || !acme.gameObject.activeInHierarchy/*active*/ || !acme.enabled)
                return;
#endif

            if (_popups.Contains(popup))
                return;
#if DEBUG
            if (DebugMode)
            {
                Debug.Log("AddPopup");
            }
#endif
            List<PopupOption> options = new List<PopupOption>
                                            {
                                                new PopupOption(PopupOptionType.Parent, parent),
                                                new PopupOption(PopupOptionType.Modal, modal),
                                                new PopupOption(PopupOptionType.Centered, centered),
                                                new PopupOption(PopupOptionType.KeepCenter, keepCenter)
                                            };

            AddPopup(popup, options.ToArray());
        }
        private static string GetInheritance(Type componentType)
        {
            List<string> list = new List<string>();
            while (null != componentType && (componentType != typeof(Component).BaseType)) // all up to Component
            {
                list.Add(componentType.Name);
                componentType = componentType.BaseType;
            }

            return string.Join(" → ", list.ToArray());
        }
        internal void RefreshComponentList()
        {
            _showComponents = EditorSettings.ReferenceShowComponents;
            _showSkinnableComponents = EditorSettings.ReferenceShowSkinnableComponents;
            _showSkins = EditorSettings.ReferenceShowSkins;

            _selectedIndex = -1;
            _selectionChanged = false;

            _classes.Clear();

            var allClasses = GuiReflector.GetAllLoadedTypes();

            foreach (var type in allClasses)
            {
                if (typeof(Component).IsAssignableFrom(type))
                {
                    if (!string.IsNullOrEmpty(_searchText) && !PassesSearchFilter(type.FullName, _searchText))
                        /*!type.FullName.ToUpper().Contains(_searchText.ToUpper())*/
                        continue;
                    _classes.Add(type);
                }
            }

            _classes.Sort(TypeSort);
            //Debug.Log("_classes: " + _classes.Count);

            List<GUIContent> contentList = new List<GUIContent>();

            foreach (var @class in _classes)
            {
                var isSkinnableComponent = typeof(SkinnableComponent).IsAssignableFrom(@class);
                var isSkin = typeof(Skin).IsAssignableFrom(@class);
                var isSimpleComponent = !isSkinnableComponent && !isSkin;
                var texture = GuiComponentEvaluator.EvaluateComponentRowIcon(@class);

                if (_showComponents && isSimpleComponent ||
                    _showSkinnableComponents && isSkinnableComponent ||
                    _showSkins && isSkin)
                {
                    contentList.Add(new GUIContent(" " + @class.FullName, texture));    
                }
            }

            _contents = contentList.ToArray();
            //Debug.Log("_contents: " + _contents.Length);
        }