// Modified by:
// Created: 19.08.03
// RCS-ID: $Id$
-// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
+// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// get the panel which represents the given page
virtual wxWindow *GetPage(size_t n) { return m_pages[n]; }
+ // get the current page or NULL if none
+ wxWindow *GetCurrentPage() const
+ {
+ int n = GetSelection();
+ return n == wxNOT_FOUND ? NULL
+ : wx_const_cast(wxBookCtrl *, this)->GetPage(n);
+ }
+
// get the currently selected page or wxNOT_FOUND if none
virtual int GetSelection() const = 0;
virtual bool DeletePage(size_t n);
// remove one page from the notebook, without deleting it
- virtual bool RemovePage(size_t n) { return DoRemovePage(n) != NULL; }
+ virtual bool RemovePage(size_t n)
+ {
+ InvalidateBestSize();
+ return DoRemovePage(n) != NULL;
+ }
// remove all pages and delete them
- virtual bool DeleteAllPages() { WX_CLEAR_ARRAY(m_pages); return true; }
+ virtual bool DeleteAllPages()
+ {
+ InvalidateBestSize();
+ WX_CLEAR_ARRAY(m_pages);
+ return true;
+ }
// adds a new page to the control
virtual bool AddPage(wxWindow *page,
bool bSelect = false,
int imageId = -1)
{
+ InvalidateBestSize();
return InsertPage(GetPageCount(), page, text, bSelect, imageId);
}
// set the currently selected page, return the index of the previously
// selected one (or -1 on error)
//
- // NB: this function will _not_ generate PAGE_CHANGING/ED events
+ // NB: this function will generate PAGE_CHANGING/ED events
virtual int SetSelection(size_t n) = 0;
// common part of all ctors
void Init();
+ // Always rely on GetBestSize, which will look at all the pages
+ virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { }
// the array of all pages of this control
wxArrayPages m_pages;