示例#1
0
        public void Draw()
        {
            GUI.Box(rect, "", EditorStyles.textField);

            if (rect.Contains(Event.current.mousePosition) || dragging)
            {
                GUIHelper.AssignCursor(rect, MouseCursor.ResizeHorizontal);
            }

            if (Event.current.isMouse)
            {
                if (GUIHelper.ReleasedRawLMB())
                {
                    StopDrag();
                }
                if (dragging)
                {
                    UpdateDrag();
                }
                if (GUIHelper.PressedLMB(rect))
                {
                    StartDrag();
                }
            }
        }
示例#2
0
        public static Rect GetBorder(this Rect r, RectBorder border, int size, bool showResizeCursor = false)
        {
            Rect retRect = r;

            // Dimensions
            if (border == RectBorder.Left || border == RectBorder.Right)
            {
                retRect.height = r.height - size * 2;
            }
            else
            {
                retRect.height = size;
            }

            if (border == RectBorder.Top || border == RectBorder.Bottom)
            {
                retRect.width = r.width - size * 2;
            }
            else
            {
                retRect.width = size;
            }

            // Position
            if (border == RectBorder.Left || border == RectBorder.Center || border == RectBorder.Right)
            {
                retRect.y += size;
            }
            if (border == RectBorder.BottomLeft || border == RectBorder.Bottom || border == RectBorder.BottomRight)
            {
                retRect.y += r.height - size;
            }

            if (border == RectBorder.Top || border == RectBorder.Center || border == RectBorder.Bottom)
            {
                retRect.x += size;
            }
            if (border == RectBorder.TopRight || border == RectBorder.Right || border == RectBorder.BottomRight)
            {
                retRect.x += r.width - size;
            }


            if (showResizeCursor)
            {
                MouseCursor cursor;

                if (border == RectBorder.Top || border == RectBorder.Bottom)
                {
                    cursor = MouseCursor.ResizeVertical;
                }
                else if (border == RectBorder.Left || border == RectBorder.Right)
                {
                    cursor = MouseCursor.ResizeHorizontal;
                }
                else if (border == RectBorder.TopLeft || border == RectBorder.BottomRight)
                {
                    cursor = MouseCursor.ResizeUpLeft;
                }
                else if (border == RectBorder.BottomLeft || border == RectBorder.TopRight)
                {
                    cursor = MouseCursor.ResizeUpRight;
                }
                else
                {
                    cursor = MouseCursor.MoveArrow;
                }

                GUIHelper.AssignCursor(retRect, cursor);
            }

            return(retRect);
        }