]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/bookctrl.cpp
Fix bug with using invalid date in wxMSW wxCalendarCtrl.
[wxWidgets.git] / src / common / bookctrl.cpp
index 5392388681f206df02125550ebbe1127f924d4c6..d551d8bf2e3fd09d7bc72bb0be113bef82e93e87 100644 (file)
@@ -55,8 +55,6 @@ void wxBookCtrlBase::Init()
 {
     m_selection = wxNOT_FOUND;
     m_bookctrl = NULL;
-    m_imageList = NULL;
-    m_ownsImageList = false;
     m_fitToCurrentPage = false;
 
 #if defined(__WXWINCE__)
@@ -89,39 +87,6 @@ wxBookCtrlBase::Create(wxWindow *parent,
                      );
 }
 
-wxBookCtrlBase::~wxBookCtrlBase()
-{
-    if ( m_ownsImageList )
-    {
-        // may be NULL, ok
-        delete m_imageList;
-    }
-}
-
-// ----------------------------------------------------------------------------
-// image list
-// ----------------------------------------------------------------------------
-
-void wxBookCtrlBase::SetImageList(wxImageList *imageList)
-{
-    if ( m_ownsImageList )
-    {
-        // may be NULL, ok
-        delete m_imageList;
-
-        m_ownsImageList = false;
-    }
-
-    m_imageList = imageList;
-}
-
-void wxBookCtrlBase::AssignImageList(wxImageList* imageList)
-{
-    SetImageList(imageList);
-
-    m_ownsImageList = true;
-}
-
 // ----------------------------------------------------------------------------
 // geometry
 // ----------------------------------------------------------------------------
@@ -140,7 +105,10 @@ void wxBookCtrlBase::DoInvalidateBestSize()
 
 wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const
 {
-    // we need to add the size of the choice control and the border between
+    // 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;
@@ -318,19 +286,19 @@ wxSize wxBookCtrlBase::GetControllerSize() const
     if ( !m_bookctrl || !m_bookctrl->IsShown() )
         return wxSize(0, 0);
 
-    const wxSize sizeClient = GetClientSize(),
-                 sizeCtrl = m_bookctrl->GetBestSize();
+    const wxSize sizeClient = GetClientSize();
 
     wxSize size;
 
+    // Ask for the best width/height considering the other direction.
     if ( IsVertical() )
     {
         size.x = sizeClient.x;
-        size.y = sizeCtrl.y;
+        size.y = m_bookctrl->GetBestHeight(sizeClient.x);
     }
     else // left/right aligned
     {
-        size.x = sizeCtrl.x;
+        size.x = m_bookctrl->GetBestWidth(sizeClient.y);
         size.y = sizeClient.y;
     }