]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/notebook.cpp
VTK wrapper of vtkRenderWindow for wxPython. Tested on MSW so far.
[wxWidgets.git] / src / msw / notebook.cpp
index ef0944b4af45df4ec01eeb42f3c86d69997c4a5d..d2fe79e5575a770a55b2a422975b06dd98447b22 100644 (file)
 
 // wxWindows
 #ifndef WX_PRECOMP
 
 // wxWindows
 #ifndef WX_PRECOMP
-  #include  <wx/string.h>
+  #include  "wx/string.h"
 #endif  // WX_PRECOMP
 
 #endif  // WX_PRECOMP
 
-#include  <wx/log.h>
-#include  <wx/imaglist.h>
-#include  <wx/event.h>
-#include  <wx/control.h>
-#include  <wx/notebook.h>
+#include  "wx/log.h"
+#include  "wx/imaglist.h"
+#include  "wx/event.h"
+#include  "wx/control.h"
+#include  "wx/notebook.h"
 
 
-#include  <wx/msw/private.h>
+#include  "wx/msw/private.h"
 
 // Windows standard headers
 #ifndef   __WIN95__
 
 // Windows standard headers
 #ifndef   __WIN95__
@@ -167,7 +167,7 @@ bool wxNotebook::Create(wxWindow *parent,
     tabStyle |= TCS_VERTICAL;
   if (m_windowStyle & wxNB_RIGHT)
     tabStyle |= TCS_VERTICAL|TCS_RIGHT;
     tabStyle |= TCS_VERTICAL;
   if (m_windowStyle & wxNB_RIGHT)
     tabStyle |= TCS_VERTICAL|TCS_RIGHT;
-        
+
 
   if ( !MSWCreate(GetId(), GetParent(), WC_TABCONTROL,
                   this, NULL, pos.x, pos.y, size.x, size.y,
 
   if ( !MSWCreate(GetId(), GetParent(), WC_TABCONTROL,
                   this, NULL, pos.x, pos.y, size.x, size.y,
@@ -329,6 +329,9 @@ bool wxNotebook::RemovePage(int nPage)
 
   m_aPages.Remove(nPage);
 
 
   m_aPages.Remove(nPage);
 
+  if ( m_aPages.IsEmpty() )
+      m_nSelection = -1;
+
   return TRUE;
 }
 
   return TRUE;
 }
 
@@ -344,6 +347,8 @@ bool wxNotebook::DeleteAllPages()
 
   TabCtrl_DeleteAllItems(m_hwnd);
 
 
   TabCtrl_DeleteAllItems(m_hwnd);
 
+  m_nSelection = -1;
+
   return TRUE;
 }
 
   return TRUE;
 }
 
@@ -408,6 +413,14 @@ bool wxNotebook::InsertPage(int nPage,
   // this updates internal flag too - otherwise it will get out of sync
   pPage->Show(FALSE);
 
   // this updates internal flag too - otherwise it will get out of sync
   pPage->Show(FALSE);
 
+  // fit the notebook page to the tab control's display area
+  RECT rc;
+  rc.left = rc.top = 0;
+  GetSize((int *)&rc.right, (int *)&rc.bottom);
+  TabCtrl_AdjustRect(m_hwnd, FALSE, &rc);
+  pPage->SetSize(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
+
+
   // some page should be selected: either this one or the first one if there is
   // still no selection
   int selNew = -1;
   // some page should be selected: either this one or the first one if there is
   // still no selection
   int selNew = -1;
@@ -438,8 +451,6 @@ void wxNotebook::OnSize(wxSizeEvent& event)
   for ( size_t nPage = 0; nPage < nCount; nPage++ ) {
     wxNotebookPage *pPage = m_aPages[nPage];
     pPage->SetSize(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
   for ( size_t nPage = 0; nPage < nCount; nPage++ ) {
     wxNotebookPage *pPage = m_aPages[nPage];
     pPage->SetSize(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
-    if ( pPage->GetAutoLayout() )
-      pPage->Layout();
   }
 
   event.Skip();
   }
 
   event.Skip();
@@ -453,7 +464,7 @@ void wxNotebook::OnSelChange(wxNotebookEvent& event)
       int sel = event.GetOldSelection();
       if ( sel != -1 )
         m_aPages[sel]->Show(FALSE);
       int sel = event.GetOldSelection();
       if ( sel != -1 )
         m_aPages[sel]->Show(FALSE);
-      
+
       sel = event.GetSelection();
       if ( sel != -1 )
       {
       sel = event.GetSelection();
       if ( sel != -1 )
       {
@@ -461,7 +472,7 @@ void wxNotebook::OnSelChange(wxNotebookEvent& event)
         pPage->Show(TRUE);
         pPage->SetFocus();
       }
         pPage->Show(TRUE);
         pPage->SetFocus();
       }
-      
+
       m_nSelection = sel;
   }
 
       m_nSelection = sel;
   }