drawLine(line, i, paintY, gc, background, foreground, fontData, clearBackground);
renderer.drawLine(line, i, paintY, gc, background, foreground, fontData, clearBackground);
void draw(int x, int y, int width, int height, boolean clearBackground) {	if (clearBackground) {		redraw(x, y, width, height, true);	}	else {		int startLine = (y + verticalScrollOffset) / lineHeight;		int endY = y + height;		int paintYFromTopLine = (startLine - topIndex) * lineHeight;		int topLineOffset = (topIndex * lineHeight - verticalScrollOffset);		int paintY = paintYFromTopLine + topLineOffset;	// adjust y position for pixel based scrolling		int lineCount = content.getLineCount();		Color background = getBackground();		Color foreground = getForeground();		GC gc = new GC(this);		FontData fontData = gc.getFont().getFontData()[0];			if (isSingleLine()) {			lineCount = 1;			if (startLine > 1) {				startLine = 1;			}		}		for (int i = startLine; paintY < endY && i < lineCount; i++, paintY += lineHeight) {			String line = content.getLine(i);			drawLine(line, i, paintY, gc, background, foreground, fontData, clearBackground);		}		gc.dispose();		}}