예제 #1
0
        public ColorManager GetManager(ColorStore colorStore, int maxColorChanges, int initialColorChangeCountValue,
                                       bool isInCompatibilityMode)
        {
            var colorMapper = GetColorMapperSafe(ColorManager.IsWindows());

            return(new ColorManager(colorStore, colorMapper, maxColorChanges, initialColorChangeCountValue,
                                    isInCompatibilityMode));
        }
예제 #2
0
        /// <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;
        }
예제 #3
0
        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));
        }
예제 #4
0
        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);
        }