public void OnGUI(Rect pos)
        {
            m_Position = pos;
            var docTreeRect = new Rect(
                m_Position.x + k_BorderWidth,
                m_Position.y + k_SearchBarHeight,
                m_Position.width - 2 * k_BorderWidth,//m_HorizontalSplitterRect.x - k_BorderWidth,
                m_Position.height - k_BorderWidth - k_ToolsHeight - k_SearchBarHeight);

            var searchBarRect = new Rect(
                docTreeRect.x,
                m_Position.y,
                docTreeRect.width,
                k_SearchBarHeight);

            if (m_TreeView == null)
            {
                bool firstInit   = m_MultiColumnHeaderState == null;
                var  headerState = DocumentTree.CreateDefaultMultiColumnHeaderState(docTreeRect.width);
                if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState))
                {
                    MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState);
                }
                m_MultiColumnHeaderState = headerState;

                if (m_TreeViewState == null)
                {
                    m_TreeViewState = new TreeViewState();
                }

                m_TreeView = new DocumentTree(m_TreeViewState, new MultiColumnHeader(m_MultiColumnHeaderState));
            }
            OnGUISearchBar(searchBarRect);

            HandleHorizontalResize();

            m_TreeView.OnGUI(docTreeRect);

            var bottomRect = new Rect(
                docTreeRect.x,
                docTreeRect.y + docTreeRect.height + k_BorderWidth,
                docTreeRect.width,
                k_ToolsHeight - k_BorderWidth);

            BottomToolBar(bottomRect);
            if (m_ResizingHorizontalSplitter)
            {
                m_Parent.Repaint();
            }
        }