getWidth method

double? getWidth({
  1. double? widthParent,
})

Implementation

double? getWidth({double? widthParent})
{
  if (!hasBoundedWidth) return null;

  double? myWidth;

  // width
  if (width != null)
  {
    myWidth = width;
  }

  // percentage width based on parent
  else if (widthPercentage != null && widthParent != null)
  {
    myWidth = ((widthPercentage!/100) * widthParent);
  }

  // apply model constraints
  if (myWidth != null)
  {
    // must be greater than minWidth
    var minWidth = getMinWidth(widthParent: widthParent);
    if (minWidth != null && myWidth < minWidth)
    {
      myWidth = minWidth;
    }

    // must be greater than maxWidth
    var maxWidth = getMaxWidth(widthParent: widthParent);
    if (maxWidth != null && myWidth > maxWidth)
    {
      myWidth = maxWidth;
    }
  }

  // cannot be negative
  if (myWidth != null && myWidth.isNegative)
  {
    myWidth = 0;
  }

  return myWidth;
}