]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/nbkbase.cpp
oops, commited debugging code by mistake
[wxWidgets.git] / src / common / nbkbase.cpp
index 29a24d0a8b69e7a9e5d98b600b8b50745b46a8b4..fa4db5f4192eac2cd001d589673ec134071005e6 100644 (file)
 #include "wx/imaglist.h"
 #include "wx/notebook.h"
 
+#ifdef __GNUWIN32_OLD__
+    #include "wx/msw/gnuwin32/extra.h"
+#endif
+
+#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__))
+#include "wx/msw/private.h"
+#include <commctrl.h>
+#include "wx/msw/winundef.h"
+#endif
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -92,26 +102,39 @@ wxSize wxNotebookBase::CalcSizeFromPage(const wxSize& sizePage)
     // course, totally bogus - just like the original code was
     wxSize sizeTotal = sizePage;
     
-    // Mac has large notebook borders.
-
+    // Slightly less bogus, at least under Windows.
+    // We need to make getting tab size part of the wxWindows API.
+#ifdef __WXMSW__
+    wxSize tabSize(0, 0);
+    if (GetPageCount() > 0)
+    {
+        RECT rect;
+        TabCtrl_GetItemRect((HWND) GetHWND(), 0, & rect);
+        tabSize.x = rect.right - rect.left;
+        tabSize.y = rect.bottom - rect.top;
+    }
     if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) )
     {
-        sizeTotal.x += 90;
-#ifdef __WXMAC__
-        sizeTotal.y += 20;
+        sizeTotal.x += tabSize.x + 7;
+        sizeTotal.y += 7;
+    }
+    else
+    {
+        sizeTotal.x += 7;
+        sizeTotal.y += tabSize.y + 7;
+    }
 #else
+    if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) )
+    {
+        sizeTotal.x += 90;
         sizeTotal.y += 10;
-#endif
     }
     else
     {
-#ifdef __WXMAC__
-        sizeTotal.x += 32;   // This is OK for Aqua.
-#else
         sizeTotal.x += 10;
-#endif
         sizeTotal.y += 40;
     }
+#endif
 
     return sizeTotal;
 }