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(); } } }
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); }