scroll( pixels * -1, 0, 0, 0, clientArea.width, clientArea.height, true);
if (pixels > 0) { int sourceX = leftMargin + pixels; int scrollWidth = clientArea.width - sourceX - rightMargin; int scrollHeight = clientArea.height - topMargin - bottomMargin; scroll( leftMargin, topMargin, sourceX, topMargin, scrollWidth, scrollHeight, true); if (sourceX > scrollWidth) {   super.redraw( leftMargin + scrollWidth, topMargin, pixels - scrollWidth, scrollHeight, true); } } else { int destinationX = leftMargin - pixels; int scrollWidth = clientArea.width - destinationX - rightMargin; int scrollHeight = clientArea.height - topMargin - bottomMargin; scroll( destinationX, topMargin, leftMargin, topMargin, scrollWidth, scrollHeight, true); if (destinationX > scrollWidth) {   super.redraw( leftMargin + scrollWidth, topMargin, -pixels - scrollWidth, scrollHeight, true); } }
void scrollHorizontal(int pixels) {	Rectangle clientArea;		if (pixels == 0) {		return;	}	clientArea = getClientArea();	scroll(		pixels * -1, 0, 					// destination x, y		0, 0,						// source x, y		clientArea.width, clientArea.height, true);	horizontalScrollOffset += pixels;	setCaretLocation();}