Account correctly for the controller when computing wxBookCtrl best size.

We must not increase the total control size in the direction along the
controller window as the size of the controller in this direction is
determined by the size of the control itself. So doing this resulted in always
increasing best size in this direction to be at least equal to the current
size which was wrong.

Closes #14496.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-09-27 12:47:40 +00:00
parent 602af335e4
commit 6c51ca3750

View File

@@ -109,21 +109,17 @@ wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const
if ( !m_bookctrl || !m_bookctrl->IsShown() )
return sizePage;
// Notice that the controller size is its current size while we really want
// to have its best size. So we only take into account its size in the
// direction in which we should add it but not in the other one, where the
// controller size is determined by the size of wxBookCtrl itself.
const wxSize sizeController = GetControllerSize();
wxSize size = sizePage;
if ( IsVertical() )
{
if ( sizeController.x > sizePage.x )
size.x = sizeController.x;
size.y += sizeController.y + GetInternalBorder();
}
else // left/right aligned
{
size.x += sizeController.x + GetInternalBorder();
if ( sizeController.y > sizePage.y )
size.y = sizeController.y;
}
return size;
}