borderPolygon = new int[] { 0, 5, 1, 4, 1, 3, 3, 1,  4, 1, 5, 0, w-6, 0, w-5, 1, w-4, 1, w-2, 3, w-2, 4, w-1, 5, w-1, h-6, w-2, h-5, w-2, h-4, w-4, h-2, w-5, h-2, w-6, h-1, w-17, h-1, w-17, h+t-2, w-36, h-1, 5, h-1, 4, h-2, 3, h-2, 1, h-4, 1, h-5, 0, h-6, 0, 5};
void configure () {	Display display = parent.getDisplay ();	if (x == -1 || y == -1) {		Point point = display.getCursorLocation ();		x = point.x;		y = point.y;	}	Monitor monitor = parent.getMonitor ();	Rectangle dest = monitor.getBounds ();	Point size = getSize (dest.width / 4);	int w = size.x;	int h = size.y;	int t = (style & SWT.BALLOON) != 0 ? TIP_HEIGHT : 0;	int i = (style & SWT.BALLOON) != 0 ? 16 : 0;	tip.setSize (w, h + t);	int [] polyline;	spikeAbove = dest.height >= y + size.y + t;	if (dest.width >= x + size.x) {		if (dest.height >= y + size.y + t) {			polyline = new int [] {				0, 5+t, 1, 5+t, 1, 3+t, 3, 1+t, 5, 1+t, 5, t, 				16, t, 16, 0, 35, t,				w-5, t, w-5, 1+t, w-3, 1+t, w-1, 3+t, w-1, 5+t, w, 5+t,				w, h-5+t, w-1, h-5+t, w-1, h-3+t, w-2, h-3+t, w-2, h-2+t, w-3, h-2+t, w-3, h-1+t, w-5, h-1+t, w-5, h+t,				5, h+t, 5, h-1+t, 3, h-1+t, 3, h-2+t, 2, h-2+t, 2, h-3+t, 1, h-3+t, 1, h-5+t, 0, h-5+t, 				0, 5+t};			tip.setLocation (Math.max (0, x - i), y);		} else {			polyline = new int [] {				0, 5, 1, 5, 1, 3, 3, 1, 5, 1, 5, 0, 				w-5, 0, w-5, 1, w-3, 1, w-1, 3, w-1, 5, w, 5,				w, h-5, w-1, h-5, w-1, h-3, w-2, h-3, w-2, h-2, w-3, h-2, w-3, h-1, w-5, h-1, w-5, h,				35, h, 16, h+t, 16, h,				5, h, 5, h-1, 3, h-1, 3, h-2, 2, h-2, 2, h-3, 1, h-3, 1, h-5, 0, h-5, 				0, 5};			tip.setLocation (Math.max (0, x - i), y - size.y - t);		}	} else {		if (dest.height >= y + size.y + t) {			polyline = new int [] {				0, 5+t, 1, 5+t, 1, 3+t, 3, 1+t, 5, 1+t, 5, t, 				w-35, t, w-16, 0, w-16, t,				w-5, t, w-5, 1+t, w-3, 1+t, w-1, 3+t, w-1, 5+t, w, 5+t,				w, h-5+t, w-1, h-5+t, w-1, h-3+t, w-2, h-3+t, w-2, h-2+t, w-3, h-2+t, w-3, h-1+t, w-5, h-1+t, w-5, h+t,				5, h+t, 5, h-1+t, 3, h-1+t, 3, h-2+t, 2, h-2+t, 2, h-3+t, 1, h-3+t, 1, h-5+t, 0, h-5+t, 				0, 5+t};			tip.setLocation (Math.min (dest.width - size.x, x - size.x + i), y);		} else {			polyline = new int [] {				0, 5, 1, 5, 1, 3, 3, 1, 5, 1, 5, 0, 				w-5, 0, w-5, 1, w-3, 1, w-1, 3, w-1, 5, w, 5,				w, h-5, w-1, h-5, w-1, h-3, w-2, h-3, w-2, h-2, w-3, h-2, w-3, h-1, w-5, h-1, w-5, h,				w-16, h, w-16, h+t, w-35, h,				5, h, 5, h-1, 3, h-1, 3, h-2, 2, h-2, 2, h-3, 1, h-3, 1, h-5, 0, h-5, 				0, 5};			tip.setLocation (Math.min (dest.width - size.x, x - size.x + i), y - size.y - t);		}	}		if ((style & SWT.BALLOON) != 0) {		if (region != null) region.dispose ();		region = new Region (display);		region.add (polyline);		tip.setRegion (region);	}}