GetPopupRect() private static method

private static GetPopupRect ( Rect position ) : Rect
position Rect
return Rect
示例#1
0
        public void GUIMinMaxGradient(GUIContent label, SerializedMinMaxGradient minMaxGradient)
        {
            MinMaxGradientState state = minMaxGradient.state;
            bool flag      = state >= MinMaxGradientState.k_RandomBetweenTwoColors;
            Rect rect      = GUILayoutUtility.GetRect(0f, (float)((!flag) ? 13 : 26));
            Rect popupRect = ModuleUI.GetPopupRect(rect);

            rect = ModuleUI.SubtractPopupWidth(rect);
            Rect rect2 = ModuleUI.PrefixLabel(rect, label);

            rect2.height = 13f;
            switch (state)
            {
            case MinMaxGradientState.k_Color:
                ModuleUI.GUIColor(rect2, minMaxGradient.m_MaxColor);
                break;

            case MinMaxGradientState.k_Gradient:
                EditorGUI.GradientField(rect2, minMaxGradient.m_MaxGradient);
                break;

            case MinMaxGradientState.k_RandomBetweenTwoColors:
                ModuleUI.GUIColor(rect2, minMaxGradient.m_MaxColor);
                rect2.y += rect2.height;
                ModuleUI.GUIColor(rect2, minMaxGradient.m_MinColor);
                break;

            case MinMaxGradientState.k_RandomBetweenTwoGradients:
                EditorGUI.GradientField(rect2, minMaxGradient.m_MaxGradient);
                rect2.y += rect2.height;
                EditorGUI.GradientField(rect2, minMaxGradient.m_MinGradient);
                break;
            }
            ModuleUI.GUIMMGradientPopUp(popupRect, minMaxGradient);
        }
示例#2
0
        private void DrawBurstListElementCallback(Rect rect, int index, bool isActive, bool isFocused)
        {
            SerializedProperty arrayElementAtIndex = this.m_Bursts.GetArrayElementAtIndex(index);
            SerializedProperty floatProp           = arrayElementAtIndex.FindPropertyRelative("time");
            SerializedProperty serializedProperty  = arrayElementAtIndex.FindPropertyRelative("cycleCount");
            SerializedProperty floatProp2          = arrayElementAtIndex.FindPropertyRelative("repeatInterval");

            rect.width -= 45f;
            rect.width /= 4f;
            ModuleUI.FloatDraggable(rect, floatProp, 1f, 15f, "n3");
            rect.x     += rect.width;
            rect        = ModuleUI.GUIMinMaxCurveInline(rect, this.m_BurstCountCurves[index], 15f);
            rect.x     += rect.width;
            rect.width -= 13f;
            if (!serializedProperty.hasMultipleDifferentValues && serializedProperty.intValue == 0)
            {
                rect.x     += 15f;
                rect.width -= 15f;
                EditorGUI.LabelField(rect, EmissionModuleUI.s_Texts.burstCycleCountInfinite, ParticleSystemStyles.Get().label);
            }
            else
            {
                ModuleUI.IntDraggable(rect, null, serializedProperty, 15f);
            }
            rect.width += 13f;
            Rect popupRect = ModuleUI.GetPopupRect(rect);

            EmissionModuleUI.GUIMMModePopUp(popupRect, serializedProperty);
            rect.x += rect.width;
            ModuleUI.FloatDraggable(rect, floatProp2, 1f, 15f, "n3");
            rect.x += rect.width;
        }
