DoSplitter() public method

public DoSplitter ( int i1, int i2, int diff ) : void
i1 int
i2 int
diff int
return void
示例#1
0
        internal override void Reflow()
        {
            SetupSplitter();

            for (int k = 0; k < children.Length - 1; k++)
            {
                splitState.DoSplitter(k, k + 1, 0);
            }
            splitState.RelativeToRealSizes(vertical ? GUIUtility.RoundToPixelGrid(position.height) : GUIUtility.RoundToPixelGrid(position.width));
            SetupRectsFromSplitter();
        }
        internal override void Reflow()
        {
            SetupSplitter();

            for (int k = 0; k < children.Length - 1; k++)
            {
                splitState.DoSplitter(k, k + 1, 0);
            }
            splitState.RelativeToRealSizes(vertical ? (int)position.height : (int)position.width);
            SetupRectsFromSplitter();
        }
 public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
 {
   SplitterGUILayout.GUISplitterGroup guiSplitterGroup = (SplitterGUILayout.GUISplitterGroup) GUILayoutUtility.BeginLayoutGroup(style, (GUILayoutOption[]) null, typeof (SplitterGUILayout.GUISplitterGroup));
   state.ID = GUIUtility.GetControlID(SplitterGUILayout.splitterHash, FocusType.Native);
   switch (Event.current.GetTypeForControl(state.ID))
   {
     case EventType.MouseDown:
       if (Event.current.button != 0 || Event.current.clickCount != 1)
         break;
       int num1 = !guiSplitterGroup.isVertical ? (int) guiSplitterGroup.rect.x : (int) guiSplitterGroup.rect.y;
       int num2 = !guiSplitterGroup.isVertical ? (int) Event.current.mousePosition.x : (int) Event.current.mousePosition.y;
       for (int index = 0; index < state.relativeSizes.Length - 1; ++index)
       {
         if ((!guiSplitterGroup.isVertical ? new Rect(state.xOffset + (float) num1 + (float) state.realSizes[index] - (float) (state.splitSize / 2), guiSplitterGroup.rect.y, (float) state.splitSize, guiSplitterGroup.rect.height) : new Rect(state.xOffset + guiSplitterGroup.rect.x, (float) (num1 + state.realSizes[index] - state.splitSize / 2), guiSplitterGroup.rect.width, (float) state.splitSize)).Contains(Event.current.mousePosition))
         {
           state.splitterInitialOffset = num2;
           state.currentActiveSplitter = index;
           GUIUtility.hotControl = state.ID;
           Event.current.Use();
           break;
         }
         num1 += state.realSizes[index];
       }
       break;
     case EventType.MouseUp:
       if (GUIUtility.hotControl != state.ID)
         break;
       GUIUtility.hotControl = 0;
       state.currentActiveSplitter = -1;
       state.RealToRelativeSizes();
       Event.current.Use();
       break;
     case EventType.MouseDrag:
       if (GUIUtility.hotControl != state.ID || state.currentActiveSplitter < 0)
         break;
       int num3 = !guiSplitterGroup.isVertical ? (int) Event.current.mousePosition.x : (int) Event.current.mousePosition.y;
       int diff = num3 - state.splitterInitialOffset;
       if (diff != 0)
       {
         state.splitterInitialOffset = num3;
         state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, diff);
       }
       Event.current.Use();
       break;
     case EventType.Repaint:
       int num4 = !guiSplitterGroup.isVertical ? (int) guiSplitterGroup.rect.x : (int) guiSplitterGroup.rect.y;
       for (int index = 0; index < state.relativeSizes.Length - 1; ++index)
       {
         EditorGUIUtility.AddCursorRect(!guiSplitterGroup.isVertical ? new Rect(state.xOffset + (float) num4 + (float) state.realSizes[index] - (float) (state.splitSize / 2), guiSplitterGroup.rect.y, (float) state.splitSize, guiSplitterGroup.rect.height) : new Rect(state.xOffset + guiSplitterGroup.rect.x, (float) (num4 + state.realSizes[index] - state.splitSize / 2), guiSplitterGroup.rect.width, (float) state.splitSize), !guiSplitterGroup.isVertical ? MouseCursor.SplitResizeLeftRight : MouseCursor.ResizeVertical, state.ID);
         num4 += state.realSizes[index];
       }
       break;
     case EventType.Layout:
       guiSplitterGroup.state = state;
       guiSplitterGroup.resetCoords = false;
       guiSplitterGroup.isVertical = vertical;
       guiSplitterGroup.ApplyOptions(options);
       break;
   }
 }
