public void OnGUI() { GUILayout.Label("Filter: "); var filterCount = 0; for (var i = 0; i < selectedFilterTypes.Count; ++i) { if (selectedFilterTypes[i]) { ++filterCount; var style = filterTypes[i].AccessModeType == ComponentType.AccessMode.Subtractive ? EntityDebuggerStyles.ComponentSubtractive : EntityDebuggerStyles.ComponentRequired; GUILayout.Label(ComponentGroupGUI.SpecifiedTypeName(filterTypes[i].GetManagedType()), style); } } if (filterCount == 0) { GUILayout.Label("none"); } if (GUILayout.Button("Edit")) { ComponentTypeChooser.Open(GUIUtility.GUIToScreenPoint(GUILayoutUtility.GetLastRect().position), filterTypes, selectedFilterTypes, ComponentFilterChanged); } if (filterCount > 0) { if (GUILayout.Button("Clear")) { for (var i = 0; i < selectedFilterTypes.Count; ++i) { selectedFilterTypes[i] = false; } ComponentFilterChanged(); } } }
public ComponentTypeListView(TreeViewState state, List <ComponentType> types, List <bool> typeSelections, CallbackAction callback) : base(state) { this.callback = callback; this.types = types; this.typeSelections = typeSelections; typeNames = new List <GUIContent>(types.Count); for (var i = 0; i < types.Count; ++i) { typeNames.Add(new GUIContent(ComponentGroupGUI.SpecifiedTypeName(types[i].GetManagedType()))); } Reload(); }
void CalculateDrawingParts(IEnumerable <ComponentType> types) { var typeList = types.ToList(); typeList.Sort((Comparison <ComponentType>)ComponentGroupGUI.CompareTypes); styles = new List <GUIStyle>(typeList.Count); names = new List <GUIContent>(typeList.Count); rects = new List <Rect>(typeList.Count); foreach (var type in typeList) { var style = ComponentGroupGUI.StyleForAccessMode(type.AccessModeType, archetypeQueryMode); var content = new GUIContent((string)ComponentGroupGUI.SpecifiedTypeName(type.GetManagedType())); styles.Add(style); names.Add(content); } }
void CalculateDrawingParts(IEnumerable <ComponentType> types, IEnumerable <ComponentType> readWriteTypes, bool archetypeQueryMode) { var typeList = types.ToList(); typeList.Sort((Comparison <ComponentType>)ComponentGroupGUI.CompareTypes); styles = new List <GUIStyle>(typeList.Count); names = new List <GUIContent>(typeList.Count); rects = new List <Rect>(typeList.Count); foreach (var type in typeList) { GUIStyle style = null; if (readWriteTypes != null) { foreach (var readWriteType in readWriteTypes) { if (readWriteType.TypeIndex == type.TypeIndex) { style = ComponentGroupGUI.StyleForAccessMode(readWriteType.AccessModeType, archetypeQueryMode); break; } } if (style == null) { if (type.AccessModeType == ComponentType.AccessMode.Subtractive) { style = EntityDebuggerStyles.ComponentSubtractive; } else { style = EntityDebuggerStyles.ComponentRequired; } } } else { style = ComponentGroupGUI.StyleForAccessMode(type.AccessModeType, archetypeQueryMode); } var content = new GUIContent((string)ComponentGroupGUI.SpecifiedTypeName(type.GetManagedType())); styles.Add(style); names.Add(content); } }