UnityEditor.VerticalGrid.InitNumRowsAndColumns C# (CSharp) Method

InitNumRowsAndColumns() public method

public InitNumRowsAndColumns ( int itemCount, int maxNumRows ) : void
itemCount int
maxNumRows int
return void
        public void InitNumRowsAndColumns(int itemCount, int maxNumRows)
        {
            if (this.useFixedHorizontalSpacing)
            {
                this.m_Columns = this.CalcColumns();
                this.m_HorizontalSpacing = this.fixedHorizontalSpacing;
                this.m_Rows = Mathf.Min(maxNumRows, this.CalcRows(itemCount));
                this.m_Height = (((this.m_Rows * (this.itemSize.y + this.verticalSpacing)) - this.verticalSpacing) + this.topMargin) + this.bottomMargin;
            }
            else
            {
                this.m_Columns = this.CalcColumns();
                this.m_HorizontalSpacing = Mathf.Max((float) 0f, (float) ((this.fixedWidth - (((this.m_Columns * this.itemSize.x) + this.leftMargin) + this.rightMargin)) / ((float) this.m_Columns)));
                this.m_Rows = Mathf.Min(maxNumRows, this.CalcRows(itemCount));
                if (this.m_Rows == 1)
                {
                    this.m_HorizontalSpacing = this.minHorizontalSpacing;
                }
                this.m_Height = (((this.m_Rows * (this.itemSize.y + this.verticalSpacing)) - this.verticalSpacing) + this.topMargin) + this.bottomMargin;
            }
        }

Usage Example

        void SetupGrid(float availableWidth, int itemCount, PresetLibraryEditorState.ItemViewMode presetsViewMode)
        {
            m_Grid.useFixedHorizontalSpacing = useOnePixelOverlappedGrid;
            m_Grid.fixedHorizontalSpacing    = useOnePixelOverlappedGrid ? -1 : 0;

            switch (presetsViewMode)
            {
            case PresetLibraryEditorState.ItemViewMode.Grid:
                m_Grid.fixedWidth           = availableWidth;
                m_Grid.topMargin            = marginsForGrid.top;
                m_Grid.bottomMargin         = marginsForGrid.bottom;
                m_Grid.leftMargin           = marginsForGrid.left;
                m_Grid.rightMargin          = marginsForGrid.right;
                m_Grid.verticalSpacing      = useOnePixelOverlappedGrid ? -1 : lineSpacing;
                m_Grid.minHorizontalSpacing = 8f;
                m_Grid.itemSize             = presetSize; // no text
                m_Grid.InitNumRowsAndColumns(itemCount, int.MaxValue);
                break;

            case PresetLibraryEditorState.ItemViewMode.List:
                m_Grid.fixedWidth           = availableWidth;
                m_Grid.topMargin            = marginsForList.top;
                m_Grid.bottomMargin         = marginsForList.bottom;
                m_Grid.leftMargin           = marginsForList.left;
                m_Grid.rightMargin          = marginsForList.right;
                m_Grid.verticalSpacing      = lineSpacing;
                m_Grid.minHorizontalSpacing = 0f;
                m_Grid.itemSize             = new Vector2(availableWidth - m_Grid.leftMargin, presetSize.y);
                m_Grid.InitNumRowsAndColumns(itemCount, int.MaxValue);
                break;
            }
        }