Skip to content
Snippets Groups Projects
Commit 1ad6d9ea authored by WJohnM18's avatar WJohnM18
Browse files

Extend basic window with foldout and ability to add child elements to foldout

parent 854d4067
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,11 @@ using UnityEngine;
public class RenderSettingPreset : IRenderSettingPreset {
private string name;
private HashSet<string> children;
public RenderSettingPreset() {
children = new HashSet<string>();
}
public string GetName() {
return name;
......@@ -13,4 +18,12 @@ public class RenderSettingPreset : IRenderSettingPreset {
public void SetName(string name) {
this.name = name;
}
public void AddChild(string child) {
children.Add(child);
}
public HashSet<string> GetChildren() {
return children;
}
}
......@@ -6,5 +6,6 @@ public interface IRenderSettingPreset {
string GetName();
void SetName(string name);
void AddChild(string child);
HashSet<string> GetChildren();
}
......@@ -5,9 +5,13 @@ using UnityEditor;
public class RenderSettingsWindow : EditorWindow {
static HashSet<IRenderSettingPreset> presets = new HashSet<IRenderSettingPreset>();
private static HashSet<IRenderSettingPreset> presets = new HashSet<IRenderSettingPreset>();
IRenderSettingPresetBuilder presetBuilder = new RenderSettingPresetBuilder();
private static Dictionary<IRenderSettingPreset, bool> presetCollapsedDict = new Dictionary<IRenderSettingPreset, bool>();
private IRenderSettingPresetBuilder presetBuilder = new RenderSettingPresetBuilder();
private const bool isNotCollapsed = true;
void OnGUI() {
if (presets.Count == 0) {
......@@ -19,12 +23,34 @@ public class RenderSettingsWindow : EditorWindow {
}
if(GUILayout.Button("Create new preset")) {
presets.Add(presetBuilder.Build("Apple"));
IRenderSettingPreset preset = presetBuilder.Build("Preset_" + (presets.Count + 1));
presets.Add(preset);
presetCollapsedDict.Add(preset, isNotCollapsed);
Repaint();
}
}
private void DrawPreset(IRenderSettingPreset preset) {
EditorGUILayout.LabelField(preset.GetName());
bool foldoutOpen = EditorGUILayout.Foldout(presetCollapsedDict[preset],
preset.GetName(),
EditorStyles.foldout);
presetCollapsedDict[preset] = foldoutOpen;
if (foldoutOpen) {
DrawPresetSettings(preset);
}
}
private void DrawPresetSettings(IRenderSettingPreset preset) {
foreach (string child in preset.GetChildren()) {
EditorGUILayout.LabelField(child);
}
if (GUILayout.Button("Add Visual Blueprint")) {
preset.AddChild("Child_" + preset.GetChildren().Count);
}
}
}
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment