# GetFlowLayoutedRects(Rect, GUIStyle, float, float, List<string>)

> Layout list of string items left to right, top to bottom in the given area.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.5/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static List<Rect> GetFlowLayoutedRects(Rect rect, GUIStyle style, float horizontalSpacing, float verticalSpacing, List<string> items)
```

### Parameters

**** (\[Rect]\(/engine/6000.5/script-reference/unityengine/rect)): Area where to layout the items.**** (\[GUIStyle]\(/engine/6000.5/script-reference/unityengine/guistyle)): Style for the items.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Extra horizontal spacing between successive items.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Extra vertical spacing between item rows.**** (\[List\<string>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)): Strings to layout.

### Returns

| Type                                                                                    | Description                              |
| --------------------------------------------------------------------------------------- | ---------------------------------------- |
| [List\<Rect>](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1) | List of rectangles for the passed items. |

### Remarks

![EditorGUIUtilityGetFlowLayoutedRects (GetFlowLayoutedRects(Rect, GUIStyle, float, float, List\<string>))](/api/media?file=/engine/6000.5/media/images/EditorGUIUtilityGetFlowLayoutedRects.png)

*Example of buttons positioned with GetFlowLayoutedRects.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;

public class MyWindow : EditorWindow
{
    [MenuItem("Window/My Window")]
    static void OpenMyWindow()
    {
        EditorWindow.GetWindow<MyWindow>(true);
    }

    void OnGUI()
    {
        // area to layout our items in
        var rect = new Rect(10, 10, position.width - 20, position.height - 20);
        // items to layout
        var items = new List<string>
        {
            "One button", "Another button", "Yet another", "Hey there's more", "More!"
        };
        // get resulting rectangles of items
        var style = EditorStyles.miniButton;
        var boxes = EditorGUIUtility.GetFlowLayoutedRects(rect, style, 4, 4, items);
        // do actual UI for them
        for (var i = 0; i < boxes.Count; ++i)
        {
            GUI.Button(boxes[i], items[i], style);
        }
    }
}
```
