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; }
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); }
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()); }