-void wxComboBox::DoMoveWindow(int x, int y, int width, int height)
-{
- // here is why this is necessary: if the width is negative, the combobox
- // window proc makes the window of the size width*height instead of
- // interpreting height in the usual manner (meaning the height of the drop
- // down list - usually the height specified in the call to MoveWindow()
- // will not change the height of combo box per se)
- //
- // this behaviour is not documented anywhere, but this is just how it is
- // here (NT 4.4) and, anyhow, the check shouldn't hurt - however without
- // the check, constraints/sizers using combos may break the height
- // constraint will have not at all the same value as expected
- if ( width < 0 )
- return;
-
- int cx, cy;
- wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
-
- // what should the height of the drop down list be? we choose 10 items by
- // default and also 10 items max (if we always use n, the list will never
- // have vertical scrollbar)
- int n = GetCount();
- if ( !n || (n > 10) )
- n = 10;
-
- height = (n + 1)* EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
-
- wxControl::DoMoveWindow(x, y, width, height);
-}
-
-wxSize wxComboBox::DoGetBestSize() const
-{
- // the choice calculates the horz size correctly, but not the vertical
- // component: correct it
- wxSize size = wxChoice::DoGetBestSize();
-
- int cx, cy;
- wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
- size.y = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
-
- return size;
-}
-