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();
        }
    }
예제 #3
0
	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();
		}
	}
예제 #4
0
        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();
            }
        }