예제 #1
0
        internal StyleReset Apply(TextWriter output, KonsoleThemeStyle style, ref int invisibleCharacterCount, ConcurrentWriter concurrentWriter)
        {
            invisibleCharacterCount += Set(output, style, concurrentWriter);
            invisibleCharacterCount += ResetCharCount;

            return(new StyleReset(this, output, concurrentWriter));
        }
예제 #2
0
        /// <inheritdoc/>
        public override int Set(TextWriter output, KonsoleThemeStyle style, ConcurrentWriter concurrentWriter)
        {
            if (Styles.TryGetValue(style, out var wcts))
            {
                if (wcts.Foreground.HasValue)
                {
                    concurrentWriter.ForegroundColor = wcts.Foreground.Value;
                }
                if (wcts.Background.HasValue)
                {
                    concurrentWriter.BackgroundColor = wcts.Background.Value;
                }
            }

            return(0);
        }
예제 #3
0
 /// <summary>
 /// Begin a span of text in the specified <paramref name="style"/>.
 /// </summary>
 /// <param name="output">Output destination.</param>
 /// <param name="style">Style to apply.</param>
 /// <param name="concurrentWriter"></param>
 /// <returns> The number of characters written to <paramref name="output"/>. </returns>
 public abstract int Set(TextWriter output, KonsoleThemeStyle style, ConcurrentWriter concurrentWriter);
예제 #4
0
 protected StyleReset ApplyStyle(TextWriter output, KonsoleThemeStyle style, ref int invisibleCharacterCount)
 {
     return(_theme.Apply(output, style, ref invisibleCharacterCount, _concurrentWriter));
 }
예제 #5
0
 public override int Set(TextWriter output, KonsoleThemeStyle style, ConcurrentWriter concurrentWriter) => 0;