width += rbBand.cxIdeal;
OS.SendMessage (handle, OS.RB_GETBANDBORDERS, i, rect); if ((rbBand.fStyle & OS.RBBS_BREAK) != 0) { width = Math.max (width, rowWidth); height += rowHeight; rowWidth = rowHeight = 0; } else if (i != 0) { rowWidth += 2; } rowWidth += rbBand.cx; rowHeight = Math.max (rowHeight, rbBand.cyMinChild + rect.top + rect.bottom);
public Point computeSize (int wHint, int hHint, boolean changed) {	checkWidget ();	int height = 0, width = 0;	RECT rect = new RECT ();	REBARBANDINFO rbBand = new REBARBANDINFO ();	rbBand.cbSize = REBARBANDINFO.sizeof;	rbBand.fMask = OS.RBBIM_IDEALSIZE;	int count = OS.SendMessage (handle, OS.RB_GETBANDCOUNT, 0, 0);	for (int i=0; i<count; i++) {		OS.SendMessage (handle, OS.RB_GETRECT, i, rect);		height = Math.max (height, rect.bottom - rect.top);		OS.SendMessage (handle, OS.RB_GETBANDINFO, i, rbBand);		width += rbBand.cxIdeal;	}	if (count != 0) width += 4;	if (width == 0) width = DEFAULT_WIDTH;	if (height == 0) height = DEFAULT_HEIGHT;	if (wHint != SWT.DEFAULT) width = wHint;	if (hHint != SWT.DEFAULT) height = hHint;	int border = getBorderWidth ();	width += border * 2;	height += border * 2;	return new Point (width, height);}