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. if ( !m_bookctrl || !m_bookctrl->IsShown() ) return sizePage; const wxSize sizeController = m_bookctrl->GetBestSize(); 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; }
wxSize wxChoicebook::CalcSizeFromPage(const wxSize& sizePage) const { // we need to add the size of the choice control and the border between const wxSize sizeChoice = GetControllerSize(); wxSize size = sizePage; if ( IsVertical() ) { size.y += sizeChoice.y + GetInternalBorder(); } else // left/right aligned { size.x += sizeChoice.x + GetInternalBorder(); } return size; }
wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const { // 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; }
wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const { // we need to add the size of the choice control and the border between 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; }
wxRect wxBookCtrlBase::GetPageRect() const { const wxSize size = GetControllerSize(); wxPoint pt; wxRect rectPage(pt, GetClientSize()); switch ( GetWindowStyle() & wxBK_ALIGN_MASK ) { default: wxFAIL_MSG( wxT("unexpected alignment") ); // fall through case wxBK_TOP: rectPage.y = size.y + GetInternalBorder(); // fall through case wxBK_BOTTOM: rectPage.height -= size.y + GetInternalBorder(); if (rectPage.height < 0) rectPage.height = 0; break; case wxBK_LEFT: rectPage.x = size.x + GetInternalBorder(); // fall through case wxBK_RIGHT: rectPage.width -= size.x + GetInternalBorder(); if (rectPage.width < 0) rectPage.width = 0; break; } return rectPage; }
wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const { // 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 ( 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; }