示例#4
0
            public override void SetHorizontal(float x, float width)
            {
                if (!isVertical)
                {
                    int k;

                    state.xOffset = x;

                    float alignedWidth = GUIUtility.RoundToPixelGrid(width);
                    if (alignedWidth != state.lastTotalSize)
                    {
                        state.RelativeToRealSizes(alignedWidth);
                        state.lastTotalSize = alignedWidth;

                        // maintain constraints while resizing
                        for (k = 0; k < state.realSizes.Length - 1; k++)
                        {
                            state.DoSplitter(k, k + 1, 0);
                        }
                    }

                    k = 0;

                    foreach (GUILayoutEntry i in entries)
                    {
                        float thisSize = state.realSizes[k];

                        i.SetHorizontal(GUIUtility.RoundToPixelGrid(x), GUIUtility.RoundToPixelGrid(thisSize));
                        x += thisSize + spacing;
                        k++;
                    }
                }
                else
                {
                    base.SetHorizontal(x, width);
                }
            }
示例#5
0
        public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
        {
            float pos;
            var   g = (GUISplitterGroup)GUILayoutUtility.BeginLayoutGroup(style, null, typeof(GUISplitterGroup));

            state.ID = GUIUtility.GetControlID(splitterHash, FocusType.Passive);

            switch (Event.current.GetTypeForControl(state.ID))
            {
            case EventType.Layout:
            {
                g.state       = state;
                g.resetCoords = false;
                g.isVertical  = vertical;
                g.ApplyOptions(options);
                break;
            }

            case EventType.MouseDown:
            {
                if ((Event.current.button == 0) && (Event.current.clickCount == 1))
                {
                    float cursor = GUIUtility.RoundToPixelGrid(g.isVertical ? g.rect.y : g.rect.x);
                    pos = GUIUtility.RoundToPixelGrid(g.isVertical ? Event.current.mousePosition.y : Event.current.mousePosition.x);

                    for (int i = 0; i < state.relativeSizes.Length - 1; i++)
                    {
                        Rect splitterRect = g.isVertical ?
                                            new Rect(state.xOffset + g.rect.x, cursor + state.realSizes[i] - state.splitSize / 2, g.rect.width, state.splitSize) :
                                            new Rect(state.xOffset + cursor + state.realSizes[i] - state.splitSize / 2, g.rect.y, state.splitSize, g.rect.height);

                        if (GUIUtility.HitTest(splitterRect, Event.current))
                        {
                            state.splitterInitialOffset = pos;
                            state.currentActiveSplitter = i;
                            GUIUtility.hotControl       = state.ID;
                            Event.current.Use();
                            break;
                        }

                        cursor = GUIUtility.RoundToPixelGrid(cursor + state.realSizes[i]);
                    }
                }
                break;
            }

            case EventType.MouseDrag:
            {
                if ((GUIUtility.hotControl == state.ID) && (state.currentActiveSplitter >= 0))
                {
                    pos = g.isVertical ? Event.current.mousePosition.y : Event.current.mousePosition.x;
                    GUIUtility.RoundToPixelGrid(pos);
                    float diff = pos - state.splitterInitialOffset;

                    if (diff != 0)
                    {
                        state.splitterInitialOffset = pos;
                        state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, diff);
                    }

                    Event.current.Use();
                }
                break;
            }

            case EventType.MouseUp:
            {
                if (GUIUtility.hotControl == state.ID)
                {
                    GUIUtility.hotControl       = 0;
                    state.currentActiveSplitter = -1;
                    state.RealToRelativeSizes();
                    Event.current.Use();
                }
                break;
            }

            case EventType.Repaint:
            {
                float cursor = GUIUtility.RoundToPixelGrid(g.isVertical ? g.rect.y : g.rect.x);

                for (var i = 0; i < state.relativeSizes.Length - 1; i++)
                {
                    var splitterRect = g.isVertical ?
                                       new Rect(state.xOffset + g.rect.x, cursor + state.realSizes[i] - state.splitSize / 2, g.rect.width, state.splitSize) :
                                       new Rect(state.xOffset + cursor + state.realSizes[i] - state.splitSize / 2, g.rect.y, state.splitSize, g.rect.height);

                    EditorGUIUtility.AddCursorRect(splitterRect, g.isVertical ? MouseCursor.ResizeVertical : MouseCursor.SplitResizeLeftRight, state.ID);

                    cursor += state.realSizes[i];
                }
            }

            break;
            }
        }
        public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
        {
            SplitterGUILayout.GUISplitterGroup gUISplitterGroup = (SplitterGUILayout.GUISplitterGroup)GUILayoutUtility.BeginLayoutGroup(style, null, typeof(SplitterGUILayout.GUISplitterGroup));
            state.ID = GUIUtility.GetControlID(SplitterGUILayout.splitterHash, FocusType.Native);
            switch (Event.current.GetTypeForControl(state.ID))
            {
            case EventType.MouseDown:
                if (Event.current.button == 0 && Event.current.clickCount == 1)
                {
                    int num  = (!gUISplitterGroup.isVertical) ? ((int)gUISplitterGroup.rect.x) : ((int)gUISplitterGroup.rect.y);
                    int num2 = (!gUISplitterGroup.isVertical) ? ((int)Event.current.mousePosition.x) : ((int)Event.current.mousePosition.y);
                    for (int i = 0; i < state.relativeSizes.Length - 1; i++)
                    {
                        if (((!gUISplitterGroup.isVertical) ? new Rect(state.xOffset + (float)num + (float)state.realSizes[i] - (float)(state.splitSize / 2), gUISplitterGroup.rect.y, (float)state.splitSize, gUISplitterGroup.rect.height) : new Rect(state.xOffset + gUISplitterGroup.rect.x, (float)(num + state.realSizes[i] - state.splitSize / 2), gUISplitterGroup.rect.width, (float)state.splitSize)).Contains(Event.current.mousePosition))
                        {
                            state.splitterInitialOffset = num2;
                            state.currentActiveSplitter = i;
                            GUIUtility.hotControl       = state.ID;
                            Event.current.Use();
                            break;
                        }
                        num += state.realSizes[i];
                    }
                }
                break;

            case EventType.MouseUp:
                if (GUIUtility.hotControl == state.ID)
                {
                    GUIUtility.hotControl       = 0;
                    state.currentActiveSplitter = -1;
                    state.RealToRelativeSizes();
                    Event.current.Use();
                }
                break;

            case EventType.MouseDrag:
                if (GUIUtility.hotControl == state.ID && state.currentActiveSplitter >= 0)
                {
                    int num2 = (!gUISplitterGroup.isVertical) ? ((int)Event.current.mousePosition.x) : ((int)Event.current.mousePosition.y);
                    int num3 = num2 - state.splitterInitialOffset;
                    if (num3 != 0)
                    {
                        state.splitterInitialOffset = num2;
                        state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, num3);
                    }
                    Event.current.Use();
                }
                break;

            case EventType.Repaint:
            {
                int num4 = (!gUISplitterGroup.isVertical) ? ((int)gUISplitterGroup.rect.x) : ((int)gUISplitterGroup.rect.y);
                for (int j = 0; j < state.relativeSizes.Length - 1; j++)
                {
                    Rect position = (!gUISplitterGroup.isVertical) ? new Rect(state.xOffset + (float)num4 + (float)state.realSizes[j] - (float)(state.splitSize / 2), gUISplitterGroup.rect.y, (float)state.splitSize, gUISplitterGroup.rect.height) : new Rect(state.xOffset + gUISplitterGroup.rect.x, (float)(num4 + state.realSizes[j] - state.splitSize / 2), gUISplitterGroup.rect.width, (float)state.splitSize);
                    EditorGUIUtility.AddCursorRect(position, (!gUISplitterGroup.isVertical) ? MouseCursor.SplitResizeLeftRight : MouseCursor.ResizeVertical, state.ID);
                    num4 += state.realSizes[j];
                }
                break;
            }

            case EventType.Layout:
                gUISplitterGroup.state       = state;
                gUISplitterGroup.resetCoords = false;
                gUISplitterGroup.isVertical  = vertical;
                gUISplitterGroup.ApplyOptions(options);
                break;
            }
        }
        public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
        {
            int num;
            GUISplitterGroup group = (GUISplitterGroup)GUILayoutUtility.BeginLayoutGroup(style, null, typeof(GUISplitterGroup));

            state.ID = GUIUtility.GetControlID(splitterHash, FocusType.Native);
            switch (Event.current.GetTypeForControl(state.ID))
            {
            case EventType.MouseDown:
                if ((Event.current.button == 0) && (Event.current.clickCount == 1))
                {
                    int num2 = !group.isVertical ? ((int)group.rect.x) : ((int)group.rect.y);
                    num = !group.isVertical ? ((int)Event.current.mousePosition.x) : ((int)Event.current.mousePosition.y);
                    for (int i = 0; i < (state.relativeSizes.Length - 1); i++)
                    {
                        Rect rect = !group.isVertical ? new Rect(((state.xOffset + num2) + state.realSizes[i]) - (state.splitSize / 2), group.rect.y, (float)state.splitSize, group.rect.height) : new Rect(state.xOffset + group.rect.x, (float)((num2 + state.realSizes[i]) - (state.splitSize / 2)), group.rect.width, (float)state.splitSize);
                        if (rect.Contains(Event.current.mousePosition))
                        {
                            state.splitterInitialOffset = num;
                            state.currentActiveSplitter = i;
                            GUIUtility.hotControl       = state.ID;
                            Event.current.Use();
                            break;
                        }
                        num2 += state.realSizes[i];
                    }
                }
                break;

            case EventType.MouseUp:
                if (GUIUtility.hotControl == state.ID)
                {
                    GUIUtility.hotControl       = 0;
                    state.currentActiveSplitter = -1;
                    state.RealToRelativeSizes();
                    Event.current.Use();
                }
                break;

            case EventType.MouseDrag:
                if ((GUIUtility.hotControl == state.ID) && (state.currentActiveSplitter >= 0))
                {
                    num = !group.isVertical ? ((int)Event.current.mousePosition.x) : ((int)Event.current.mousePosition.y);
                    int diff = num - state.splitterInitialOffset;
                    if (diff != 0)
                    {
                        state.splitterInitialOffset = num;
                        state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, diff);
                    }
                    Event.current.Use();
                }
                break;

            case EventType.Repaint:
            {
                int num5 = !group.isVertical ? ((int)group.rect.x) : ((int)group.rect.y);
                for (int j = 0; j < (state.relativeSizes.Length - 1); j++)
                {
                    Rect position = !group.isVertical ? new Rect(((state.xOffset + num5) + state.realSizes[j]) - (state.splitSize / 2), group.rect.y, (float)state.splitSize, group.rect.height) : new Rect(state.xOffset + group.rect.x, (float)((num5 + state.realSizes[j]) - (state.splitSize / 2)), group.rect.width, (float)state.splitSize);
                    EditorGUIUtility.AddCursorRect(position, !group.isVertical ? MouseCursor.SplitResizeLeftRight : MouseCursor.ResizeVertical, state.ID);
                    num5 += state.realSizes[j];
                }
                break;
            }

            case EventType.Layout:
                group.state       = state;
                group.resetCoords = false;
                group.isVertical  = vertical;
                group.ApplyOptions(options);
                break;
            }
        }
        public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
        {
            SplitterGUILayout.GUISplitterGroup guiSplitterGroup = (SplitterGUILayout.GUISplitterGroup)GUILayoutUtility.BeginLayoutGroup(style, (GUILayoutOption[])null, typeof(SplitterGUILayout.GUISplitterGroup));
            state.ID = GUIUtility.GetControlID(SplitterGUILayout.splitterHash, FocusType.Native);
            switch (Event.current.GetTypeForControl(state.ID))
            {
            case EventType.MouseDown:
                if (Event.current.button != 0 || Event.current.clickCount != 1)
                {
                    break;
                }
                int num1 = !guiSplitterGroup.isVertical ? (int)guiSplitterGroup.rect.x : (int)guiSplitterGroup.rect.y;
                int num2 = !guiSplitterGroup.isVertical ? (int)Event.current.mousePosition.x : (int)Event.current.mousePosition.y;
                for (int index = 0; index < state.relativeSizes.Length - 1; ++index)
                {
                    if ((!guiSplitterGroup.isVertical ? new Rect(state.xOffset + (float)num1 + (float)state.realSizes[index] - (float)(state.splitSize / 2), guiSplitterGroup.rect.y, (float)state.splitSize, guiSplitterGroup.rect.height) : new Rect(state.xOffset + guiSplitterGroup.rect.x, (float)(num1 + state.realSizes[index] - state.splitSize / 2), guiSplitterGroup.rect.width, (float)state.splitSize)).Contains(Event.current.mousePosition))
                    {
                        state.splitterInitialOffset = num2;
                        state.currentActiveSplitter = index;
                        GUIUtility.hotControl       = state.ID;
                        Event.current.Use();
                        break;
                    }
                    num1 += state.realSizes[index];
                }
                break;

            case EventType.MouseUp:
                if (GUIUtility.hotControl != state.ID)
                {
                    break;
                }
                GUIUtility.hotControl       = 0;
                state.currentActiveSplitter = -1;
                state.RealToRelativeSizes();
                Event.current.Use();
                break;

            case EventType.MouseDrag:
                if (GUIUtility.hotControl != state.ID || state.currentActiveSplitter < 0)
                {
                    break;
                }
                int num3 = !guiSplitterGroup.isVertical ? (int)Event.current.mousePosition.x : (int)Event.current.mousePosition.y;
                int diff = num3 - state.splitterInitialOffset;
                if (diff != 0)
                {
                    state.splitterInitialOffset = num3;
                    state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, diff);
                }
                Event.current.Use();
                break;

            case EventType.Repaint:
                int num4 = !guiSplitterGroup.isVertical ? (int)guiSplitterGroup.rect.x : (int)guiSplitterGroup.rect.y;
                for (int index = 0; index < state.relativeSizes.Length - 1; ++index)
                {
                    EditorGUIUtility.AddCursorRect(!guiSplitterGroup.isVertical ? new Rect(state.xOffset + (float)num4 + (float)state.realSizes[index] - (float)(state.splitSize / 2), guiSplitterGroup.rect.y, (float)state.splitSize, guiSplitterGroup.rect.height) : new Rect(state.xOffset + guiSplitterGroup.rect.x, (float)(num4 + state.realSizes[index] - state.splitSize / 2), guiSplitterGroup.rect.width, (float)state.splitSize), !guiSplitterGroup.isVertical ? MouseCursor.SplitResizeLeftRight : MouseCursor.ResizeVertical, state.ID);
                    num4 += state.realSizes[index];
                }
                break;

            case EventType.Layout:
                guiSplitterGroup.state       = state;
                guiSplitterGroup.resetCoords = false;
                guiSplitterGroup.isVertical  = vertical;
                guiSplitterGroup.ApplyOptions(options);
                break;
            }
        }
