]> git.saurik.com Git - wxWidgets.git/commitdiff
Introduced the ability to size a book control based on the currently selected page
authorJulian Smart <julian@anthemion.co.uk>
Tue, 31 Jan 2006 13:51:33 +0000 (13:51 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Tue, 31 Jan 2006 13:51:33 +0000 (13:51 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/bookctrl.h
src/common/bookctrl.cpp

index 71d1a392836def49c43b0f95dea717d6f2133e1d..ea8784a5db03c4758882ff04cc211a83ede184f4 100644 (file)
@@ -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
index 63f34b0d7bcedf0aba21f6dcf2a04decf421bfda..b0a8dea974e337974cc2564a21c9435fc86d51fd 100644 (file)
@@ -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