void drawRectangles (Rectangle [] rects) {
void drawRectangles (Rectangle [] rects, boolean stippled) {
void drawRectangles (Rectangle [] rects) {	if (parent != null) {		if (parent.isDisposed ()) return;		parent.getShell ().update ();	} else {		display.update ();	}	int xDisplay = display.xDisplay;	int color = OS.XWhitePixel (xDisplay, 0);	int xWindow = OS.XDefaultRootWindow (xDisplay);	if (parent != null) {		xWindow = OS.XtWindow (parent.handle);		if (xWindow == 0) return;		int [] argList = {OS.XmNforeground, 0, OS.XmNbackground, 0};		OS.XtGetValues (parent.handle, argList, argList.length / 2);		color = argList [1] ^ argList [3];	}	int gc = OS.XCreateGC (xDisplay, xWindow, 0, null);	OS.XSetForeground (xDisplay, gc, color);	OS.XSetSubwindowMode (xDisplay, gc, OS.IncludeInferiors);	OS.XSetFunction (xDisplay, gc, OS.GXxor);	int stipplePixmap = 0;	if (stippled) {		byte [] bits = {-86, 0, 85, 0, -86, 0, 85, 0, -86, 0, 85, 0, -86, 0, 85, 0};		stipplePixmap = OS.XCreateBitmapFromData (xDisplay, xWindow, bits, 8, 8);		OS.XSetStipple (xDisplay, gc, stipplePixmap);		OS.XSetFillStyle (xDisplay, gc, OS.FillStippled);		OS.XSetLineAttributes (xDisplay, gc, 3, OS.LineSolid, OS.CapButt, OS.JoinMiter);	}	for (int i=0; i<rects.length; i++) {		Rectangle rect = rects [i];		OS.XDrawRectangle (xDisplay, xWindow, gc, rect.x, rect.y, rect.width, rect.height);	}	if (stippled) {		OS.XFreePixmap (xDisplay, stipplePixmap);	}	OS.XFreeGC (xDisplay, gc);}