docs: protected void calculateBounds(float _Width, float _Margin) {
          float maxValue       = 0;
          int   last           = 0;
          float maxLegendWidth = 0;
  
          if (mUseMaximumValue) {
              maxValue = mMaximumValue;
          }
          else {
              for (BarModel model : mData) {
                  if(model.getValue() > maxValue) {
                      maxValue = model.getValue();
                  }
              }
          }
  
  
          if (mShowBarLabel) {
              float measuredText;
              for (BarModel model : mData) {
                  measuredText = mValuePaint.measureText(model.getLegendLabel());
                  if (maxLegendWidth < measuredText) {
                      maxLegendWidth = measuredText;
                  }
              }
          }
  
          float legendWidthDistance = mShowBarLabel ? maxLegendWidth + mValueDistance : 0;
          float widthMultiplier = (mGraphWidth - legendWidthDistance) / maxValue;
  
          for (BarModel model : mData) {
              float width = model.getValue() * widthMultiplier;
              last += _Margin / 2;
              model.setBarBounds(new RectF(0, last, width, last + _Width));
              model.setLegendBounds(new RectF(last, 0, last + _Width, mLegendHeight));
              last += _Width + (_Margin / 2);
          }
  
          Utils.calculateLegendInformation(mData, 0, mContentRect.width(), mLegendPaint);
          mMaxFontHeight = Utils.calculateMaxTextHeight(mValuePaint, "190");
      }