public void ChangeGridSize(ResizeButtonHandler.ResizeDirection resizeDirection)
    {
        switch (resizeDirection)
        {
        case ResizeButtonHandler.ResizeDirection.Left:
            if (cols > minColSize)
            {
                ColumnOrder(resizeDirection);
                cols--;
                RearrangeGrid();
            }
            break;

        case ResizeButtonHandler.ResizeDirection.Right:
            if (cols < maxColSize)
            {
                ColumnOrder(resizeDirection);
                cols++;
                RearrangeGrid();
            }
            break;

        case ResizeButtonHandler.ResizeDirection.Up:
            if (rows < maxRowSize)
            {
                RowOrder(resizeDirection);
                rows++;
                RearrangeGrid();
            }
            break;

        case ResizeButtonHandler.ResizeDirection.Down:
            if (rows > minRowSize)
            {
                RowOrder(resizeDirection);
                rows--;
                RearrangeGrid();
            }
            break;

        default:
            break;
        }
    }
    private void RowOrder(ResizeButtonHandler.ResizeDirection resizeDirection)
    {
        GameObject referredCircularButton = GetReferencedCircularButton();

        for (int i = 0; i < cols; i++)
        {
            if (resizeDirection == ResizeButtonHandler.ResizeDirection.Down)
            {
                Destroy(rectTransforms[(int)rows - 1, i].gameObject);
                rectTransforms[(int)rows - 1, i] = null;
            }
            else
            {
                GameObject    grid = (GameObject)Instantiate(referredCircularButton, mainPanel.transform);
                RectTransform rect = grid.GetComponent <RectTransform>();
                rectTransforms[(int)rows, i] = rect;
            }
        }
        Destroy(referredCircularButton);
    }