public override void  OnInspectorGUI()
    {
        InstantGuiToggle script = (InstantGuiToggle)target;

        base.OnInspectorGUI();
        //EditorGUILayout.Space();

        script.guiElementProps = EditorGUILayout.Foldout(script.guiElementProps, "Toggle");

        if (script.guiElementProps)
        {
            EditorGUI.indentLevel = 1;

            script.check            = EditorGUILayout.Toggle("Checked", script.check);
            script.couldBeUnchecked = EditorGUILayout.Toggle("Could Be Unchecked", script.couldBeUnchecked);

            //uncheck toggles array
            EditorGUILayout.LabelField("Uncheck Toggles on Checked:");
            script.uncheckToggles = InstantGuiInspector.DrawElementsArray(script.uncheckToggles);



            EditorGUI.indentLevel = 0;
        }

        InstantGuiInspector.DrawActivator("On Checked:", script.onChecked);
        InstantGuiInspector.DrawActivator("On Unchecked:", script.onUnchecked);
    }
Esempio n. 2
0
    public override void  OnInspectorGUI()
    {
        InstantGuiButton script = (InstantGuiButton)target;

        base.OnInspectorGUI();
        if (!script)
        {
            return;
        }

        //EditorGUILayout.Space();

        InstantGuiInspector.DrawActivator("On Pressed:", script.onPressed);
    }