示例#3
0
        public static void GUIMinMaxCurve(GUIContent label, SerializedMinMaxCurve mmCurve)
        {
            Rect             controlRect = ModuleUI.GetControlRect(13);
            Rect             popupRect   = ModuleUI.GetPopupRect(controlRect);
            Rect             rect1       = ModuleUI.SubtractPopupWidth(controlRect);
            Rect             position    = ModuleUI.PrefixLabel(rect1, label);
            MinMaxCurveState state       = mmCurve.state;

            switch (state)
            {
            case MinMaxCurveState.k_Scalar:
                float a = ModuleUI.FloatDraggable(rect1, mmCurve.scalar, mmCurve.m_RemapValue, EditorGUIUtility.labelWidth);
                if (!mmCurve.signedRange)
                {
                    mmCurve.scalar.floatValue = Mathf.Max(a, 0.0f);
                    break;
                }
                break;

            case MinMaxCurveState.k_TwoScalars:
                Rect rect2 = position;
                rect2.width = (float)(((double)position.width - 20.0) * 0.5);
                float minConstant = mmCurve.minConstant;
                float maxConstant = mmCurve.maxConstant;
                Rect  rect3       = rect2;
                rect3.xMin -= 20f;
                EditorGUI.BeginChangeCheck();
                float num1 = ModuleUI.FloatDraggable(rect3, minConstant, mmCurve.m_RemapValue, 20f, "g5");
                if (EditorGUI.EndChangeCheck())
                {
                    mmCurve.minConstant = num1;
                }
                rect3.x += rect2.width + 20f;
                EditorGUI.BeginChangeCheck();
                float num2 = ModuleUI.FloatDraggable(rect3, maxConstant, mmCurve.m_RemapValue, 20f, "g5");
                if (EditorGUI.EndChangeCheck())
                {
                    mmCurve.maxConstant = num2;
                    break;
                }
                break;

            default:
                Rect ranges = !mmCurve.signedRange ? ModuleUI.kUnsignedRange : ModuleUI.kSignedRange;
                SerializedProperty minCurve = state != MinMaxCurveState.k_TwoCurves ? (SerializedProperty)null : mmCurve.minCurve;
                ModuleUI.GUICurveField(position, mmCurve.maxCurve, minCurve, ModuleUI.GetColor(mmCurve), ranges, new ModuleUI.CurveFieldMouseDownCallback(mmCurve.OnCurveAreaMouseDown));
                break;
            }
            ModuleUI.GUIMMCurveStateList(popupRect, mmCurve);
        }
示例#4
0
        public static void GUIMinMaxCurve(GUIContent label, SerializedMinMaxCurve mmCurve)
        {
            Rect rect      = ModuleUI.GetControlRect(13);
            Rect popupRect = ModuleUI.GetPopupRect(rect);

            rect = ModuleUI.SubtractPopupWidth(rect);
            Rect             rect2 = ModuleUI.PrefixLabel(rect, label);
            MinMaxCurveState state = mmCurve.state;

            if (state == MinMaxCurveState.k_Scalar)
            {
                float a = ModuleUI.FloatDraggable(rect, mmCurve.scalar, mmCurve.m_RemapValue, EditorGUIUtility.labelWidth);
                if (!mmCurve.signedRange)
                {
                    mmCurve.scalar.floatValue = Mathf.Max(a, 0f);
                }
            }
            else
            {
                if (state == MinMaxCurveState.k_TwoScalars)
                {
                    Rect rect3 = rect2;
                    rect3.width = (rect2.width - 20f) * 0.5f;
                    float num   = mmCurve.minConstant;
                    float num2  = mmCurve.maxConstant;
                    Rect  rect4 = rect3;
                    rect4.xMin -= 20f;
                    EditorGUI.BeginChangeCheck();
                    num = ModuleUI.FloatDraggable(rect4, num, mmCurve.m_RemapValue, 20f, "g5");
                    if (EditorGUI.EndChangeCheck())
                    {
                        mmCurve.minConstant = num;
                    }
                    rect4.x += rect3.width + 20f;
                    EditorGUI.BeginChangeCheck();
                    num2 = ModuleUI.FloatDraggable(rect4, num2, mmCurve.m_RemapValue, 20f, "g5");
                    if (EditorGUI.EndChangeCheck())
                    {
                        mmCurve.maxConstant = num2;
                    }
                }
                else
                {
                    Rect ranges = (!mmCurve.signedRange) ? ModuleUI.kUnsignedRange : ModuleUI.kSignedRange;
                    SerializedProperty minCurve = (state != MinMaxCurveState.k_TwoCurves) ? null : mmCurve.minCurve;
                    ModuleUI.GUICurveField(rect2, mmCurve.maxCurve, minCurve, ModuleUI.GetColor(mmCurve), ranges, new ModuleUI.CurveFieldMouseDownCallback(mmCurve.OnCurveAreaMouseDown));
                }
            }
            ModuleUI.GUIMMCurveStateList(popupRect, mmCurve);
        }
