X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2e18fe7139558b3cb592a04a4e4668319a966ebf..14619f10b0bdb630206607abd0ce0319d45e095a:/include/wx/bookctrl.h diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index 018d1200f6..324fd94ca1 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -215,6 +215,9 @@ public: } } + // return the index of the given page or wxNOT_FOUND + int FindPage(const wxWindow* page) const; + // hit test: returns which page is hit and, optionally, where (icon, label) virtual int HitTest(const wxPoint& WXUNUSED(pt), long * WXUNUSED(flags) = NULL) const @@ -253,6 +256,10 @@ protected: // false otherwise. bool DoSetSelectionAfterInsertion(size_t n, bool bSelect); + // Update the selection after removing the page at the given index, + // typically called from the derived class overridden DoRemovePage(). + void DoSetSelectionAfterRemoval(size_t n); + // 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 @@ -289,7 +296,11 @@ protected: // having nodes without any associated page) virtual bool AllowNullPage() const { return false; } - // remove the page and return a pointer to it + // Remove the page and return a pointer to it. + // + // It also needs to update the current selection if necessary, i.e. if the + // page being removed comes before the selected one and the helper method + // DoSetSelectionAfterRemoval() can be used for this. virtual wxWindow *DoRemovePage(size_t page) = 0; // our best size is the size which fits all our pages @@ -404,20 +415,24 @@ typedef void (wxEvtHandler::*wxBookCtrlEventFunction)(wxBookCtrlEvent&); // dedicated to majority of desktops #include "wx/notebook.h" #define wxBookCtrl wxNotebook - #define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED - #define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING + #define wxEVT_BOOKCTRL_PAGE_CHANGED wxEVT_NOTEBOOK_PAGE_CHANGED + #define wxEVT_BOOKCTRL_PAGE_CHANGING wxEVT_NOTEBOOK_PAGE_CHANGING #define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_NOTEBOOK_PAGE_CHANGED(id, fn) #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_NOTEBOOK_PAGE_CHANGING(id, fn) #else // dedicated to Smartphones #include "wx/choicebk.h" #define wxBookCtrl wxChoicebook - #define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED - #define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING + #define wxEVT_BOOKCTRL_PAGE_CHANGED wxEVT_CHOICEBOOK_PAGE_CHANGED + #define wxEVT_BOOKCTRL_PAGE_CHANGING wxEVT_CHOICEBOOK_PAGE_CHANGING #define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_CHOICEBOOK_PAGE_CHANGED(id, fn) #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_CHOICEBOOK_PAGE_CHANGING(id, fn) #endif +// old wxEVT_COMMAND_* constants +#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED wxEVT_BOOKCTRL_PAGE_CHANGED +#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_BOOKCTRL_PAGE_CHANGING + #if WXWIN_COMPATIBILITY_2_6 #define wxBC_TOP wxBK_TOP #define wxBC_BOTTOM wxBK_BOTTOM