if (!simple && i == selectedIndex) tabW += curveWidth - curveIndent;
public Point computeSize (int wHint, int hHint, boolean changed) {	checkWidget();		// preferred width of tab area to show all tabs	int tabW = 0;	GC gc = new GC(this);	for (int i = 0; i < items.length; i++) {		if (single) {			tabW = Math.max(tabW, items[i].preferredWidth(gc, true, false));		} else {			tabW += items[i].preferredWidth(gc, i == selectedIndex, false);			if (!simple && i == selectedIndex) tabW += curveWidth - curveIndent;		}	}	gc.dispose();	tabW += 3;	if (showMax) tabW += BUTTON_SIZE;	if (showMin) tabW += BUTTON_SIZE;	if (single) tabW += 3*BUTTON_SIZE/2; //chevron	if (topRight != null) tabW += topRight.computeSize(SWT.DEFAULT, tabHeight).x;		int controlW = 0;	int controlH = 0;	// preferred size of controls in tab items	for (int i = 0; i < items.length; i++) {		Control control = items[i].getControl();		if (control != null && !control.isDisposed()){			Point size = control.computeSize (wHint, hHint);			controlW = Math.max (controlW, size.x);			controlH = Math.max (controlH, size.y);		}	}	int minWidth = Math.max(tabW, controlW);	int minHeight = (minimized) ? 0 : controlH;	if (minWidth == 0) minWidth = DEFAULT_WIDTH;	if (minHeight == 0) minHeight = DEFAULT_HEIGHT;		if (wHint != SWT.DEFAULT) minWidth  = wHint;	if (hHint != SWT.DEFAULT) minHeight = hHint;	Rectangle trim = computeTrim(0, 0, minWidth, minHeight);	return new Point (trim.width, trim.height);}