protected override void DrawCell(long row, long col, Rect r, long index, bool selected, ref GUIPipelineState pipe)
        {
            var s = m_TableDisplay.GetCellExpandState(row, (int)col);

            if (s.isColumnExpandable)
            {
                int indent = s.expandDepth * 16;
                r.x     += indent;
                r.width -= indent;
                if (s.isExpandable)
                {
                    Rect rToggle     = new Rect(r.x, r.y, 16, r.height);
                    bool newExpanded = GUI.Toggle(rToggle, s.isExpanded, GUIContent.none, Styles.styles.foldout);
                    if (newExpanded != s.isExpanded)
                    {
                        pipe.processMouseClick = false;
                        SetCellExpandedState(row, col, newExpanded);
                    }
                }
                r.x     += 16;
                r.width -= 16;
            }

            Database.LinkRequest link = null;
            if (onClickLink != null)
            {
                link = m_TableDisplay.GetCellLink(new Database.CellPosition(row, (int)col));
            }
            if (Event.current.type == EventType.Repaint)
            {
                var column = m_TableDisplay.GetColumnByIndex((int)col);
                if (column != null)
                {
#if MEMPROFILER_DEBUG_INFO
                    string str;
                    if (m_DataRenderer.showDebugValue)
                    {
                        //str = "\"" + column.GetRowValueString(row) + "\" " + column.GetDebugString(row);
                        str = column.GetDebugString(row);
                    }
                    else
                    {
                        str = column.GetRowValueString(row);
                    }
#else
                    var str = column.GetRowValueString(row);
#endif
                    DrawTextEllipsis(str, r,
                                     link == null ? Styles.styles.numberLabel : Styles.styles.clickableLabel
                                     , EllipsisStyleMetricData, selected);
                }
            }
            if (link != null)
            {
                if (Event.current.type == EventType.Repaint)
                {
                    EditorGUIUtility.AddCursorRect(r, MouseCursor.Link);
                }
            }
        }
        protected override void DrawCell(long row, long col, Rect r, long index, bool selected, ref GUIPipelineState pipe)
        {
            var s = m_TableDisplay.GetCellExpandState(row, (int)col);

            if (s.isColumnExpandable)
            {
                int indent = s.expandDepth * 16;
                r.x     += indent;
                r.width -= indent;
                if (s.isExpandable)
                {
                    Rect rToggle     = new Rect(r.x, r.y, Styles.FoldoutWidth, r.height);
                    bool newExpanded = GUI.Toggle(rToggle, s.isExpanded, GUIContent.none, Styles.Foldout);
                    if (newExpanded != s.isExpanded)
                    {
                        pipe.processMouseClick = false;
                        SetCellExpandedState(row, col, newExpanded);
                    }
                }
                r.x     += 16;
                r.width -= 16;
            }

            Database.LinkRequest link = null;
            if (onClickLink != null)
            {
                link = m_TableDisplay.GetCellLink(new Database.CellPosition(row, (int)col));
            }
            if (Event.current.type == EventType.Repaint)
            {
                var column     = m_TableDisplay.GetColumnByIndex((int)col);
                var metaColumn = m_TableDisplay.GetMetaData().GetColumnByIndex((int)col);
                if (column != null)
                {
                    var str = column.GetRowValueString(row, m_FormattingOptions.GetFormatter(metaColumn.FormatName));
                    DrawTextEllipsis(str, r,
                                     link == null ? Styles.NumberLabel : Styles.ClickableLabel
                                     , EllipsisStyleMetricData, selected);
                }
            }
            if (link != null)
            {
                if (Event.current.type == EventType.Repaint)
                {
                    EditorGUIUtility.AddCursorRect(r, MouseCursor.Link);
                }
            }
        }