void InitIfNeeded() { if (m_Initialized) { return; } if (m_ViewState == null) { m_ViewState = new TreeViewState(); } var headerState = CreateDefaultMultiColumnHeaderState(); var multiColumnHeaderStateData = SessionState.GetString(multiColumnHeaderStatePrefKey, ""); if (!string.IsNullOrEmpty(multiColumnHeaderStateData)) { try { var restoredHeaderState = JsonUtility.FromJson <MultiColumnHeaderState>(multiColumnHeaderStateData); if (restoredHeaderState != null) { m_ViewHeaderState = restoredHeaderState; } } catch {} // Nevermind, we'll just fall back to the default } if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_ViewHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_ViewHeaderState, headerState); } var firstInit = m_ViewHeaderState == null; m_ViewHeaderState = headerState; var multiColumnHeader = new MultiColumnHeader(m_ViewHeaderState) { height = 25 }; if (firstInit) { multiColumnHeader.state.visibleColumns = new[] { (int)CallsTreeView.Column.Name, (int)CallsTreeView.Column.Calls, (int)CallsTreeView.Column.GcAlloc, (int)CallsTreeView.Column.TimeMs, (int)CallsTreeView.Column.TimePercent, }; multiColumnHeader.ResizeToFit(); } multiColumnHeader.visibleColumnsChanged += OnMultiColumnHeaderChanged; multiColumnHeader.sortingChanged += OnMultiColumnHeaderChanged; m_View = new CallsTreeView(m_Type, m_ViewState, multiColumnHeader); m_View.frameItemEvent += frameItemEvent; m_Initialized = true; }
void InitIfNeeded() { if (m_Initialized) { return; } if (m_ViewState == null) { m_ViewState = new TreeViewState(); } var firstInit = m_ViewHeaderState == null; var headerState = CreateDefaultMultiColumnHeaderState(); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_ViewHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_ViewHeaderState, headerState); } m_ViewHeaderState = headerState; var multiColumnHeader = new MultiColumnHeader(m_ViewHeaderState) { height = 25 }; if (firstInit) { multiColumnHeader.state.visibleColumns = new[] { (int)CallsTreeView.Column.Name, (int)CallsTreeView.Column.Calls, (int)CallsTreeView.Column.TimeMs, (int)CallsTreeView.Column.TimePercent, }; multiColumnHeader.ResizeToFit(); } m_View = new CallsTreeView(m_Type, m_ViewState, multiColumnHeader); m_View.frameItemEvent += frameItemEvent; m_Initialized = true; }