コード例 #1
0
ファイル: FSGUIPopup.cs プロジェクト: vosechu/Firespitter
    private void drawElement(PopupElement element)
    {
        if (element.showElement)
        {
            if (element.style == null)
            {
                element.setStyle(GUI.skin.textArea); //GUI.skin.textArea
            }
            int activeElements = 0;
            if (element.useTitle) activeElements++;
            if (element.useInput) activeElements++;
            activeElements += element.buttons.Count;

            if (activeElements < 1)
                return;

            Rect subElementRect = new Rect(marginLeft, marginTop + lastSectionTop + lastElementTop, element.titleSize, element.height);

            if (element.useTitle)
            {
                if (subElementRect.width == 0)
                    subElementRect.width = (elementWidth / activeElements) - (subElementSpacing);
                if (element.useTextArea)
                    GUI.TextArea(subElementRect, element.titleText, element.style);
                else
                    GUI.Label(subElementRect, element.titleText, element.style);
                subElementRect.x += subElementRect.width + subElementSpacing;
            }

            if (element.useInput)
            {
                subElementRect.width = element.inputSize;
                if (subElementRect.width == 0)
                    subElementRect.width = (elementWidth / activeElements) - (subElementSpacing);
                element.inputText = GUI.TextField(subElementRect, element.inputText);
                subElementRect.x += subElementRect.width + subElementSpacing;
            }

            for (int i = 0; i < element.buttons.Count; i++)
            {
                subElementRect.width = element.buttons[i].buttonWidth;
                if (subElementRect.width == 0)
                    subElementRect.width = (elementWidth / activeElements) - (subElementSpacing);

                if (element.buttons[i].style == null)
                {
                    if (element.buttons[i].isGUIToggle)
                        element.buttons[i].style = new GUIStyle(GUI.skin.toggle);
                    else
                        element.buttons[i].style = new GUIStyle(GUI.skin.button);
                }

                bool resultTrue = false;
                if (element.buttons[i].isGUIToggle)
                {
                    resultTrue = GUI.Toggle(subElementRect, element.buttons[i].toggleState, element.buttons[i].buttonText, element.buttons[i].style);
                    element.buttons[i].toggleState = resultTrue;
                }
                else
                {
                    resultTrue = GUI.Button(subElementRect, element.buttons[i].buttonText, element.buttons[i].style);
                }

                if (resultTrue)
                {
                    if (element.buttons[i].genericFunction != null)
                        element.buttons[i].genericFunction();
                    if (element.buttons[i].buttonSpecificFunction != null)
                        element.buttons[i].buttonSpecificFunction(element.buttons[i]);
                    if (element.buttons[i].IDfunctionInt != null)
                        element.buttons[i].IDfunctionInt(element.buttons[i].buttonIDInt);
                    if (element.buttons[i].IDfunctionString != null)
                        element.buttons[i].IDfunctionString(element.buttons[i].buttonIDString);
                }
                subElementRect.x += subElementRect.width + subElementSpacing;
            }

            lastElementTop += element.height + lineSpacing;
        }
    }
コード例 #2
0
ファイル: FSGUIPopup.cs プロジェクト: vosechu/Firespitter
    private void drawElement(PopupElement element)
    {
        if (element.showElement)
        {
            if (element.style == null)
            {
                element.setStyle(GUI.skin.textArea); //GUI.skin.textArea
            }
            int activeElements = 0;
            if (element.useTitle)
            {
                activeElements++;
            }
            if (element.useInput)
            {
                activeElements++;
            }
            activeElements += element.buttons.Count;

            if (activeElements < 1)
            {
                return;
            }

            Rect subElementRect = new Rect(marginLeft, marginTop + lastSectionTop + lastElementTop, element.titleSize, element.height);

            if (element.useTitle)
            {
                if (subElementRect.width == 0)
                {
                    subElementRect.width = (elementWidth / activeElements) - (subElementSpacing);
                }
                if (element.useTextArea)
                {
                    GUI.TextArea(subElementRect, element.titleText, element.style);
                }
                else
                {
                    GUI.Label(subElementRect, element.titleText, element.style);
                }
                subElementRect.x += subElementRect.width + subElementSpacing;
            }

            if (element.useInput)
            {
                subElementRect.width = element.inputSize;
                if (subElementRect.width == 0)
                {
                    subElementRect.width = (elementWidth / activeElements) - (subElementSpacing);
                }
                element.inputText = GUI.TextField(subElementRect, element.inputText);
                subElementRect.x += subElementRect.width + subElementSpacing;
            }

            for (int i = 0; i < element.buttons.Count; i++)
            {
                subElementRect.width = element.buttons[i].buttonWidth;
                if (subElementRect.width == 0)
                {
                    subElementRect.width = (elementWidth / activeElements) - (subElementSpacing);
                }

                if (element.buttons[i].style == null)
                {
                    if (element.buttons[i].isGUIToggle)
                    {
                        element.buttons[i].style = new GUIStyle(GUI.skin.toggle);
                    }
                    else
                    {
                        element.buttons[i].style = new GUIStyle(GUI.skin.button);
                    }
                }

                bool resultTrue = false;
                if (element.buttons[i].isGUIToggle)
                {
                    resultTrue = GUI.Toggle(subElementRect, element.buttons[i].toggleState, element.buttons[i].buttonText, element.buttons[i].style);
                    element.buttons[i].toggleState = resultTrue;
                }
                else
                {
                    resultTrue = GUI.Button(subElementRect, element.buttons[i].buttonText, element.buttons[i].style);
                }

                if (resultTrue)
                {
                    if (element.buttons[i].genericFunction != null)
                    {
                        element.buttons[i].genericFunction();
                    }
                    if (element.buttons[i].buttonSpecificFunction != null)
                    {
                        element.buttons[i].buttonSpecificFunction(element.buttons[i]);
                    }
                    if (element.buttons[i].IDfunctionInt != null)
                    {
                        element.buttons[i].IDfunctionInt(element.buttons[i].buttonIDInt);
                    }
                    if (element.buttons[i].IDfunctionString != null)
                    {
                        element.buttons[i].IDfunctionString(element.buttons[i].buttonIDString);
                    }
                }
                subElementRect.x += subElementRect.width + subElementSpacing;
            }

            lastElementTop += element.height + lineSpacing;
        }
    }