height = tm.tmHeight;
height = Math.max (tm.tmHeight, OS.GetSystemMetrics (OS.SM_CYVSCROLL));
public Point computeSize (int wHint, int hHint, boolean changed) {	checkWidget ();	int width = 0, height = 0;	if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) {		int newFont, oldFont = 0;		int hDC = OS.GetDC (hwndText);		newFont = OS.SendMessage (hwndText, OS.WM_GETFONT, 0, 0);		if (newFont != 0) oldFont = OS.SelectObject (hDC, newFont);		TEXTMETRIC tm = OS.IsUnicode ? (TEXTMETRIC) new TEXTMETRICW () : new TEXTMETRICA ();		OS.GetTextMetrics (hDC, tm);		height = tm.tmHeight;		RECT rect = new RECT ();		int [] max = new int [1];		OS.SendMessage (hwndUpDown , OS.UDM_GETRANGE32, null, max);		String string = String.valueOf (max [0]);		if (digits > 0) {			StringBuffer buffer = new StringBuffer ();			buffer.append (string);			buffer.append (getDecimalSeparator ());			int count = digits - string.length ();			while (count >= 0) {				buffer.append ("0");				count--;			}			string = buffer.toString ();		}		TCHAR buffer = new TCHAR (getCodePage (), string, false);		int flags = OS.DT_CALCRECT | OS.DT_EDITCONTROL | OS.DT_NOPREFIX;		OS.DrawText (hDC, buffer, buffer.length (), rect, flags);		width = rect.right - rect.left;		if (newFont != 0) OS.SelectObject (hDC, oldFont);		OS.ReleaseDC (hwndText, hDC);	}	if (width == 0) width = DEFAULT_WIDTH;	if (height == 0) height = DEFAULT_HEIGHT;	if (wHint != SWT.DEFAULT) width = wHint;	if (hHint != SWT.DEFAULT) height = hHint;	Rectangle trim = computeTrim (0, 0, width, height);	if (hHint == SWT.DEFAULT) {		trim.height = Math.max (trim.height, OS.GetSystemMetrics (OS.SM_CYVSCROLL));	}	return new Point (trim.width, trim.height);}