#include "wx/imaglist.h"
#include "wx/notebook.h"
+#if defined(__WXMSW__) && !((defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) && !defined(__CYGWIN10__))
+#include "wx/msw/private.h"
+#include <commctrl.h>
+#include "wx/msw/winundef.h"
+#endif
+
// ============================================================================
// implementation
// ============================================================================
// 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 += 28;
+ 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 += 34; // This is OK for Aqua.
- sizeTotal.y += 46;
-#else
sizeTotal.x += 10;
sizeTotal.y += 40;
-#endif
}
+#endif
return sizeTotal;
}