diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index 71d1a39283..ea8784a5db 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -131,6 +131,10 @@ public: // returns true if we have wxCHB_TOP or wxCHB_BOTTOM style bool IsVertical() const { return HasFlag(wxBK_BOTTOM | wxBK_TOP); } + // set/get option to shrink to fit current page + void SetShrinkMode(bool shrink) { m_shrinkToFit = shrink; } + bool GetShrinkMode() const { return m_shrinkToFit; } + // operations // ---------- @@ -229,6 +233,9 @@ protected: // controller buddy if available, NULL otherwise (usually for native book controls like wxNotebook) wxControl *m_bookctrl; + // Whether to shrink to fit current page + bool m_shrinkToFit; + private: // common part of all ctors diff --git a/src/common/bookctrl.cpp b/src/common/bookctrl.cpp index 63f34b0d7b..b0a8dea974 100644 --- a/src/common/bookctrl.cpp +++ b/src/common/bookctrl.cpp @@ -53,6 +53,7 @@ void wxBookCtrlBase::Init() m_bookctrl = NULL; m_imageList = NULL; m_ownsImageList = false; + m_shrinkToFit = false; #if defined(__WXWINCE__) m_internalBorder = 1; @@ -143,6 +144,9 @@ wxSize wxBookCtrlBase::DoGetBestSize() const bestSize.y = childBestSize.y; } } + + if (m_shrinkToFit && GetCurrentPage()) + bestSize = GetCurrentPage()->GetBestSize(); // convert display area to window area, adding the size necessary for the // tabs