示例#5
0
        public void GUITripleMinMaxCurve(GUIContent label, GUIContent x, SerializedMinMaxCurve xCurve, GUIContent y, SerializedMinMaxCurve yCurve, GUIContent z, SerializedMinMaxCurve zCurve, SerializedProperty randomizePerFrame)
        {
            MinMaxCurveState state = xCurve.state;
            bool             flag  = label != GUIContent.none;
            int num = (!flag) ? 1 : 2;

            if (state == MinMaxCurveState.k_TwoScalars)
            {
                num++;
            }
            Rect rect      = ModuleUI.GetControlRect(13 * num);
            Rect popupRect = ModuleUI.GetPopupRect(rect);

            rect = ModuleUI.SubtractPopupWidth(rect);
            Rect  rect2 = rect;
            float num2  = (rect.width - 8f) / 3f;

            if (num > 1)
            {
                rect2.height = 13f;
            }
            if (flag)
            {
                ModuleUI.PrefixLabel(rect, label);
                rect2.y += rect2.height;
            }
            rect2.width = num2;
            GUIContent[] array = new GUIContent[]
            {
                x,
                y,
                z
            };
            SerializedMinMaxCurve[] array2 = new SerializedMinMaxCurve[]
            {
                xCurve,
                yCurve,
                zCurve
            };
            if (state == MinMaxCurveState.k_Scalar)
            {
                for (int i = 0; i < array2.Length; i++)
                {
                    ModuleUI.Label(rect2, array[i]);
                    float a = ModuleUI.FloatDraggable(rect2, array2[i].scalar, array2[i].m_RemapValue, 10f);
                    if (!array2[i].signedRange)
                    {
                        array2[i].scalar.floatValue = Mathf.Max(a, 0f);
                    }
                    rect2.x += num2 + 4f;
                }
            }
            else if (state == MinMaxCurveState.k_TwoScalars)
            {
                for (int j = 0; j < array2.Length; j++)
                {
                    ModuleUI.Label(rect2, array[j]);
                    float num3 = array2[j].minConstant;
                    float num4 = array2[j].maxConstant;
                    EditorGUI.BeginChangeCheck();
                    num4 = ModuleUI.FloatDraggable(rect2, num4, array2[j].m_RemapValue, 10f, "g5");
                    if (EditorGUI.EndChangeCheck())
                    {
                        array2[j].maxConstant = num4;
                    }
                    rect2.y += 13f;
                    EditorGUI.BeginChangeCheck();
                    num3 = ModuleUI.FloatDraggable(rect2, num3, array2[j].m_RemapValue, 10f, "g5");
                    if (EditorGUI.EndChangeCheck())
                    {
                        array2[j].minConstant = num3;
                    }
                    rect2.x += num2 + 4f;
                    rect2.y -= 13f;
                }
            }
            else
            {
                rect2.width = num2;
                Rect ranges = (!xCurve.signedRange) ? ModuleUI.kUnsignedRange : ModuleUI.kSignedRange;
                for (int k = 0; k < array2.Length; k++)
                {
                    ModuleUI.Label(rect2, array[k]);
                    Rect position = rect2;
                    position.xMin += 10f;
                    SerializedProperty minCurve = (state != MinMaxCurveState.k_TwoCurves) ? null : array2[k].minCurve;
                    ModuleUI.GUICurveField(position, array2[k].maxCurve, minCurve, ModuleUI.GetColor(array2[k]), ranges, new ModuleUI.CurveFieldMouseDownCallback(array2[k].OnCurveAreaMouseDown));
                    rect2.x += num2 + 4f;
                }
            }
            ModuleUI.GUIMMCurveStateList(popupRect, array2);
        }