Esempio n. 3
0
    static public InstantGuiStyle DrawStyle(InstantGuiStyle style, bool drawDefaultPos)
    {
        int indent = EditorGUI.indentLevel;

        EditorGUI.indentLevel = 1;

        //EditorGUILayout.HelpBox("Style settings are not available in demo version.", MessageType.Info);

        DrawSubStyle(style.main, "Main");
        DrawSubStyle(style.pointed, "Pointed");
        DrawSubStyle(style.active, "Active");
        DrawSubStyle(style.disabled, "Disabled");

        EditorGUILayout.Space();

        //texture borders
        EditorGUIUtility.LookLikeControls(15, 15);
        EditorGUI.indentLevel = 0;
        Rect rect = GUILayoutUtility.GetRect(50, 44, "TextField");

        rect.x += indent * indentPixels; rect.width -= indent * indentPixels;

        rect.x               = 150; rect.width = 75; rect.height = 16;
        style.borders.top    = EditorGUI.IntField(rect, "T:", style.borders.top);
        rect.y              += 18; rect.x -= 40;
        style.borders.left   = EditorGUI.IntField(rect, "L:", style.borders.left);
        rect.x              += 80;
        style.borders.right  = EditorGUI.IntField(rect, "R:", style.borders.right);
        rect.y              += 18; rect.x -= 40;
        style.borders.bottom = EditorGUI.IntField(rect, "B:", style.borders.bottom);
        rect.x              -= 120; rect.y -= 36; EditorGUI.LabelField(rect, "Texture");
        rect.y              += 18; EditorGUI.LabelField(rect, "Borders:");
        rect.y              += 18; rect.x = 32; rect.width = 60;
        if (GUI.Button(rect, "Half Size"))
        {
            Texture tex = GetUsedtexture(style);
            if (tex != null)
            {
                style.borders.top    = (int)(tex.height * 0.5f);
                style.borders.bottom = (int)(tex.height * 0.5f);
                style.borders.left   = (int)(tex.width * 0.5f);
                style.borders.right  = (int)(tex.width * 0.5f);
            }
        }
        GUILayoutUtility.GetRect(50, 18, "TextField");
        EditorGUIUtility.LookLikeControls();

        //fixed width
        rect    = GUILayoutUtility.GetRect(50, 18, "TextField");
        rect.x += (indent + 1) * indentPixels; rect.width -= (indent + 1) * indentPixels;
        EditorGUI.indentLevel = 0;
        int rectwidth = (int)rect.width;

        rect.width           = 30;
        style.fixedWidth     = EditorGUI.Toggle(rect, style.fixedWidth);
        rect.x              += 20; rect.width = rectwidth - 45 - 30;
        style.fixedWidthSize = EditorGUI.IntField(rect, "Fixed Width:", style.fixedWidthSize);
        rect.x              += rect.width + 5; rect.width = 50;
        if (GUI.Button(rect, "Get"))
        {
            Texture tex = GetUsedtexture(style);
            if (tex != null)
            {
                style.fixedWidthSize = tex.width;
            }
        }
        EditorGUI.indentLevel = 1;

        //fixed height
        rect    = GUILayoutUtility.GetRect(50, 18, "TextField");
        rect.x += (indent + 1) * indentPixels; rect.width -= (indent + 1) * indentPixels;
        EditorGUI.indentLevel = 0;
        rectwidth             = (int)rect.width;
        rect.width            = 30;
        style.fixedHeight     = EditorGUI.Toggle(rect, style.fixedHeight);
        rect.x += 20; rect.width = rectwidth - 45 - 30;
        style.fixedHeightSize = EditorGUI.IntField(rect, "Fixed Height:", style.fixedHeightSize);
        rect.x += rect.width + 5; rect.width = 50;
        if (GUI.Button(rect, "Get"))
        {
            Texture tex = GetUsedtexture(style);
            if (tex != null)
            {
                style.fixedHeightSize = tex.height;
            }
        }
        EditorGUI.indentLevel = 1;

        //proportional
        rect                     = GUILayoutUtility.GetRect(50, 18, "TextField");
        rect.x                  += (indent) * indentPixels; rect.width -= (indent) * indentPixels;
        rect.width              -= 100;
        style.proportional       = EditorGUI.ToggleLeft(rect, "Proportional", style.proportional);
        rect.x                  += 100;
        style.proportionalAspect = EditorGUI.FloatField(rect, style.proportionalAspect);

        //pointOffset
        InstantGuiElementPos tmp = new InstantGuiElementPos(style.pointOffset.left, style.pointOffset.right, style.pointOffset.top, style.pointOffset.bottom);

        tmp = InstantGuiInspector.DrawElementPos("ClickOffset:", tmp);
        style.pointOffset = new RectOffset(tmp.left, tmp.right, tmp.top, tmp.bottom);

        //other controls
        style.blendSpeed = EditorGUILayout.FloatField("Blend Speed:", style.blendSpeed);

        EditorGUILayout.Space();
        style.font         = (Font)EditorGUILayout.ObjectField("Font:", style.font, typeof(Font), false);
        style.fontSize     = EditorGUILayout.IntField("Font Size:", style.fontSize);
        style.textAligment = (InstantGuiTextAligment)EditorGUILayout.EnumPopup("Text Aligment:", style.textAligment);

        Vector2 textOffset = DrawVector2("Text Offset", new Vector2(style.textOffsetX, style.textOffsetY));

        style.textOffsetX = (int)(textOffset.x);
        style.textOffsetY = (int)(textOffset.y);

        EditorGUILayout.Space();

        //text offset
        if (drawDefaultPos)
        {
            EditorGUILayout.LabelField("Default Placement:");
            InstantGuiInspector.DrawElementPosLabels("", "Left", "Right", "Top", "Bottom");
            style.relative    = InstantGuiInspector.DrawElementPos("Relative:", style.relative);
            style.offset      = InstantGuiInspector.DrawElementPos("Offset:", style.offset);
            style.layerOffset = DrawLayerOffset("Layer Offset:", style.layerOffset);
        }
        EditorGUILayout.Space();

        EditorGUI.indentLevel = indent;

        return(style);
    }
    public override void  OnInspectorGUI()
    {
        EditorGUI.BeginChangeCheck();

        InstantGuiElement script = (InstantGuiElement)target;

        Undo.RecordObject(script, "InstantGui Change");

        //EditorGUIUtility.LookLikeInspector ();
        //DrawDefaultInspector ();

        //text
        string newText = EditorGUILayout.TextField("Text:", script.text);

        script.guiLinkText = EditorGUILayout.Toggle("Use Object Name:", script.guiLinkText);
        if (script.guiLinkText && !EditorApplication.isPlayingOrWillChangePlaymode && script.GetType() != typeof(InstantGuiTextArea))
        {
            if (script.text != newText)             //if text changed
            {
                if (newText.Length != 0)
                {
                    script.gameObject.name = newText;
                }
                else
                {
                    script.gameObject.name = "GuiElement";
                }
                script.text = newText;
            }
            if (script.text != script.gameObject.name && newText.Length != 0)
            {
                script.text = script.gameObject.name;
            }
        }
        else
        {
            script.text = newText;
        }

        //setting style
        script.guiStyle = EditorGUILayout.Foldout(script.guiStyle, "Style");
        if (script.guiStyle)
        {
            EditorGUI.indentLevel = 1;

            script.styleSet = (InstantGuiStyleSet)EditorGUILayout.ObjectField("Style Set:", script.styleSet, typeof(InstantGuiStyleSet), false);
            bool customStyle = EditorGUILayout.Toggle("Custom Style:", script.customStyle);

            //custom style
            if (customStyle)
            {
                if (!script.customStyle)
                {
                    if (script.style != null)
                    {
                        script.style = script.style.Clone();
                    }
                    else
                    {
                        script.style = new InstantGuiStyle();
                    }
                }
                script.style.name = EditorGUILayout.TextField("Name:", script.style.name);
                script.styleName  = script.style.name;

                InstantGuiInspector.DrawStyle(script.style, false);

                EditorGUILayout.Space();
                if (script.styleSet != null && script.style != null && script.style.name.Length > 0)
                {
                    InstantGuiInspector.DrawSaveToStyleButton("Add to StyleSet", script, true, false);
                }
            }

            //else
            if (!customStyle && script.styleSet != null)
            {
                string[] styleNames    = new string[script.styleSet.styles.Length];
                int      selectedStyle = -1;            //default if style could not be found

                //compiling popup array
                for (int i = 0; i < script.styleSet.styles.Length; i++)
                {
                    styleNames[i] = script.styleSet.styles[i].name;
                }

                //finding popup selected
                if (script.style == null)
                {
                    selectedStyle = 0;
                }
                else
                {
                    for (int i = 0; i < styleNames.Length; i++)
                    {
                        if (styleNames[i] == script.styleName)
                        {
                            selectedStyle = i;
                        }
                    }
                }

                styleNames[0] = "None";

                int newSelected = EditorGUILayout.Popup("Style:", selectedStyle, styleNames);
                if (newSelected != selectedStyle)
                {
                    script.style     = script.styleSet.styles[newSelected];
                    script.styleName = script.style.name;
                    //script.styleNum = newSelected;
                }
            }

            script.customStyle = customStyle;

            EditorGUI.indentLevel = 0;
        }

        //position
        script.guiPosition = EditorGUILayout.Foldout(script.guiPosition, "Position");
        if (script.guiPosition)
        {
            EditorGUI.indentLevel = 1;

            script.useStylePlacement = EditorGUILayout.ToggleLeft("Use Style Placement", script.useStylePlacement);

            if (!script.useStylePlacement)
            {
                int preset = EditorGUILayout.Popup("Preset:", -1, positionPresets);
                switch (preset)
                {
                //case 0: if (script.style!=null) { script.relative.Set(script.style.relative); script.offset.Set(script.style.offset); script.layerOffset = script.style.layerOffset; } break;
                case 0: script.relative.Set(0, 100, 0, 100); script.offset.Set(0, 0, 0, 0); break;

                case 1: script.relative.Set(10, 90, 10, 90); script.offset.Set(10, -10, 10, -10); break;

                case 2: script.offset.right = -script.offset.left; script.offset.bottom = -script.offset.top; break;

                case 3: script.relative.Set(50, 50, 50, 50); script.offset.Set(20, -20, 20, -20); break;

                case 4: if (script.style != null)
                    {
                        script.offset.left = (int)(-script.style.fixedWidthSize * 0.5f); script.offset.right = (int)(script.style.fixedWidthSize * 0.5f);
                    }
                    break;

                case 5: if (script.style != null)
                    {
                        script.offset.top = (int)(-script.style.fixedHeightSize * 0.5f); script.offset.bottom = (int)(script.style.fixedHeightSize * 0.5f);
                    }
                    break;
                }

                InstantGuiInspector.DrawElementPosLabels("", "Left", "Right", "Top", "Bottom");
                script.relative = InstantGuiInspector.DrawElementPos("Relative:", script.relative);
                script.offset   = InstantGuiInspector.DrawElementPos("Offset:", script.offset);
                InstantGuiInspector.DrawElementPosLabels("Absolute:", script.absolute.left.ToString(), script.absolute.right.ToString(), script.absolute.top.ToString(), script.absolute.bottom.ToString());
                script.layerOffset = InstantGuiInspector.DrawLayerOffset("Layer Offset:", script.layerOffset);

                script.lockPosition = EditorGUILayout.Toggle("Lock Position", script.lockPosition);

                if (script.styleSet != null && script.style != null && script.style.name != null && script.style.name.Length > 0)
                {
                    InstantGuiInspector.DrawSaveToStyleButton("Set as Default in Style", script, false, true);
                }
            }
            EditorGUI.indentLevel = 0;
        }

        script.guiAttributes = EditorGUILayout.Foldout(script.guiAttributes, "Attributes");
        if (script.guiAttributes)
        {
            EditorGUI.indentLevel = 1;

            //EditorGUI.indentLevel = 20;
            script.dynamic   = EditorGUILayout.Toggle("Dynamic", script.dynamic);
            script.editable  = EditorGUILayout.Toggle("Editable", script.editable);
            script.pointed   = EditorGUILayout.Toggle("Pointed", script.pointed);
            script.disabled  = EditorGUILayout.Toggle("Disabled", script.disabled);
            script.activated = EditorGUILayout.Toggle("Activated", script.activated);
            script.pressed   = EditorGUILayout.Toggle("Pressed", script.pressed);
            //script.checkbutton = EditorGUILayout.Toggle("\tCheckbutton", script.checkbutton);
            script.check    = EditorGUILayout.Toggle("Checked", script.check);
            script.instant  = EditorGUILayout.Toggle("Instant", script.instant);
            script.password = EditorGUILayout.Toggle("Password", script.password);

            EditorGUI.indentLevel = 0;
        }

        if (EditorGUI.EndChangeCheck())
        {
            EditorUtility.SetDirty(script);
            InstantGui.instance.Update();
        }
        else
        {
            Undo.ClearUndo(script);
        }
    }
