Use GetBest{Height,Width}() in wxBookCtrlBase to compute the controller
control size height/width from its known (from wxBookCtrlBase size itself)
width/height. This will allow to correctly compute the size of wxListCtrl used
by wxListbook once it provides the necessary support for width-from-height and
height-from-width calculations.
See #13898.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71393
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const
{
wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const
{
- // We need to add the size of the controller and the border between if it's
- // shown. Notice that we don't use GetControllerSize() here as it returns
- // the actual size while we want the best size here.
+ // Add the size of the controller and the border between if it's shown.
if ( !m_bookctrl || !m_bookctrl->IsShown() )
return sizePage;
if ( !m_bookctrl || !m_bookctrl->IsShown() )
return sizePage;
- const wxSize sizeController = m_bookctrl->GetBestSize();
+ const wxSize sizeController = GetControllerSize();
wxSize size = sizePage;
if ( IsVertical() )
wxSize size = sizePage;
if ( IsVertical() )
if ( !m_bookctrl || !m_bookctrl->IsShown() )
return wxSize(0, 0);
if ( !m_bookctrl || !m_bookctrl->IsShown() )
return wxSize(0, 0);
- const wxSize sizeClient = GetClientSize(),
- sizeCtrl = m_bookctrl->GetBestSize();
+ const wxSize sizeClient = GetClientSize();
+ // Ask for the best width/height considering the other direction.
if ( IsVertical() )
{
size.x = sizeClient.x;
if ( IsVertical() )
{
size.x = sizeClient.x;
+ size.y = m_bookctrl->GetBestHeight(sizeClient.x);
}
else // left/right aligned
{
}
else // left/right aligned
{
+ size.x = m_bookctrl->GetBestWidth(sizeClient.y);