示例#9
0
        public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
        {
            int num;
            GUISplitterGroup group = (GUISplitterGroup) GUILayoutUtility.BeginLayoutGroup(style, null, typeof(GUISplitterGroup));
            state.ID = GUIUtility.GetControlID(splitterHash, FocusType.Native);
            switch (Event.current.type)
            {
                case EventType.MouseDown:
                    if ((Event.current.button == 0) && (Event.current.clickCount == 1))
                    {
                        int num2 = !group.isVertical ? ((int) group.rect.x) : ((int) group.rect.y);
                        num = !group.isVertical ? ((int) Event.current.mousePosition.x) : ((int) Event.current.mousePosition.y);
                        for (int i = 0; i < (state.relativeSizes.Length - 1); i++)
                        {
                            Rect rect = !group.isVertical ? new Rect(((state.xOffset + num2) + state.realSizes[i]) - (state.splitSize / 2), group.rect.y, (float) state.splitSize, group.rect.height) : new Rect(state.xOffset + group.rect.x, (float) ((num2 + state.realSizes[i]) - (state.splitSize / 2)), group.rect.width, (float) state.splitSize);
                            if (rect.Contains(Event.current.mousePosition))
                            {
                                state.splitterInitialOffset = num;
                                state.currentActiveSplitter = i;
                                GUIUtility.hotControl = state.ID;
                                Event.current.Use();
                                break;
                            }
                            num2 += state.realSizes[i];
                        }
                    }
                    break;

                case EventType.MouseUp:
                    if (GUIUtility.hotControl == state.ID)
                    {
                        GUIUtility.hotControl = 0;
                        state.currentActiveSplitter = -1;
                        state.RealToRelativeSizes();
                        Event.current.Use();
                    }
                    break;

                case EventType.MouseDrag:
                    if ((GUIUtility.hotControl == state.ID) && (state.currentActiveSplitter >= 0))
                    {
                        num = !group.isVertical ? ((int) Event.current.mousePosition.x) : ((int) Event.current.mousePosition.y);
                        int diff = num - state.splitterInitialOffset;
                        if (diff != 0)
                        {
                            state.splitterInitialOffset = num;
                            state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, diff);
                        }
                        Event.current.Use();
                    }
                    break;

                case EventType.Repaint:
                {
                    int num5 = !group.isVertical ? ((int) group.rect.x) : ((int) group.rect.y);
                    for (int j = 0; j < (state.relativeSizes.Length - 1); j++)
                    {
                        Rect position = !group.isVertical ? new Rect(((state.xOffset + num5) + state.realSizes[j]) - (state.splitSize / 2), group.rect.y, (float) state.splitSize, group.rect.height) : new Rect(state.xOffset + group.rect.x, (float) ((num5 + state.realSizes[j]) - (state.splitSize / 2)), group.rect.width, (float) state.splitSize);
                        EditorGUIUtility.AddCursorRect(position, !group.isVertical ? MouseCursor.SplitResizeLeftRight : MouseCursor.ResizeVertical, state.ID);
                        num5 += state.realSizes[j];
                    }
                    break;
                }
                case EventType.Layout:
                    group.state = state;
                    group.resetCoords = false;
                    group.isVertical = vertical;
                    group.ApplyOptions(options);
                    break;
            }
        }
		public static void BeginSplit(SplitterState state, GUIStyle style, bool vertical, params GUILayoutOption[] options)
		{
			SplitterGUILayout.GUISplitterGroup gUISplitterGroup = (SplitterGUILayout.GUISplitterGroup)GUILayoutUtility.BeginLayoutGroup(style, null, typeof(SplitterGUILayout.GUISplitterGroup));
			state.ID = GUIUtility.GetControlID(SplitterGUILayout.splitterHash, FocusType.Native);
			switch (Event.current.type)
			{
			case EventType.MouseDown:
				if (Event.current.button == 0 && Event.current.clickCount == 1)
				{
					int num = (!gUISplitterGroup.isVertical) ? ((int)gUISplitterGroup.rect.x) : ((int)gUISplitterGroup.rect.y);
					int num2 = (!gUISplitterGroup.isVertical) ? ((int)Event.current.mousePosition.x) : ((int)Event.current.mousePosition.y);
					for (int i = 0; i < state.relativeSizes.Length - 1; i++)
					{
						if (((!gUISplitterGroup.isVertical) ? new Rect(state.xOffset + (float)num + (float)state.realSizes[i] - (float)(state.splitSize / 2), gUISplitterGroup.rect.y, (float)state.splitSize, gUISplitterGroup.rect.height) : new Rect(state.xOffset + gUISplitterGroup.rect.x, (float)(num + state.realSizes[i] - state.splitSize / 2), gUISplitterGroup.rect.width, (float)state.splitSize)).Contains(Event.current.mousePosition))
						{
							state.splitterInitialOffset = num2;
							state.currentActiveSplitter = i;
							GUIUtility.hotControl = state.ID;
							Event.current.Use();
							break;
						}
						num += state.realSizes[i];
					}
				}
				break;
			case EventType.MouseUp:
				if (GUIUtility.hotControl == state.ID)
				{
					GUIUtility.hotControl = 0;
					state.currentActiveSplitter = -1;
					state.RealToRelativeSizes();
					Event.current.Use();
				}
				break;
			case EventType.MouseDrag:
				if (GUIUtility.hotControl == state.ID && state.currentActiveSplitter >= 0)
				{
					int num2 = (!gUISplitterGroup.isVertical) ? ((int)Event.current.mousePosition.x) : ((int)Event.current.mousePosition.y);
					int num3 = num2 - state.splitterInitialOffset;
					if (num3 != 0)
					{
						state.splitterInitialOffset = num2;
						state.DoSplitter(state.currentActiveSplitter, state.currentActiveSplitter + 1, num3);
					}
					Event.current.Use();
				}
				break;
			case EventType.Repaint:
			{
				int num4 = (!gUISplitterGroup.isVertical) ? ((int)gUISplitterGroup.rect.x) : ((int)gUISplitterGroup.rect.y);
				for (int j = 0; j < state.relativeSizes.Length - 1; j++)
				{
					Rect position = (!gUISplitterGroup.isVertical) ? new Rect(state.xOffset + (float)num4 + (float)state.realSizes[j] - (float)(state.splitSize / 2), gUISplitterGroup.rect.y, (float)state.splitSize, gUISplitterGroup.rect.height) : new Rect(state.xOffset + gUISplitterGroup.rect.x, (float)(num4 + state.realSizes[j] - state.splitSize / 2), gUISplitterGroup.rect.width, (float)state.splitSize);
					EditorGUIUtility.AddCursorRect(position, (!gUISplitterGroup.isVertical) ? MouseCursor.SplitResizeLeftRight : MouseCursor.ResizeVertical, state.ID);
					num4 += state.realSizes[j];
				}
				break;
			}
			case EventType.Layout:
				gUISplitterGroup.state = state;
				gUISplitterGroup.resetCoords = false;
				gUISplitterGroup.isVertical = vertical;
				gUISplitterGroup.ApplyOptions(options);
				break;
			}
		}