Esempio n. 5
0
    public override void  OnInspectorGUI()
    {
        InstantGuiTabs script = (InstantGuiTabs)target;

        base.OnInspectorGUI();
        //EditorGUILayout.Space();

        script.guiElementProps = EditorGUILayout.Foldout(script.guiElementProps, "Tabs");

        //some non-gui actions
        for (int i = 0; i < script.tabs.Length; i++)
        {
            //creating field if it does not exists
            if (!script.fields[i])
            {
                script.fields[i] = script.CreateField();
            }

            //fields names
            if (script.fields[i].transform.name.Length == 0)
            {
                script.fields[i].transform.name = script.tabs[i].transform.name + "_Field";
            }
        }

        if (script.guiElementProps)
        {
            EditorGUI.indentLevel = 1;

            script.selected = EditorGUILayout.IntField("Selected:", script.selected);

            //array
            Rect rect = GUILayoutUtility.GetRect(150, 16, "TextField");
            rect.width = rect.width * 0.5f - 40;
            EditorGUI.LabelField(rect, "Tabs:");
            rect.x += rect.width;
            EditorGUI.LabelField(rect, "Fields:");

            script.tabs = InstantGuiInspector.DrawElementsTable(script.tabs, script.fields);

            if (script.tabs.Length != script.fields.Length)             //changing fields count (creating if necessary)
            {
                InstantGuiElement[] newFields = new InstantGuiElement[script.tabs.Length];
                for (int j = 0; j < script.tabs.Length; j++)
                {
                    if (j >= script.fields.Length || !script.fields[j])
                    {
                        newFields[j] = script.CreateField(); continue;
                    }
                    newFields[j] = script.fields[j];
                }

                script.fields = newFields;
            }

            EditorGUI.indentLevel = 0;
        }

        InstantGuiInspector.DrawActivator("On Checked:", script.onChecked);
        InstantGuiInspector.DrawActivator("On Unchecked:", script.onUnchecked);
    }
