public virtual bool DrawInspector() { bool initializeMinimization = false; if (groupsMinized == -1) { initializeMinimization = true; groupsMinized = 0; } GUILayout.Space(5); GUIStyle minStyle = GUIStyle.none; minStyle.normal.textColor = Color.white; minStyle.fontStyle = FontStyle.Bold; minStyle.fontSize = 16; var fields = this.GetType().GetFields(); Array.Sort(fields, GUIPropertiesUtils.GroupSort); string lastGroup = ""; bool lastGroupMinimized = false; bool invalidate = false; int groupIndex = 0; if (GetType().GetCustomAttribute <CustomInspectorAttribute>() != null) { lastGroupMinimized = DrawGroupTitle(null, ref groupIndex, ref lastGroup, initializeMinimization, minStyle); if (!lastGroupMinimized) { DrawCustomInspector(); } } foreach (var field in fields) { if (field.IsConstant() || !GUIPropertiesUtils.MeetsDependencies(field, this) || GUIPropertiesUtils.IsHidden(field)) { continue; } lastGroupMinimized = DrawGroupTitle(field, ref groupIndex, ref lastGroup, initializeMinimization, minStyle); if (lastGroupMinimized) { continue; } invalidate = invalidate || GUIPropertiesUtils.PropertyField(field, this, this); } return(invalidate); }
public override bool DrawInspector() { bool invalidate = false; if (preset != null) { GUILayout.Space(5); GUIPropertiesUtils.Separator(16, 2, 4, new Color(0.1f, 0.1f, 0.1f)); GUILayout.Label("Preset Properties", DashEditorCore.Skin.GetStyle("PropertyGroup"), GUILayout.Width(120)); Rect lastRect = GUILayoutUtility.GetLastRect(); GUIStyle minStyle = GUIStyle.none; minStyle.normal.textColor = Color.white; minStyle.fontSize = 16; if (GUI.Button(new Rect(lastRect.x + 302, lastRect.y - 25, 20, 20), _presetGroupMinimzed ? "+" : "-", minStyle)) { _presetGroupMinimzed = !_presetGroupMinimzed; } if (!_presetGroupMinimzed) { var fields = preset.GetType().GetFields(); foreach (var field in fields) { if (field.IsConstant()) { continue; } invalidate = GUIPropertiesUtils.PropertyField(field, preset, this); } } } bool invalidateBase = base.DrawInspector(); return(invalidate || invalidateBase); }
public virtual bool DrawInspector() { bool initializeMinimization = false; if (groupsMinized == -1) { initializeMinimization = true; groupsMinized = 0; } GUILayout.Space(5); GUIStyle minStyle = GUIStyle.none; minStyle.normal.textColor = Color.white; minStyle.fontSize = 16; var fields = this.GetType().GetFields(); Array.Sort(fields, GUIPropertiesUtils.GroupSort); string lastGroup = ""; bool lastGroupMinimized = false; bool invalidate = false; int groupIndex = 0; foreach (var field in fields) { if (field.IsConstant()) { continue; } TitledGroupAttribute ga = field.GetCustomAttribute <TitledGroupAttribute>(); string currentGroup = ga != null ? ga.Group : "Properties"; if (currentGroup != lastGroup) { int groupMask = (int)Math.Pow(2, groupIndex); groupIndex++; if (initializeMinimization && ga != null && ga.Minimized && (groupsMinized & groupMask) == 0) { groupsMinized += groupMask; } GUIPropertiesUtils.Separator(16, 2, 4, new Color(0.1f, 0.1f, 0.1f)); GUILayout.Label(currentGroup, DashEditorCore.Skin.GetStyle("PropertyGroup"), GUILayout.Width(120)); Rect lastRect = GUILayoutUtility.GetLastRect(); if (GUI.Button(new Rect(lastRect.x + 302, lastRect.y - 25, 20, 20), (groupsMinized & groupMask) != 0 ? "+" : "-", minStyle)) { groupsMinized = (groupsMinized & groupMask) == 0 ? groupsMinized + groupMask : groupsMinized - groupMask; } lastGroup = currentGroup; lastGroupMinimized = (groupsMinized & groupMask) != 0; } if (lastGroupMinimized) { continue; } invalidate = invalidate || GUIPropertiesUtils.PropertyField(field, this, null); } if (invalidate) { DashEditorCore.SetDirty(); } return(invalidate); }