void drawRectangles (Rectangle [] rects) {
void drawRectangles (Rectangle [] rects, boolean stippled) {
void drawRectangles (Rectangle [] rects) {	if (parent != null) {		if (parent.isDisposed ()) return;		Shell shell = parent.getShell ();		shell.update (true);	} else {		display.update ();	}	int bandWidth = 1;	int hwndTrack = OS.GetDesktopWindow ();	if (parent != null) hwndTrack = parent.handle;	int hDC = OS.GetDCEx (hwndTrack, 0, OS.DCX_CACHE);	int hBitmap = 0, hBrush = 0, oldBrush = 0;	if (stippled) {		bandWidth = 3;		byte [] bits = {-86, 0, 85, 0, -86, 0, 85, 0, -86, 0, 85, 0, -86, 0, 85, 0};		hBitmap = OS.CreateBitmap (8, 8, 1, 1, bits);		hBrush = OS.CreatePatternBrush (hBitmap);		oldBrush = OS.SelectObject (hDC, hBrush);	}	for (int i=0; i<rects.length; i++) {		Rectangle rect = rects [i];		OS.PatBlt (hDC, rect.x, rect.y, rect.width, bandWidth, OS.PATINVERT);		OS.PatBlt (hDC, rect.x, rect.y + bandWidth, bandWidth, rect.height - (bandWidth * 2), OS.PATINVERT);		OS.PatBlt (hDC, rect.x + rect.width - bandWidth, rect.y + bandWidth, bandWidth, rect.height - (bandWidth * 2), OS.PATINVERT);		OS.PatBlt (hDC, rect.x, rect.y + rect.height - bandWidth, rect.width, bandWidth, OS.PATINVERT);	}	if (stippled) {		OS.SelectObject (hDC, oldBrush);		OS.DeleteObject (hBrush);		OS.DeleteObject (hBitmap);	}	OS.ReleaseDC (hwndTrack, hDC);}