Esempio n. 6
0
    public override void  OnInspectorGUI()
    {
        InstantGuiStyleSet script = (InstantGuiStyleSet)target;

        if (script.styles == null)
        {
            script.styles = new InstantGuiStyle[1]; script.styles[0] = new InstantGuiStyle();
        }

        EditorGUI.BeginChangeCheck();

        Undo.RecordObject(script, "InstantGui Style Change");

        Rect rect = new Rect(0, 0, 0, 0);

        if (script.styles != null)
        {
            for (int i = 1; i < script.styles.Length; i++)
            {
                //if (script.styles[i]==null) script.styles[i] = new InstantGuiStyle();

                EditorGUI.indentLevel = 0;
                rect = GUILayoutUtility.GetRect(50, 18, "TextField");

                //name
                rect.x += 10; rect.width -= 90;
                script.styles[i].name = EditorGUI.TextField(rect, script.styles[i].name);

                //move up
                rect.x = rect.width + 30; rect.width = 23;
                if (GUI.Button(rect, "∧ ") && i != 1)
                {
                    InstantGuiStyle tmp = script.styles[i - 1];
                    script.styles[i - 1] = script.styles[i];
                    script.styles[i]     = tmp;
                    EditorUtility.SetDirty(script);
                }

                //move down
                rect.x += 25;
                if (GUI.Button(rect, "∨ ") && i != script.styles.Length - 1)
                {
                    InstantGuiStyle tmp = script.styles[i + 1];
                    script.styles[i + 1] = script.styles[i];
                    script.styles[i]     = tmp;
                    EditorUtility.SetDirty(script);
                }

                //delete
                rect.x += 25;
                if (GUI.Button(rect, "✕ ") && EditorUtility.DisplayDialog("Remove Style?",
                                                                          "Are you sure you want to remove style?",
                                                                          "OK", "Cancel"))
                {
                    InstantGuiStyle[] newStyles = new InstantGuiStyle[script.styles.Length - 1];
                    int counter = 0;
                    for (int j = 0; j < script.styles.Length; j++)
                    {
                        if (j != i)
                        {
                            newStyles[counter] = script.styles[j];
                            counter++;
                        }
                    }
                    script.styles = newStyles;
                    EditorUtility.SetDirty(script);
                }
                if (i == script.styles.Length)
                {
                    break;
                }

                //foldout
                rect.x = 20; rect.width = 20;
                script.styles[i].show = EditorGUI.Foldout(rect, script.styles[i].show, "");


                //display style
                if (script.styles[i].show)
                {
                    InstantGuiInspector.DrawStyle(script.styles[i], true);
                }
            }
        }

        //adding
        rect   = GUILayoutUtility.GetRect(50, 18, "TextField");
        rect.x = rect.width - 70; rect.width = 73;
        if (GUI.Button(rect, "Add"))
        {
            InstantGuiStyle[] newStyles = new InstantGuiStyle[script.styles.Length + 1];
            for (int j = 0; j < script.styles.Length; j++)
            {
                newStyles[j] = script.styles[j];
            }
            newStyles[newStyles.Length - 1] = new InstantGuiStyle();
            script.styles = newStyles;
            EditorUtility.SetDirty(script);
        }

        if (EditorGUI.EndChangeCheck())
        {
            EditorUtility.SetDirty(target);
            if (InstantGui.instance != null)
            {
                InstantGui.instance.Update();
            }
        }
        //else Undo.ClearUndo(script);
    }
