wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const
{
- // we need to add the size of the choice control and the border between
+ // Add the size of the controller and the border between if it's shown.
+ if ( !m_bookctrl || !m_bookctrl->IsShown() )
+ return sizePage;
+
const wxSize sizeController = GetControllerSize();
wxSize size = sizePage;
if ( !m_bookctrl || !m_bookctrl->IsShown() )
return wxSize(0, 0);
- const wxSize sizeClient = GetClientSize(),
- sizeCtrl = m_bookctrl->GetBestSize();
+ const wxSize sizeClient = GetClientSize();
wxSize size;
+ // Ask for the best width/height considering the other direction.
if ( IsVertical() )
{
size.x = sizeClient.x;
- size.y = sizeCtrl.y;
+ size.y = m_bookctrl->GetBestHeight(sizeClient.x);
}
else // left/right aligned
{
- size.x = sizeCtrl.x;
+ size.x = m_bookctrl->GetBestWidth(sizeClient.y);
size.y = sizeClient.y;
}