protected internal virtual string DrawHeader() { var label = NfString.PrintInCenter(Title, Width); var bar = DrawBar(); var strBuilder = new StringBuilder(); for (var i = 0; i < Width; i++) { var headerChar = label[i] == (char)0x20 ? bar[i] : label[i]; strBuilder.Append(headerChar); } strBuilder.AppendLine(); return(strBuilder.ToStringUnixNewline()); }
protected internal string DrawHeader() { if (_width - 2 <= 0) { return(Name); } var title = NfString.PrintInCenter(Name, (_width - 2)); var strBuilder = new StringBuilder(); if (_rulerWidth > 0) { strBuilder.Append(new string((char)0x20, _rulerWidth)); } strBuilder.Append(Config.GraphChars.Bar); strBuilder.Append(title); strBuilder.Append(Config.GraphChars.Bar); return(strBuilder.ToStringUnixNewline()); }
public override string ToString() { if (string.IsNullOrEmpty(Text)) { return(string.Empty); } if (Width == 0) { _width = Config.Numerics.DefaultWidth; } if (_height == 0) { _height = CalcHeight(); } Func <int, string> sfOpL = i => "{0,-" + i + "}"; Func <int, string> sfOpR = i => "{0," + i + "}"; var strBuilder = new StringBuilder(); switch (Location) { case PrintLocation.Center: strBuilder.AppendLine(NfString.PrintInCenter(Text, Width)); break; case PrintLocation.Left: strBuilder.AppendLine(string.Format(sfOpL(Width), Text)); break; case PrintLocation.Right: strBuilder.AppendLine(string.Format(sfOpR(Width), Text.Trim())); break; } if (_height <= 1) { return(strBuilder.ToStringUnixNewline()); } for (var i = 0; i < _height - 1; i++) { switch (Location) { case PrintLocation.Center: strBuilder.AppendLine(NfString.PrintInCenter(Config.GraphChars.LifeLine.ToString(), Width)); break; case PrintLocation.Left: strBuilder.AppendLine(string.Format(sfOpL(Width), Config.GraphChars.LifeLine)); break; case PrintLocation.Right: strBuilder.AppendLine(string.Format(sfOpR(Width), Config.GraphChars.LifeLine)); break; } } switch (Location) { case PrintLocation.Center: strBuilder.AppendLine(NfString.PrintInCenter(new string(Config.GraphChars.Rail, 3), Width)); break; case PrintLocation.Left: strBuilder.AppendLine(string.Format(sfOpL(Width), new string(Config.GraphChars.Rail, 3))); break; case PrintLocation.Right: strBuilder.AppendLine(string.Format(sfOpR(Width), new string(Config.GraphChars.Rail, 3))); break; } return(strBuilder.ToStringUnixNewline()); }