]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/nbkbase.cpp
toplevel code transferred to wxTopLevelWindow
[wxWidgets.git] / src / common / nbkbase.cpp
index da418151d9a71990b14436105d7ea7e27fc5b33a..ccc78efd571a3f26b6bb13e006704ebde51a7ffd 100644 (file)
 #if wxUSE_NOTEBOOK
 
 #ifndef WX_PRECOMP
 #if wxUSE_NOTEBOOK
 
 #ifndef WX_PRECOMP
-    #include "wx/notebook.h"
-    #include "wx/imaglist.h"
 #endif //WX_PRECOMP
 
 #endif //WX_PRECOMP
 
+#include "wx/imaglist.h"
+#include "wx/notebook.h"
+
 // ============================================================================
 // implementation
 // ============================================================================
 // ============================================================================
 // implementation
 // ============================================================================
@@ -90,10 +91,28 @@ wxSize wxNotebookBase::CalcSizeFromPage(const wxSize& sizePage)
     // this was just taken from wxNotebookSizer::CalcMin() and is, of
     // course, totally bogus - just like the original code was
     wxSize sizeTotal = sizePage;
     // this was just taken from wxNotebookSizer::CalcMin() and is, of
     // course, totally bogus - just like the original code was
     wxSize sizeTotal = sizePage;
+    
+    // Mac has large notebook borders.
+
     if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) )
     if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) )
+    {
         sizeTotal.x += 90;
         sizeTotal.x += 90;
+#ifdef __WXMAC__
+        sizeTotal.y += 28;
+#else
+        sizeTotal.y += 10;
+#endif
+    }
     else
     else
+    {
+#ifdef __WXMAC__
+        sizeTotal.x += 34;   // This is OK for Aqua.
+        sizeTotal.y += 46;
+#else
+        sizeTotal.x += 10;
         sizeTotal.y += 40;
         sizeTotal.y += 40;
+#endif
+    }
 
     return sizeTotal;
 }
 
     return sizeTotal;
 }
@@ -113,6 +132,17 @@ bool wxNotebookBase::DeletePage(int nPage)
     return TRUE;
 }
 
     return TRUE;
 }
 
+wxNotebookPage *wxNotebookBase::DoRemovePage(int nPage)
+{
+    wxCHECK_MSG( nPage >= 0 && (size_t)nPage < m_pages.GetCount(), NULL,
+                 _T("invalid page index in wxNotebookBase::DoRemovePage()") );
+
+    wxNotebookPage *pageRemoved = m_pages[nPage];
+    m_pages.RemoveAt(nPage);
+
+    return pageRemoved;
+}
+
 int wxNotebookBase::GetNextPage(bool forward) const
 {
     int nPage;
 int wxNotebookBase::GetNextPage(bool forward) const
 {
     int nPage;