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 rid = OS.Ph_DEV_RID;	if (parent != null) rid = OS.PtWidgetRid (parent.handle);		int phGC = OS.PgCreateGC (0);	if (phGC == 0) return;	int prevContext = OS.PgSetGC (phGC);	OS.PgSetRegion (rid);	OS.PgSetDrawMode (OS.Pg_DrawModeDSx);	OS.PgSetFillColor (0xffffff);		int bandWidth = 0;	if (stippled) {		bandWidth = 2;		OS.PgSetFillTransPat (OS.Pg_PAT_HALF);	}	for (int i=0; i<rects.length; i++) {		Rectangle r = rects [i];		int x1 = r.x;		int y1 = r.y;		int x2 = r.x + r.width;		int y2 = r.y + r.height;		OS.PgDrawIRect(x1, y1, x2, y1 + bandWidth, OS.Pg_DRAW_FILL);		OS.PgDrawIRect(x1, y1 + bandWidth + 1, x1 + bandWidth, y2 - bandWidth - 1, OS.Pg_DRAW_FILL);		OS.PgDrawIRect(x2 - bandWidth, y1 + bandWidth + 1, x2, y2 - bandWidth - 1, OS.Pg_DRAW_FILL);		OS.PgDrawIRect(x1, y2 - bandWidth, x2, y2, OS.Pg_DRAW_FILL);	}	OS.PgSetGC (prevContext);		OS.PgDestroyGC (phGC);}