///////////////////////////////////////////////////////////////////////////////
// Name: common/bookctrl.cpp
-// Purpose: wxBookCtrl implementation
+// Purpose: wxBookCtrlBase implementation
// Author: Vadim Zeitlin
// Modified by:
// Created: 19.08.03
// RCS-ID: $Id$
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// constructors and destructors
// ----------------------------------------------------------------------------
-void wxBookCtrl::Init()
+void wxBookCtrlBase::Init()
{
m_imageList = NULL;
m_ownsImageList = false;
}
bool
-wxBookCtrl::Create(wxWindow *parent,
+wxBookCtrlBase::Create(wxWindow *parent,
wxWindowID id,
const wxPoint& pos,
const wxSize& size,
);
}
-wxBookCtrl::~wxBookCtrl()
+wxBookCtrlBase::~wxBookCtrlBase()
{
if ( m_ownsImageList )
{
// image list
// ----------------------------------------------------------------------------
-void wxBookCtrl::SetImageList(wxImageList *imageList)
+void wxBookCtrlBase::SetImageList(wxImageList *imageList)
{
if ( m_ownsImageList )
{
m_imageList = imageList;
}
-void wxBookCtrl::AssignImageList(wxImageList* imageList)
+void wxBookCtrlBase::AssignImageList(wxImageList* imageList)
{
SetImageList(imageList);
// geometry
// ----------------------------------------------------------------------------
-void wxBookCtrl::SetPageSize(const wxSize& size)
+void wxBookCtrlBase::SetPageSize(const wxSize& size)
{
SetClientSize(CalcSizeFromPage(size));
}
-wxSize wxBookCtrl::DoGetBestSize() const
+wxSize wxBookCtrlBase::DoGetBestSize() const
{
wxSize bestSize;
// convert display area to window area, adding the size neccessary for the
// tabs
- return CalcSizeFromPage(bestSize);
+ wxSize best = CalcSizeFromPage(bestSize);
+ CacheBestSize(best);
+ return best;
}
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
bool
-wxBookCtrl::InsertPage(size_t nPage,
- wxWindow *page,
- const wxString& WXUNUSED(text),
- bool WXUNUSED(bSelect),
- int WXUNUSED(imageId))
+wxBookCtrlBase::InsertPage(size_t nPage,
+ wxWindow *page,
+ const wxString& WXUNUSED(text),
+ bool WXUNUSED(bSelect),
+ int WXUNUSED(imageId))
{
- wxCHECK_MSG( page, false, _T("NULL page in wxBookCtrl::InsertPage()") );
+ wxCHECK_MSG( page, false, _T("NULL page in wxBookCtrlBase::InsertPage()") );
wxCHECK_MSG( nPage <= m_pages.size(), false,
- _T("invalid page index in wxBookCtrl::InsertPage()") );
+ _T("invalid page index in wxBookCtrlBase::InsertPage()") );
m_pages.Insert(page, nPage);
+ InvalidateBestSize();
return true;
}
-bool wxBookCtrl::DeletePage(size_t nPage)
+bool wxBookCtrlBase::DeletePage(size_t nPage)
{
wxWindow *page = DoRemovePage(nPage);
if ( !page )
return true;
}
-wxWindow *wxBookCtrl::DoRemovePage(size_t nPage)
+wxWindow *wxBookCtrlBase::DoRemovePage(size_t nPage)
{
wxCHECK_MSG( nPage < m_pages.size(), NULL,
- _T("invalid page index in wxBookCtrl::DoRemovePage()") );
+ _T("invalid page index in wxBookCtrlBase::DoRemovePage()") );
wxWindow *pageRemoved = m_pages[nPage];
m_pages.RemoveAt(nPage);
+ InvalidateBestSize();
return pageRemoved;
}
-int wxBookCtrl::GetNextPage(bool forward) const
+int wxBookCtrlBase::GetNextPage(bool forward) const
{
int nPage;