void LayoutWithStripsOnTop(List <AudioMixerGroupController> allGroups, Dictionary <AudioMixerEffectController, AudioMixerGroupController> effectMap)
{
// Do layouting
SplitterState horizontalState = m_LayoutStripsOnTop.m_HorizontalSplitter;
SplitterState verticalState = m_LayoutStripsOnTop.m_VerticalSplitter;
SplitterGUILayout.BeginVerticalSplit(verticalState, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
if (m_GroupsRenderedAboveSections)
{
GUILayout.BeginVertical();
GUILayout.EndVertical();
}
SplitterGUILayout.BeginHorizontalSplit(horizontalState, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
if (!m_GroupsRenderedAboveSections)
{
GUILayout.BeginVertical();
GUILayout.EndVertical();
}
SplitterGUILayout.EndHorizontalSplit();
SplitterGUILayout.EndVerticalSplit();
float channelStripYPos = m_GroupsRenderedAboveSections ? EditorGUI.kWindowToolbarHeight : EditorGUI.kWindowToolbarHeight + verticalState.realSizes[0];
float channelStripHeight = m_GroupsRenderedAboveSections ? verticalState.realSizes[0] : verticalState.realSizes[1];
float sectionsYPos = !m_GroupsRenderedAboveSections ? EditorGUI.kWindowToolbarHeight : EditorGUI.kWindowToolbarHeight + verticalState.realSizes[0];
float sectionsHeight = !m_GroupsRenderedAboveSections ? verticalState.realSizes[0] : verticalState.realSizes[1];
Rect channelStripViewRect = new Rect(0, channelStripYPos, position.width, channelStripHeight);
Rect totalRectOfSections = new Rect(0, channelStripViewRect.yMax, position.width, position.height - channelStripViewRect.height);
// Rects for sections
Rect[] sectionRects = new Rect[m_SectionOrder.Length];
const float spaceFromBottom = 12f;
for (int i = 0; i < sectionRects.Length; i++)
{
float xPos = (i > 0) ? sectionRects[i - 1].xMax : 0f;
sectionRects[i] = new Rect(xPos, sectionsYPos, horizontalState.realSizes[i], sectionsHeight - spaceFromBottom);
}
// Spacing between lists
const float halfSpaceBetween = 4f;
sectionRects[0].x += 2 * halfSpaceBetween;
sectionRects[0].width -= 3 * halfSpaceBetween;
sectionRects[sectionRects.Length - 1].x += halfSpaceBetween;
sectionRects[sectionRects.Length - 1].width -= 3 * halfSpaceBetween;
for (int i = 1; i < sectionRects.Length - 1; i++)
{
sectionRects[i].x += halfSpaceBetween;
sectionRects[i].width -= halfSpaceBetween * 2;
}
// Do content
DoSections(totalRectOfSections, sectionRects, m_SectionOrder);
m_ChannelStripView.OnGUI(channelStripViewRect, m_ShowReferencedBuses, m_ShowBusConnections, m_ShowBusConnectionsOfSelection, allGroups, effectMap, m_SortGroupsAlphabetically, m_ShowDeveloperOverlays, m_GroupTree.ScrollToItem);
// Horizontal line (split)
EditorGUI.DrawRect(new Rect(0, EditorGUI.kWindowToolbarHeight + verticalState.realSizes[0] - 1, position.width, 1), new Color(0f, 0f, 0f, 0.4f));
}