Пример #1
0
  public int computeMaximumTextSize(final long contentX2) {
    final int length = getLength();
    final long x = getX();
    if (contentX2 >= (x + getWidth())) {
      return length;
    }

    final GlyphList gs = getGlyphs();
    long runningPos = x;
    final int offset = getOffset();
    final int maxPos = offset + length;

    for (int i = offset; i < maxPos; i++) {
      final Glyph g = gs.getGlyph(i);
      runningPos += RenderableText.convert(g.getWidth());
      if (i != offset) {
        runningPos += g.getSpacing().getMinimum();
      }
      if (runningPos > contentX2) {
        return Math.max(0, i - offset);
      }
    }
    return length;
  }