From: Julian Smart Date: Tue, 31 Jan 2006 13:51:33 +0000 (+0000) Subject: Introduced the ability to size a book control based on the currently selected page X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/93bfe54527a7a64ea87cdc03be3015f7963fd227 Introduced the ability to size a book control based on the currently selected page git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- 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