コード例 #1
0
ファイル: CharBitmap.cs プロジェクト: satvidev/found-bits
        private int getPading(PaddingSide paddingSide)
        {
            bool directionVerticalNotHorizontal = true;
              if (PaddingSide.Left == paddingSide || PaddingSide.Right == paddingSide)
            directionVerticalNotHorizontal = false;

              int dim1From = 0;
              int dim1To = 0;
              int dim2To = 0;
              int dim1Step = 0;

              switch (paddingSide)
              {
            case PaddingSide.Top: dim1From = 0; dim1To = GetHeight() - 1; dim2To = GetWidth() - 1; dim1Step = 1; break;
            case PaddingSide.Bottom: dim1From = GetHeight() - 1; dim1To = 0; dim2To = GetWidth() - 1; dim1Step = -1; break;
            case PaddingSide.Left: dim1From = 0; dim1To = GetWidth() - 1; dim2To = GetHeight() - 1; dim1Step = 1; break;
            case PaddingSide.Right: dim1From = GetWidth() - 1; dim1To = 0; dim2To = GetHeight() - 1; dim1Step = -1; break;
              }

              int pos1 = dim1From;

              for (int p1 = 0; p1 < Math.Abs(dim1From - dim1To) + 1; p1++)
              {
            bool brejk = false;

            int pos2 = 0;
            while (pos2 <= dim2To)
            {
              if (directionVerticalNotHorizontal)
              {
            if (IsForegroundColor(pos2, pos1))
            {
              brejk = true;
              break;
            }
              }
              else
              {
            if (IsForegroundColor(pos1, pos2))
            {
              brejk = true;
              break;
            }
              }
              pos2++;
            }

            if (brejk)
              break;
            pos1 = pos1 + dim1Step;
              }

              if (1 == dim1Step)
              {
            return pos1;
              }
              return dim1From - pos1;
        }
コード例 #2
0
ファイル: CharBitmap.cs プロジェクト: xelablin/found-bits
        private int getPading(PaddingSide paddingSide)
        {
            bool directionVerticalNotHorizontal = true;

            if (PaddingSide.Left == paddingSide || PaddingSide.Right == paddingSide)
            {
                directionVerticalNotHorizontal = false;
            }

            int dim1From = 0;
            int dim1To   = 0;
            int dim2To   = 0;
            int dim1Step = 0;

            switch (paddingSide)
            {
            case PaddingSide.Top: dim1From = 0; dim1To = GetHeight() - 1; dim2To = GetWidth() - 1; dim1Step = 1; break;

            case PaddingSide.Bottom: dim1From = GetHeight() - 1; dim1To = 0; dim2To = GetWidth() - 1; dim1Step = -1; break;

            case PaddingSide.Left: dim1From = 0; dim1To = GetWidth() - 1; dim2To = GetHeight() - 1; dim1Step = 1; break;

            case PaddingSide.Right: dim1From = GetWidth() - 1; dim1To = 0; dim2To = GetHeight() - 1; dim1Step = -1; break;
            }

            int pos1 = dim1From;

            for (int p1 = 0; p1 < Math.Abs(dim1From - dim1To) + 1; p1++)
            {
                bool brejk = false;

                int pos2 = 0;
                while (pos2 <= dim2To)
                {
                    if (directionVerticalNotHorizontal)
                    {
                        if (IsForegroundColor(pos2, pos1))
                        {
                            brejk = true;
                            break;
                        }
                    }
                    else
                    {
                        if (IsForegroundColor(pos1, pos2))
                        {
                            brejk = true;
                            break;
                        }
                    }
                    pos2++;
                }

                if (brejk)
                {
                    break;
                }
                pos1 = pos1 + dim1Step;
            }

            if (1 == dim1Step)
            {
                return(pos1);
            }
            return(dim1From - pos1);
        }
コード例 #3
0
        private static string PadEither(string input, int totalWidth, char paddingChar, PaddingSide which)
        {
            StringBuilder result = new StringBuilder();

            result.Append(input);
            while (result.Length < totalWidth)
            {
                if ((which == PaddingSide.RIGHT) || (which == PaddingSide.BOTH))
                {
                    if (result.Length < totalWidth)
                    {
                        result.Append(paddingChar);
                    }
                }

                if ((which == PaddingSide.LEFT) || (which == PaddingSide.BOTH))
                {
                    if (result.Length < totalWidth)
                    {
                        result.Insert(0, paddingChar);
                    }
                }
            }

            return(result.ToString());
        }