X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1d6fcbcc7088e9c104b3dc5b4704a07f728d55ae..3a0c45985d34cd2a2884aaca5ba9f3689d7048a7:/include/wx/bookctrl.h diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index 85d769d71a..8d5a2a3072 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -222,22 +222,36 @@ public: virtual bool HasMultiplePages() const { return true; } protected: - // typically, wxBookCtrl-derived classes will use DoSetSelection() function - // to implement SetSelection() and ChangeSelection() functions. - // these flags make DoSetSelection() more readable + // flags for DoSetSelection() enum { SetSelection_SendEvent = 1 }; - // if using DoSetSelection() for implementing [Set|Change]Selection, - // then override UpdateSelectedPage() and MakeChangedEvent() - virtual int DoSetSelection(size_t nPage, int flags, wxBookCtrlBaseEvent &event); + // set the selection to the given page, sending the events (which can + // possibly prevent the page change from taking place) if SendEvent flag is + // included + virtual int DoSetSelection(size_t nPage, int flags = 0); + + // if the derived class uses DoSetSelection() for implementing + // [Set|Change]Selection, it must override UpdateSelectedPage(), + // CreatePageChangingEvent() and MakeChangedEvent(), but as it might not + // use it, these functions are not pure virtual + + // called to notify the control about a new current page virtual void UpdateSelectedPage(size_t WXUNUSED(newsel)) { wxFAIL_MSG(wxT("Override this function!")); } - virtual void MakeChangedEvent(wxBookCtrlBaseEvent &WXUNUSED(event)) + + // create a new "page changing" event + virtual wxBookCtrlBaseEvent* CreatePageChangingEvent() const + { wxFAIL_MSG(wxT("Override this function!")); return NULL; } + + // modify the event created by CreatePageChangingEvent() to "page changed" + // event, usually by just calling SetEventType() on it + virtual void MakeChangedEvent(wxBookCtrlBaseEvent& WXUNUSED(event)) { wxFAIL_MSG(wxT("Override this function!")); } + // Should we accept NULL page pointers in Add/InsertPage()? // // Default is no but derived classes may override it if they can treat NULL