public static Rect ResizeWindow(Rect windowRect, ref bool isResizing, ref Rect resizeStart, Vector2 minWindowSize)
{
Vector2 mouse = GUIUtility.ScreenToGUIPoint (new Vector2 (Input.mousePosition.x, Screen.height - Input.mousePosition.y));
if (Event.current.type == EventType.mouseDown && windowRect.Contains (mouse)) {
isResizing = true;
resizeStart = new Rect (mouse.x, mouse.y, windowRect.width, windowRect.height);
}
else if (Event.current.type == EventType.mouseUp && isResizing) {
isResizing = false;
}
else if (!Input.GetMouseButton (0)) {
isResizing = false;
}
else if (isResizing) {
windowRect.width = Mathf.Max (minWindowSize.x, resizeStart.width + (mouse.x - resizeStart.x));
windowRect.height = Mathf.Max (minWindowSize.y, resizeStart.height + (mouse.y - resizeStart.y));
windowRect.xMax = Mathf.Min (Screen.width, windowRect.xMax);
windowRect.yMax = Mathf.Min (Screen.height, windowRect.yMax);
}
return windowRect;
}