calculatePadding method

void calculatePadding(
  1. double pad
)

Implementation

void calculatePadding(double pad) {
  ///////////////////
  /* Clear Padding */
  ///////////////////
  cellpadding.clear();

  ////////////////
  /* Do Nothing */
  ////////////////
  if (pad == 0) return;

  ////////////
  /* Shrink */
  ////////////
  if (pad.isNegative) return shrinkBy(pad);

  if (paddingType == PaddingType.none) return;

  switch (paddingType) {
    case PaddingType.none:
      break;

    //////////////////////
    /* Pad First Column */
    //////////////////////
    case PaddingType.first:
      {
        cellpadding[0] = pad;
        break;
      }

    /////////////////////
    /* Pad Last Column */
    /////////////////////
    case PaddingType.last:
      {
        cellpadding[widths.length - 1] = pad;
        break;
      }

    ////////////////////////////
    /* Pad Each Column Evenly */
    ////////////////////////////
    case PaddingType.evenly:
      {
        double p = pad / widths.length;
        widths.forEach((key, value) => cellpadding[key] = p);
        break;
      }

    ////////////////////////////////////////
    /* Pad Each Proportionate to its Size */
    ////////////////////////////////////////
    case PaddingType.proportionately:
      {
        double totalWidth = 0;
        widths.forEach((key, width) => totalWidth += width);
        widths.forEach((key, width) {
          double percentageWidth = (width) / totalWidth;
          double p = pad * percentageWidth;
          cellpadding[key] = p;
        });
      }
  }
}