public AudioMixersTreeView(AudioMixerWindow mixerWindow, TreeViewState treeState, Func<List<AudioMixerController>> getAllControllersCallback)
{
this.m_TreeView = new TreeViewController(mixerWindow, treeState);
this.m_TreeView.deselectOnUnhandledMouseDown = false;
this.m_TreeView.selectionChangedCallback = (Action<int[]>) Delegate.Combine(this.m_TreeView.selectionChangedCallback, new Action<int[]>(this.OnTreeSelectionChanged));
this.m_TreeView.contextClickItemCallback = (Action<int>) Delegate.Combine(this.m_TreeView.contextClickItemCallback, new Action<int>(this.OnTreeViewContextClick));
AudioMixersTreeViewGUI gui = new AudioMixersTreeViewGUI(this.m_TreeView);
AudioMixersDataSource data = new AudioMixersDataSource(this.m_TreeView, getAllControllersCallback);
AudioMixerTreeViewDragging dragging = new AudioMixerTreeViewDragging(this.m_TreeView, new Action<List<AudioMixerController>, AudioMixerController>(this, (IntPtr) this.OnMixersDroppedOnMixerCallback));
this.m_TreeView.Init(mixerWindow.position, data, gui, dragging);
this.m_TreeView.ReloadData();
}