Esempio n. 7
0
    public override void  OnInspectorGUI()
    {
        InstantGuiList script = (InstantGuiList)target;

        base.OnInspectorGUI();

        script.guiElementProps = EditorGUILayout.Foldout(script.guiElementProps, "List");
        if (script.guiElementProps)
        {
            EditorGUI.indentLevel = 1;

            //showing labels array;
            script.guiShowLabels = EditorGUILayout.Foldout(script.guiShowLabels, "Labels");
            if (script.guiShowLabels)
            {
                script.labels = InstantGuiInspector.DrawStringArray(script.labels, 4);
            }

            script.lineHeight   = EditorGUILayout.IntField("Line Height:", script.lineHeight);
            script.selected     = EditorGUILayout.IntField("Selected:", script.selected);
            script.firstShown   = EditorGUILayout.IntField("First Shown:", script.firstShown);
            script.slider       = (InstantGuiSlider)EditorGUILayout.ObjectField("Slider:", script.slider, typeof(InstantGuiSlider), true);
            script.sliderMargin = EditorGUILayout.IntField("Slider Margin:", script.sliderMargin);

            //setting style
            //this is a clone of element editor section.
            string[] styleNames    = new string[script.styleSet.styles.Length];
            int      selectedStyle = -1;        //default if style could not be found

            //compiling popup array
            for (int i = 0; i < script.styleSet.styles.Length; i++)
            {
                styleNames[i] = script.styleSet.styles[i].name;
            }

            //finding popup selected
            if (script.elementStyle == null)
            {
                selectedStyle = 0;
            }
            else
            {
                for (int i = 0; i < styleNames.Length; i++)
                {
                    if (styleNames[i] == script.elementStyleName)
                    {
                        selectedStyle = i;
                    }
                }
            }

            styleNames[0] = "None";

            int newSelected = EditorGUILayout.Popup("Element Style:", selectedStyle, styleNames);
            if (newSelected != selectedStyle)
            {
                script.elementStyle     = script.styleSet.styles[newSelected];
                script.elementStyleName = script.elementStyle.name;
                //script.elementStyleNum = newSelected;
            }

            EditorGUI.indentLevel = 0;
        }
    }