PosCenter.cs 607 B

1234567891011121314151617181920
  1. namespace Terminal.Gui.ViewBase;
  2. /// <summary>
  3. /// Represents a position that is centered.
  4. /// </summary>
  5. public record PosCenter : Pos
  6. {
  7. /// <inheritdoc/>
  8. public override string ToString () { return "Center"; }
  9. internal override int GetAnchor (int size) { return size / 2; }
  10. internal override int Calculate (int superviewDimension, Dim dim, View us, Dimension dimension)
  11. {
  12. // Protect against negative dimensions
  13. int newDimension = Math.Max (dim.Calculate (0, superviewDimension, us, dimension), 0);
  14. return (superviewDimension - newDimension) / 2;
  15. }
  16. }