예제 #1
0
파일: Block.cs 프로젝트: nofuture-git/31g
        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());
        }
예제 #2
0
        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());
        }
예제 #3
0
파일: Entry.cs 프로젝트: nofuture-git/31g
        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());
        }