+ // Add the size of the controller and the border between if it's shown.
+ 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() )
+ size.y += sizeController.y + GetInternalBorder();
+ else // left/right aligned
+ size.x += sizeController.x + GetInternalBorder();
+
+ return size;
+}
+
+void wxBookCtrlBase::SetPageSize(const wxSize& size)
+{
+ SetClientSize(CalcSizeFromPage(size));
+}
+
+wxSize wxBookCtrlBase::DoGetBestSize() const
+{
+ wxSize bestSize;
+
+ if (m_fitToCurrentPage && GetCurrentPage())
+ {
+ bestSize = GetCurrentPage()->GetBestSize();
+ }
+ else