public ColorManager GetManager(ColorStore colorStore, int maxColorChanges, int initialColorChangeCountValue, bool isInCompatibilityMode) { var colorMapper = GetColorMapperSafe(ColorManager.IsWindows()); return(new ColorManager(colorStore, colorMapper, maxColorChanges, initialColorChangeCountValue, isInCompatibilityMode)); }
/// <summary> /// Manages the number of different colors that the Windows console is able to display in a given session. /// </summary> /// <param name="colorStore">The ColorStore instance in which the ColorManager will store colors.</param> /// <param name="colorMapper"> /// The ColorMapper instance the ColorManager will use to relate different color /// types to one another. /// </param> /// <param name="maxColorChanges"> /// The maximum number of color changes allowed by the ColorManager. It's /// necessary to keep track of this, because the Windows console can only display 16 different colors in /// a given session. /// </param> /// <param name="initialColorChangeCountValue">The number of color changes which have already occurred.</param> public ColorManager(ColorStore colorStore, ColorMapper colorMapper, int maxColorChanges, int initialColorChangeCountValue, bool isInCompatibilityMode) { this.colorStore = colorStore; this.colorMapper = colorMapper; colorChangeCount = initialColorChangeCountValue; this.maxColorChanges = maxColorChanges; IsInCompatibilityMode = isInCompatibilityMode; }
public ColorManager GetManager(ConcurrentDictionary <Color, ConsoleColor> colorMap, ConcurrentDictionary <ConsoleColor, Color> consoleColorMap, int maxColorChanges, int initialColorChangeCountValue, bool isInCompatibilityMode) { var colorStore = new ColorStore(colorMap, consoleColorMap); var colorMapper = GetColorMapperSafe(ColorManager.IsWindows()); return(new ColorManager(colorStore, colorMapper, maxColorChanges, initialColorChangeCountValue, isInCompatibilityMode)); }
private static void ReplaceAllColorsWithDefaults(bool isInCompatibilityMode, bool isWindows) { colorStore = GetColorStore(); colorManagerFactory = new ColorManagerFactory(); colorManager = colorManagerFactory.GetManager(colorStore, MAX_COLOR_CHANGES, INITIAL_COLOR_CHANGE_COUNT_VALUE, isInCompatibilityMode); // There's no need to do this if in compatibility mode (or if not on Windows), as more than 16 colors won't be used, anyway. if (!colorManager.IsInCompatibilityMode && isWindows) new ColorMapper().SetBatchBufferColors(defaultColorMap); }