From 402dae7b464a7b24f8acc61887d5b939a6dc3cc5 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 9 May 2012 14:24:44 +0000 Subject: [PATCH] Improve wxBookCtrlBase controller size calculations. 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 --- src/common/bookctrl.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/common/bookctrl.cpp b/src/common/bookctrl.cpp index 4a588a4ddb..d551d8bf2e 100644 --- a/src/common/bookctrl.cpp +++ b/src/common/bookctrl.cpp @@ -105,13 +105,11 @@ void wxBookCtrlBase::DoInvalidateBestSize() 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; - const wxSize sizeController = m_bookctrl->GetBestSize(); + const wxSize sizeController = GetControllerSize(); wxSize size = sizePage; if ( IsVertical() ) @@ -288,19 +286,19 @@ wxSize wxBookCtrlBase::GetControllerSize() const 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; } -- 2.45.2