private void DrawArrayValues(Variable var) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Values Type"); PlistValueTypes type = (PlistValueTypes)EditorGUILayout.EnumPopup(var.ArrayType); if (type == PlistValueTypes.Array || type == PlistValueTypes.Dictionary) { type = var.ArrayType; } var.ArrayType = type; EditorGUILayout.EndHorizontal(); var.IsListOpen = EditorGUILayout.Foldout(var.IsListOpen, "Array Values"); /* foreach(KeyValuePair<string, ISD_VariableListed> pair in var.DictionaryValue) { * EditorGUI.indentLevel++; { * EditorGUILayout.BeginHorizontal(); * ISD_VariableListed v = pair.Value; * * v.IsOpen = EditorGUILayout.Foldout(v.IsOpen, v.DictKey); * EditorGUILayout.LabelField("(" + var.Type.ToString() + ")"); * bool removed = DrawSrotingButtons((object) v, var.ArrayValue); * if(removed) { * return; * }*/ if (var.IsListOpen) { foreach (VariableListed v in var.ArrayValue) { EditorGUILayout.BeginHorizontal(); GUI.enabled = false; v.Type = (PlistValueTypes)EditorGUILayout.EnumPopup(var.ArrayType); GUI.enabled = true; DrawValueFiled(v); bool removed = DrawSortingButtons((object)v, var.ArrayValue); if (removed) { return; } EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add New Value", GUILayout.Width(100))) { var.ArrayValue.Add(new VariableListed()); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.Space(); }
void PlistValues() { ISDSettings.Instance.IsPlistSettingsOpen = EditorGUILayout.Foldout(ISDSettings.Instance.IsPlistSettingsOpen, "Plist values"); if (ISDSettings.Instance.IsPlistSettingsOpen) { if (ISDSettings.Instance.plistkeys.Count == 0) { EditorGUILayout.HelpBox("No Plist values added", MessageType.None); } for (int i = 0; i < ISDSettings.Instance.plistkeys.Count; i++) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); EditorGUILayout.SelectableLabel(ISDSettings.Instance.plistkeys[i] + ": " + ISDSettings.Instance.plistvalues[i], GUILayout.Height(18)); EditorGUILayout.Space(); bool pressed = GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20)); if (pressed) { ISDSettings.Instance.plistkeys.Remove(ISDSettings.Instance.plistkeys[i]); ISDSettings.Instance.plistkeys.Remove(ISDSettings.Instance.plisttags[i]); ISDSettings.Instance.plistvalues.Remove(ISDSettings.Instance.plistvalues[i]); return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } EditorGUILayout.Space(); EditorGUILayout.LabelField("Add New Value"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Key"); NewPlistValue = EditorGUILayout.TextField(NewPlistValue); EditorGUILayout.EndHorizontal(); EditorGUI.BeginChangeCheck(); type = (PlistValueTypes)EditorGUILayout.EnumPopup("Type", type); if (EditorGUI.EndChangeCheck()) { NewPlistStringValue = string.Empty; NewPlistIntValue = 0; NewPlistFloatValue = 0; NewPlistBoolValue = false; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Value"); switch (type) { case PlistValueTypes.Boolean: NewPlistBoolValue = EditorGUILayout.Toggle(NewPlistBoolValue); break; case PlistValueTypes.Float: NewPlistFloatValue = EditorGUILayout.FloatField(NewPlistFloatValue); break; case PlistValueTypes.Integer: NewPlistIntValue = EditorGUILayout.IntField(NewPlistIntValue); break; case PlistValueTypes.String: NewPlistStringValue = EditorGUILayout.TextField(NewPlistStringValue); break; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add", GUILayout.Width(100))) { if (!ISDSettings.Instance.plistkeys.Contains(NewPlistValue) && NewPlistValue.Length > 0) { ISDSettings.Instance.plistkeys.Add(NewPlistValue); switch (type) { case PlistValueTypes.Boolean: ISDSettings.Instance.plistvalues.Add(NewPlistBoolValue.ToString().ToLower()); ISDSettings.Instance.plisttags.Add(string.Empty); NewPlistBoolValue = false; break; case PlistValueTypes.Float: ISDSettings.Instance.plistvalues.Add(NewPlistFloatValue.ToString()); ISDSettings.Instance.plisttags.Add("real"); NewPlistFloatValue = 0; break; case PlistValueTypes.Integer: ISDSettings.Instance.plistvalues.Add(NewPlistIntValue.ToString()); ISDSettings.Instance.plisttags.Add("integer"); NewPlistIntValue = 0; break; case PlistValueTypes.String: ISDSettings.Instance.plistvalues.Add(NewPlistStringValue.ToString()); ISDSettings.Instance.plisttags.Add("string"); NewPlistStringValue = string.Empty; break; } NewPlistValue = string.Empty; } } EditorGUILayout.EndHorizontal(); } }
void PlistValues () { ISDSettings.Instance.IsPlistSettingsOpen = EditorGUILayout.Foldout(ISDSettings.Instance.IsPlistSettingsOpen, "Plist values"); if(ISDSettings.Instance.IsPlistSettingsOpen) { if (ISDSettings.Instance.plistkeys.Count == 0) { EditorGUILayout.HelpBox("No Plist values added", MessageType.None); } for(int i = 0; i < ISDSettings.Instance.plistkeys.Count; i++) { EditorGUILayout.BeginVertical (GUI.skin.box); EditorGUILayout.BeginHorizontal(); EditorGUILayout.SelectableLabel(ISDSettings.Instance.plistkeys[i] + ": " + ISDSettings.Instance.plistvalues[i], GUILayout.Height(18)); EditorGUILayout.Space(); bool pressed = GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20)); if(pressed) { ISDSettings.Instance.plistkeys.Remove (ISDSettings.Instance.plistkeys[i]); ISDSettings.Instance.plistkeys.Remove (ISDSettings.Instance.plisttags[i]); ISDSettings.Instance.plistvalues.Remove (ISDSettings.Instance.plistvalues[i]); return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical (); } EditorGUILayout.Space(); EditorGUILayout.LabelField("Add New Value"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Key"); NewPlistValue = EditorGUILayout.TextField(NewPlistValue); EditorGUILayout.EndHorizontal(); EditorGUI.BeginChangeCheck (); type = (PlistValueTypes)EditorGUILayout.EnumPopup ("Type", type); if(EditorGUI.EndChangeCheck()) { NewPlistStringValue = string.Empty; NewPlistIntValue = 0; NewPlistFloatValue = 0; NewPlistBoolValue = false; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Value"); switch(type) { case PlistValueTypes.Boolean: NewPlistBoolValue = EditorGUILayout.Toggle (NewPlistBoolValue); break; case PlistValueTypes.Float: NewPlistFloatValue = EditorGUILayout.FloatField(NewPlistFloatValue); break; case PlistValueTypes.Integer: NewPlistIntValue = EditorGUILayout.IntField (NewPlistIntValue); break; case PlistValueTypes.String: NewPlistStringValue = EditorGUILayout.TextField (NewPlistStringValue); break; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if(GUILayout.Button("Add", GUILayout.Width(100))) { if(!ISDSettings.Instance.plistkeys.Contains(NewPlistValue) && NewPlistValue.Length > 0) { ISDSettings.Instance.plistkeys.Add (NewPlistValue); switch(type) { case PlistValueTypes.Boolean: ISDSettings.Instance.plistvalues.Add (NewPlistBoolValue.ToString ().ToLower ()); ISDSettings.Instance.plisttags.Add (string.Empty); NewPlistBoolValue = false; break; case PlistValueTypes.Float: ISDSettings.Instance.plistvalues.Add (NewPlistFloatValue.ToString ()); ISDSettings.Instance.plisttags.Add ("real"); NewPlistFloatValue = 0; break; case PlistValueTypes.Integer: ISDSettings.Instance.plistvalues.Add (NewPlistIntValue.ToString ()); ISDSettings.Instance.plisttags.Add ("integer"); NewPlistIntValue = 0; break; case PlistValueTypes.String: ISDSettings.Instance.plistvalues.Add (NewPlistStringValue.ToString ()); ISDSettings.Instance.plisttags.Add ("string"); NewPlistStringValue = string.Empty; break; } NewPlistValue = string.Empty; } } EditorGUILayout.EndHorizontal(); } }
public static void DrawArrayValues(Variable varr) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Values Type"); PlistValueTypes type = PlistValueTypes.String; if (varr.ArrayValue.Count > 0 || varr.PlistVariables.Count > 0) { GUI.enabled = false; type = (PlistValueTypes)EditorGUILayout.EnumPopup(varr.ArrayType); GUI.enabled = true; } else { type = (PlistValueTypes)EditorGUILayout.EnumPopup(varr.ArrayType); } varr.ArrayType = type; EditorGUILayout.EndHorizontal(); varr.IsListOpen = EditorGUILayout.Foldout(varr.IsListOpen, "Array Values"); if (varr.IsListOpen) { if (type != PlistValueTypes.Dictionary && type != PlistValueTypes.Array) { foreach (VariableListed v in varr.ArrayValue) { EditorGUILayout.BeginHorizontal(); GUI.enabled = false; v.Type = (PlistValueTypes)EditorGUILayout.EnumPopup(varr.ArrayType); GUI.enabled = true; DrawValueFiled(v); bool removed = DrawSortingButtons((object)v, varr.ArrayValue); if (removed) { return; } EditorGUILayout.EndHorizontal(); } } else if (type == PlistValueTypes.Array) //show list of Arrays { foreach (Variable v in varr.PlistVariables) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); string dictKey = "" + v.Name; v.IsOpen = EditorGUILayout.Foldout(v.IsOpen, dictKey); EditorGUILayout.LabelField("(" + v.Type.ToString() + ")"); bool ItemWasRemoved = DrawSortingButtons((object)v, ISD_Settings.Instance.PlistVariables); if (ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); //3h if (v.IsOpen) { EditorGUI.indentLevel++; { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Type"); GUI.enabled = false; v.Type = (PlistValueTypes)EditorGUILayout.EnumPopup(v.Type); GUI.enabled = true; EditorGUILayout.EndHorizontal(); if (v.Type == PlistValueTypes.String || v.Type == PlistValueTypes.Integer || v.Type == PlistValueTypes.Float || v.Type == PlistValueTypes.Boolean) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Value"); switch (v.Type) { case PlistValueTypes.Boolean: v.BooleanValue = EditorGUILayout.Toggle(v.BooleanValue); break; case PlistValueTypes.Float: v.FloatValue = EditorGUILayout.FloatField(v.FloatValue); break; case PlistValueTypes.Integer: v.IntegerValue = EditorGUILayout.IntField(v.IntegerValue); break; case PlistValueTypes.String: v.StringValue = EditorGUILayout.TextField(v.StringValue); break; } EditorGUILayout.EndHorizontal(); } else if (v.Type == PlistValueTypes.Array) { DrawArrayValues(v); } else if (v.Type == PlistValueTypes.Dictionary) { DrawDictionaryValues(v); } } EditorGUI.indentLevel--; } EditorGUILayout.EndVertical(); } } else if (type == PlistValueTypes.Dictionary) //show list of dictionaries { foreach (Variable v in varr.PlistVariables) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); string dictKey = "Key: " + v.Name; v.IsOpen = EditorGUILayout.Foldout(v.IsOpen, dictKey); EditorGUILayout.LabelField("(" + v.Type.ToString() + ")"); bool ItemWasRemoved = DrawSortingButtons((object)v, varr.PlistVariables); if (ItemWasRemoved) { //Debug.Log ("Removing dictionary"); return; } EditorGUILayout.EndHorizontal(); if (v.IsOpen) { EditorGUI.indentLevel++; { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Type"); GUI.enabled = false; v.Type = (PlistValueTypes)EditorGUILayout.EnumPopup(v.Type); GUI.enabled = true; EditorGUILayout.EndHorizontal(); if (v.Type == PlistValueTypes.String || v.Type == PlistValueTypes.Integer || v.Type == PlistValueTypes.Float) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Value"); switch (v.Type) { case PlistValueTypes.Float: v.FloatValue = EditorGUILayout.FloatField(v.FloatValue); break; case PlistValueTypes.Integer: v.IntegerValue = EditorGUILayout.IntField(v.IntegerValue); break; case PlistValueTypes.String: v.StringValue = EditorGUILayout.TextField(v.StringValue); break; } EditorGUILayout.EndHorizontal(); } else if (v.Type == PlistValueTypes.Boolean) { v.BooleanValue = SA.Common.Editor.Tools.YesNoFiled("Value", v.BooleanValue); } else if (v.Type == PlistValueTypes.Array) { DrawArrayValues(v); } else if (v.Type == PlistValueTypes.Dictionary) { DrawDictionaryValues(v); } } EditorGUI.indentLevel--; } EditorGUILayout.EndVertical(); } } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add New Value To Array", GUILayout.Width(150))) { if (type == PlistValueTypes.String || type == PlistValueTypes.Integer || type == PlistValueTypes.Float || type == PlistValueTypes.Boolean) { varr.ArrayValue.Add(new VariableListed()); } else if (type == PlistValueTypes.Array) { Variable newVar = new Variable(); newVar.Name = NewPlistValueName; newVar.Type = PlistValueTypes.Array; varr.PlistVariables.Add(newVar); } else if (type == PlistValueTypes.Dictionary) { Variable newVar = new Variable(); newVar.Name = NewPlistValueName; newVar.Type = PlistValueTypes.Dictionary; varr.PlistVariables.Add(newVar); } } EditorGUILayout.EndHorizontal(); } }