private void LogGridView_RowStyle(object sender, RowStyleEventArgs e) { if (!Settings.ColorSettings.EnableMessagesColors || !(sender is GridView view) || e.RowHandle < 0) { return; } IAnalogyLogMessage message = (AnalogyLogMessage)view.GetRowCellValue(e.RowHandle, view.Columns["Object"]); if (message == null) { return; } var(backgroundColorLevel, textColorLevel) = Settings.ColorSettings.GetColorForLogLevel(message.Level); e.Appearance.BackColor = backgroundColorLevel; e.Appearance.ForeColor = textColorLevel; string text = view.GetRowCellDisplayText(e.RowHandle, view.Columns["Text"]); foreach (PreDefineHighlight preDefineHighlight in Settings.PreDefinedQueries.Highlights) { if (FilterCriteriaObject.Match(text, preDefineHighlight.Text, preDefineHighlight.PreDefinedQueryType)) { e.Appearance.BackColor = preDefineHighlight.Color; } } if (DataProvider.UseCustomColors) { IAnalogyLogMessage m = (AnalogyLogMessage)view.GetRowCellValue(e.RowHandle, view.Columns["Object"]); if (m == null) { return; } var colors = DataProvider.GetColorForMessage(m); if (colors.backgroundColor != Color.Empty) { e.Appearance.BackColor = colors.backgroundColor; } if (colors.foregroundColor != Color.Empty) { e.Appearance.ForeColor = colors.foregroundColor; } } }
public override (Color backgroundColor, Color foregroundColor) GetColorForMessage(IAnalogyLogMessage logMessage) => logMessage.Level == AnalogyLogLevel.Unknown ? (Color.FromArgb(_rnd.Next(256), _rnd.Next(256), _rnd.Next(256)), Color.FromArgb(_rnd.Next(256), _rnd.Next(256), _rnd.Next(256))) : (Color.Empty, Color.Empty);