]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/bookctrl.cpp
In wxComboCtrlBase::DrawButton(), let the button background rendering changes also...
[wxWidgets.git] / src / common / bookctrl.cpp
index cfc13b78a3e537c3c80629e50cfc39037a6da1eb..5392388681f206df02125550ebbe1127f924d4c6 100644 (file)
@@ -53,6 +53,7 @@ END_EVENT_TABLE()
 
 void wxBookCtrlBase::Init()
 {
+    m_selection = wxNOT_FOUND;
     m_bookctrl = NULL;
     m_imageList = NULL;
     m_ownsImageList = false;
@@ -311,7 +312,10 @@ void wxBookCtrlBase::OnSize(wxSizeEvent& event)
 
 wxSize wxBookCtrlBase::GetControllerSize() const
 {
-    if ( !m_bookctrl )
+    // For at least some book controls (e.g. wxChoicebook) it may make sense to
+    // (temporarily?) hide the controller and we shouldn't leave extra space
+    // for the hidden control in this case.
+    if ( !m_bookctrl || !m_bookctrl->IsShown() )
         return wxSize(0, 0);
 
     const wxSize sizeClient = GetClientSize(),
@@ -467,6 +471,19 @@ int wxBookCtrlBase::GetNextPage(bool forward) const
     return nPage;
 }
 
+bool wxBookCtrlBase::DoSetSelectionAfterInsertion(size_t n, bool bSelect)
+{
+    if ( bSelect )
+        SetSelection(n);
+    else if ( m_selection == wxNOT_FOUND )
+        ChangeSelection(0);
+    else // We're not going to select this page.
+        return false;
+
+    // Return true to indicate that we selected this page.
+    return true;
+}
+
 int wxBookCtrlBase::DoSetSelection(size_t n, int flags)
 {
     wxCHECK_MSG( n < GetPageCount(), wxNOT_FOUND,