#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
// ============================================================================
// geometry
// ----------------------------------------------------------------------------
-wxSize wxNotebookBase::CalcSizeFromPage(const wxSize& sizePage)
+wxSize wxNotebookBase::CalcSizeFromPage(const wxSize& sizePage) const
{
// this was just taken from wxNotebookSizer::CalcMin() and is, of
// course, totally bogus - just like the original code was
wxSize sizeTotal = sizePage;
+
+ // changed hajokirchhoff -- May, 31st, 2003
+ // moved the __WXMSW__ portion to wxNotebook::CalcSizeFromPage in src/msw/notebook.cpp
+ // where it really belongs.
+ // Question: Shouldn't we make wxNotebookBase::CalcSizeFromPage a pure virtual class.
+ // I'd like this better than this "totally bogus" code here.
if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) )
+ {
sizeTotal.x += 90;
+ sizeTotal.y += 10;
+ }
else
+ {
+ sizeTotal.x += 10;
sizeTotal.y += 40;
+ }
return sizeTotal;
}
_T("invalid page index in wxNotebookBase::DoRemovePage()") );
wxNotebookPage *pageRemoved = m_pages[nPage];
- m_pages.Remove(nPage);
+ m_pages.RemoveAt(nPage);
return pageRemoved;
}
+wxSize wxNotebookBase::DoGetBestSize() const
+{
+ wxSize bestSize(0,0);
+ size_t nCount = m_pages.Count();
+ // iterate over all pages, get the largest width and height
+ for ( size_t nPage = 0; nPage < nCount; nPage++ ) {
+ wxNotebookPage *pPage = m_pages[nPage];
+ wxSize childBestSize(pPage->GetBestSize());
+ bestSize.SetWidth(max(childBestSize.GetWidth(), bestSize.GetWidth()));
+ bestSize.SetHeight(max(childBestSize.GetHeight(), bestSize.GetHeight()));
+ }
+ // convert display area to window area, adding the size neccessary for the tab control itself
+ return CalcSizeFromPage(bestSize);
+}
+
int wxNotebookBase::GetNextPage(bool forward) const
{
int nPage;