redraw(x + leftMargin, y + topMargin, width, height, true);
redraw(x, y, width, height, true);
void draw(int x, int y, int width, int height, boolean clearBackground) {	if (clearBackground) {		redraw(x + leftMargin, y + topMargin, width, height, true);	} else {		int startLine = getLineIndex(y);		int endY = y + height;		int paintY = getLinePixel(startLine);		int paintX = getClientArea().x + leftMargin - getHorizontalPixel();		int lineCount = isSingleLine() ? 1 : content.getLineCount();		GC gc = getGC();		Color background = getBackground();		Color foreground = getForeground();		for (int i = startLine; paintY < endY && i < lineCount; i++) {			String line = content.getLine(i);			paintY += renderer.drawLine(line, i, paintX, paintY, gc, background, foreground, clearBackground);		}		gc.dispose();	}}