};
+
+/**
+ @class wxBookCtrlEvent
+
+ This class represents the events generated by book controls (wxNotebook,
+ wxListbook, wxChoicebook, wxTreebook).
+ The PAGE_CHANGING events are sent before the current page is changed.
+ It allows the program to examine the current page (which can be retrieved
+ with wxBookCtrlEvent::GetOldSelection) and to veto the page change by calling
+ wxNotifyEvent::Veto if, for example, the current values in the controls
+ of the old page are invalid.
+
+ The PAGE_CHANGED events are sent after the page has been changed and
+ the program cannot veto it any more, it just informs it about the page
+ change.
+
+ To summarize, if the program is interested in validating the page values
+ before allowing the user to change it, it should process the PAGE_CHANGING
+ event, otherwise PAGE_CHANGED is probably enough. In any case, it is
+ probably unnecessary to process both events at once.
+
+ @library{wxcore}
+ @category{events}
+
+ @see wxNotebook, wxListbook, wxChoicebook, wxTreebook
+*/
+
+class wxBookCtrlEvent : public wxNotifyEvent
+{
+public:
+ /**
+ Constructor (used internally by wxWidgets only).
+ */
+ wxBookCtrlEvent(wxEventType eventType = wxEVT_NULL, int id = 0,
+ int sel = wxNOT_FOUND, int oldSel = wxNOT_FOUND);
+
+ /**
+ Returns the page that was selected before the change, @c wxNOT_FOUND if
+ none was selected.
+ */
+ int GetOldSelection() const;
+
+ /**
+ Returns the currently selected page, or @c wxNOT_FOUND if none was
+ selected.
+ @note under Windows, GetSelection() will return the same value as
+ GetOldSelection() when called from @c EVT_NOTEBOOK_PAGE_CHANGING
+ handler and not the page which is going to be selected.
+ */
+ int GetSelection() const;
+
+ /**
+ Sets the id of the page selected before the change.
+ */
+ void SetOldSelection(int page);
+
+ /**
+ Sets the selection member variable.
+ */
+ void SetSelection(int page);
+};
+