示例#6
0
        public void GUITripleMinMaxCurve(GUIContent label, GUIContent x, SerializedMinMaxCurve xCurve, GUIContent y, SerializedMinMaxCurve yCurve, GUIContent z, SerializedMinMaxCurve zCurve, SerializedProperty randomizePerFrame)
        {
            MinMaxCurveState state = xCurve.state;
            bool             flag  = label != GUIContent.none;
            int num1 = !flag ? 1 : 2;

            if (state == MinMaxCurveState.k_TwoScalars)
            {
                ++num1;
            }
            Rect  controlRect   = ModuleUI.GetControlRect(13 * num1);
            Rect  popupRect     = ModuleUI.GetPopupRect(controlRect);
            Rect  totalPosition = ModuleUI.SubtractPopupWidth(controlRect);
            Rect  rect          = totalPosition;
            float num2          = (float)(((double)totalPosition.width - 8.0) / 3.0);

            if (num1 > 1)
            {
                rect.height = 13f;
            }
            if (flag)
            {
                ModuleUI.PrefixLabel(totalPosition, label);
                rect.y += rect.height;
            }
            rect.width = num2;
            GUIContent[] guiContentArray = new GUIContent[3] {
                x, y, z
            };
            SerializedMinMaxCurve[] minMaxCurves = new SerializedMinMaxCurve[3] {
                xCurve, yCurve, zCurve
            };
            if (state == MinMaxCurveState.k_Scalar)
            {
                for (int index = 0; index < minMaxCurves.Length; ++index)
                {
                    ModuleUI.Label(rect, guiContentArray[index]);
                    float a = ModuleUI.FloatDraggable(rect, minMaxCurves[index].scalar, minMaxCurves[index].m_RemapValue, 10f);
                    if (!minMaxCurves[index].signedRange)
                    {
                        minMaxCurves[index].scalar.floatValue = Mathf.Max(a, 0.0f);
                    }
                    rect.x += num2 + 4f;
                }
            }
            else if (state == MinMaxCurveState.k_TwoScalars)
            {
                for (int index = 0; index < minMaxCurves.Length; ++index)
                {
                    ModuleUI.Label(rect, guiContentArray[index]);
                    float minConstant = minMaxCurves[index].minConstant;
                    float maxConstant = minMaxCurves[index].maxConstant;
                    EditorGUI.BeginChangeCheck();
                    float num3 = ModuleUI.FloatDraggable(rect, maxConstant, minMaxCurves[index].m_RemapValue, 10f, "g5");
                    if (EditorGUI.EndChangeCheck())
                    {
                        minMaxCurves[index].maxConstant = num3;
                    }
                    rect.y += 13f;
                    EditorGUI.BeginChangeCheck();
                    float num4 = ModuleUI.FloatDraggable(rect, minConstant, minMaxCurves[index].m_RemapValue, 10f, "g5");
                    if (EditorGUI.EndChangeCheck())
                    {
                        minMaxCurves[index].minConstant = num4;
                    }
                    rect.x += num2 + 4f;
                    rect.y -= 13f;
                }
            }
            else
            {
                rect.width = num2;
                Rect ranges = !xCurve.signedRange ? ModuleUI.kUnsignedRange : ModuleUI.kSignedRange;
                for (int index = 0; index < minMaxCurves.Length; ++index)
                {
                    ModuleUI.Label(rect, guiContentArray[index]);
                    Rect position = rect;
                    position.xMin += 10f;
                    SerializedProperty minCurve = state != MinMaxCurveState.k_TwoCurves ? (SerializedProperty)null : minMaxCurves[index].minCurve;
                    ModuleUI.GUICurveField(position, minMaxCurves[index].maxCurve, minCurve, ModuleUI.GetColor(minMaxCurves[index]), ranges, new ModuleUI.CurveFieldMouseDownCallback(minMaxCurves[index].OnCurveAreaMouseDown));
                    rect.x += num2 + 4f;
                }
            }
            ModuleUI.GUIMMCurveStateList(popupRect, minMaxCurves);
        }