private Rect RowsDrawer_GlobalBeforeFoldout(RowsDrawer rowsDrawer, Rect r, int i, Row row) { if (HQ.Settings == null) { return(r); } ColorMarkersModuleSettings settings = HQ.Settings.Get <ColorMarkersModuleSettings>(); List <ColorMarker> markers = settings.colorMarkers; List <ColorBackground> stamps = settings.colorBackgrounds; for (int j = 0; j < this.coloredRows.Count; j++) { if (this.coloredRows[j].row == row) { if (this.coloredRows[j].i < stamps.Count) { EditorGUI.DrawRect(r, stamps[this.coloredRows[j].i].color); } return(r); } } for (int j = 0; j < markers.Count; j++) { if (markers[j].groupFilters.filters.Count > 0 && markers[j].groupFilters.Filter(row) == true) { EditorGUI.DrawRect(r, markers[j].backgroundColor); break; } } return(r); }
private void AppendColorsMenuItem(GenericMenu menu, RowsDrawer rowsDrawer, int streamIndex, Row row) { if (HQ.Settings == null) { return; } ColorMarkersModuleSettings settings = HQ.Settings.Get <ColorMarkersModuleSettings>(); for (int i = 0; i < settings.colorBackgrounds.Count; i++) { if (settings.colorBackgrounds[i].name != string.Empty) { menu.AddItem(new GUIContent(settings.nestedMenu == true ? "Colors/" + settings.colorBackgrounds[i].name : settings.colorBackgrounds[i].name), this.coloredRows.Exists((e) => e.i == i && e.row == row), this.ToggleColor, new object[] { rowsDrawer, streamIndex, row, i }); } } }
private void ToggleColor(object data) { object[] array = data as object[]; RowsDrawer rowsDrawer = array[0] as RowsDrawer; int consoleIndex = rowsDrawer[(int)array[1]]; Row row = array[2] as Row; int colorIndex = (int)array[3]; ColorMarkersModuleSettings settings = HQ.Settings.Get <ColorMarkersModuleSettings>(); List <ColorBackground> markers = settings.colorBackgrounds; ScrollbarInterests interests; if (this.rowsDrawerInterests.TryGetValue(rowsDrawer, out interests) == false) { interests = new ScrollbarInterests(); this.rowsDrawerInterests.Add(rowsDrawer, interests); } for (int j = 0; j < this.coloredRows.Count; j++) { if (this.coloredRows[j].row == row) { if (this.coloredRows[j].i == colorIndex) { interests.filterInterests.RemoveId(consoleIndex, 0F); this.coloredRows.RemoveAt(j); } else { interests.filterInterests.Add(8F + rowsDrawer.GetOffsetAtIndex(consoleIndex), markers[colorIndex].color, consoleIndex); this.coloredRows[j].i = colorIndex; } return; } } interests.filterInterests.Add(8F + rowsDrawer.GetOffsetAtIndex(consoleIndex), markers[colorIndex].color, consoleIndex); this.coloredRows.Add(new ColoredRow() { row = row, i = colorIndex }); }
protected virtual void OnGUI() { if (HQ.Settings == null) { GUILayout.Label(string.Format(LC.G("RequiringConfigurationFile"), ColorMarkersWizard.Title)); if (GUILayout.Button(LC.G("ShowPreferencesWindow")) == true) { Utility.ShowPreferencesWindowAt(Constants.PreferenceTitle); } return; } ColorMarkersModuleSettings settings = HQ.Settings.Get <ColorMarkersModuleSettings>(); this.r.x = 0F; this.r.y = 0F; this.r.width = this.position.width; this.r.height = Constants.SingleLineHeight; if (GUI.Button(r, LC.G("AddMarker")) == true) { if (this.CheckMaxColorMarkers(settings.colorMarkers.Count) == true) { Undo.RecordObject(settings, "Add color marker"); ColorMarker marker = new ColorMarker(); MainModuleSettings mainSettings = HQ.Settings.Get <MainModuleSettings>(); foreach (ILogFilter filter in mainSettings.GenerateFilters()) { marker.groupFilters.filters.Add(filter); } settings.colorMarkers.Add(marker); this.RefreshAllStreams(); } } this.r.y += this.r.height + ColorMarkersWizard.MarkerSpacing; float totalHeight = 0f; for (int i = 0; i < settings.colorMarkers.Count; i++) { while (this.folds.Count < settings.colorMarkers.Count) { this.folds.Add(true); } totalHeight += this.r.height + ColorMarkersWizard.Spacing + ColorMarkersWizard.MarkerSpacing; if (this.folds[i] == true) { totalHeight += this.r.height + ColorMarkersWizard.Spacing; for (int j = 0; j < settings.colorMarkers[i].groupFilters.filters.Count; j++) { if (settings.colorMarkers[i].groupFilters.filters[j].Enabled == true) { totalHeight += this.r.height + 2F; } } } } totalHeight -= ColorMarkersWizard.MarkerSpacing; this.viewRect.height = totalHeight; Rect body = this.r; body.height = this.position.height - this.r.y; this.scrollPosition = GUI.BeginScrollView(body, this.scrollPosition, this.viewRect); { float width = body.width; if (totalHeight > body.height) { width -= 16F; } this.r.y = 0F; for (int i = 0; i < settings.colorMarkers.Count; i++) { this.r.x = 0F; this.r.width = width; GUI.Box(r, GUIContent.none, GeneralStyles.Toolbar); this.r.width = width - 325F; this.folds[i] = EditorGUI.Foldout(this.r, this.folds[i], LC.G("Marker") + " #" + (i + 1)); this.r.x += this.r.width; this.r.width = 200F; EditorGUI.BeginChangeCheck(); Color color = EditorGUI.ColorField(r, settings.colorMarkers[i].backgroundColor); if (EditorGUI.EndChangeCheck() == true) { this.alteredColorMarker = settings.colorMarkers[i]; this.newColor = color; settings.colorMarkers[i].backgroundColor = color; Utility.RepaintEditorWindow(typeof(NGConsoleWindow)); Utility.RegisterIntervalCallback(this.DelayedSetBackgroundcolor, 100, 1); } this.r.x += this.r.width; this.r.width = 65F; EditorGUI.DrawRect(this.r, settings.colorMarkers[i].backgroundColor); EditorGUI.LabelField(this.r, "# # # # #"); this.r.x += this.r.width; this.r.width = 20F; EditorGUI.BeginDisabledGroup(i == 0); { if (GUI.Button(r, "↑", GeneralStyles.ToolbarButton) == true) { Undo.RecordObject(settings, "Reorder color marker"); settings.colorMarkers.Reverse(i - 1, 2); this.RefreshAllStreams(); break; } this.r.x += this.r.width; GUI.enabled = i < settings.colorMarkers.Count - 1; if (GUI.Button(r, "↓", GeneralStyles.ToolbarButton) == true) { Undo.RecordObject(settings, "Reorder color marker"); settings.colorMarkers.Reverse(i, 2); this.RefreshAllStreams(); break; } this.r.x += this.r.width; GUI.enabled = true; if (GUI.Button(r, "X", GeneralStyles.ToolbarCloseButton) == true) { Undo.RecordObject(settings, "Delete color marker"); settings.colorMarkers.RemoveAt(i); this.RefreshAllStreams(); break; } } EditorGUI.EndDisabledGroup(); this.r.y += this.r.height + ColorMarkersWizard.Spacing; if (this.folds[i] == true) { this.r.x = 0F; EditorGUI.BeginChangeCheck(); { settings.colorMarkers[i].groupFilters.OnGUI(r); this.r.y += this.r.height + ColorMarkersWizard.Spacing; for (int j = 0; j < settings.colorMarkers[i].groupFilters.filters.Count; j++) { if (settings.colorMarkers[i].groupFilters.filters[j].Enabled == true) { this.r.x = 0F; this.r.width = width; this.r = settings.colorMarkers[i].groupFilters.filters[j].OnGUI(this.r, false); } } } if (EditorGUI.EndChangeCheck() == true) { this.RefreshAllStreams(); } } this.r.y += ColorMarkersWizard.MarkerSpacing; } } GUI.EndScrollView(); }
private void OnRowAdded(StreamLog stream, Row row, int consoleIndex) { ColorMarkersModuleSettings settings = HQ.Settings.Get <ColorMarkersModuleSettings>(); ScrollbarInterests interests; if (this.rowsDrawerInterests.TryGetValue(stream.rowsDrawer, out interests) == false) { interests = new ScrollbarInterests(); foreach (var vars in stream.rowsDrawer.perWindowVars.Each()) { vars.scrollbar.AddListInterests(interests.filterInterests); vars.scrollbar.AddListInterests(interests.logTypeInterests); vars.scrollbar.AddListInterests(interests.warningLogsInterests); vars.scrollbar.AddListInterests(interests.errorLogsInterests); } this.rowsDrawerInterests.Add(stream.rowsDrawer, interests); } if (settings.dotInScrollbarRowByLogType == true) { if ((row.log.mode & Mode.ScriptingException) != 0) { interests.errorLogsInterests.Add(8F + stream.rowsDrawer.GetOffsetAtIndex(consoleIndex), HQ.Settings.Get <GeneralSettings>().differentiateException == false ? ConsoleConstants.ErrorFoldoutColor : ConsoleConstants.ExceptionFoldoutColor, consoleIndex); } else if ((row.log.mode & (Mode.ScriptCompileError | Mode.ScriptingError | Mode.Fatal | Mode.Error | Mode.Assert | Mode.AssetImportError | Mode.ScriptingAssertion)) != 0) { interests.errorLogsInterests.Add(8F + stream.rowsDrawer.GetOffsetAtIndex(consoleIndex), ConsoleConstants.ErrorFoldoutColor, consoleIndex); } else if ((row.log.mode & (Mode.ScriptCompileWarning | Mode.ScriptingWarning | Mode.AssetImportWarning)) != 0) { interests.warningLogsInterests.Add(8F + stream.rowsDrawer.GetOffsetAtIndex(consoleIndex), ConsoleConstants.WarningFoldoutColor, consoleIndex); } else { goto skip; } } skip: List <ColorBackground> stamps = settings.colorBackgrounds; for (int j = 0; j < this.coloredRows.Count; j++) { if (this.coloredRows[j].row == row) { if (this.coloredRows[j].i < stamps.Count) { interests.filterInterests.Add(8F + stream.rowsDrawer.GetOffsetAtIndex(consoleIndex), stamps[this.coloredRows[j].i].color, consoleIndex); return; } } } List <ColorMarker> markers = settings.colorMarkers; for (int j = 0; j < markers.Count; j++) { if (markers[j].groupFilters.filters.Count > 0 && markers[j].groupFilters.Filter(row) == true) { interests.filterInterests.Add(8F + stream.rowsDrawer.GetOffsetAtIndex(consoleIndex), markers[j].backgroundColor, consoleIndex); return; } } IRowDotColored dotColored = row as IRowDotColored; if (dotColored != null) { interests.logTypeInterests.Add(8F + stream.rowsDrawer.GetOffsetAtIndex(consoleIndex), dotColored.GetColor(), consoleIndex); } }