use a single wxBookCtrlEvent class for all wxBookCtrlBase-derived controls (#9667)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-08-01 13:46:46 +00:00
parent 10f41d50ff
commit 3e97a90518
37 changed files with 184 additions and 366 deletions

View File

@@ -22,3 +22,65 @@ public:
};
/**
@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);
};

View File

@@ -36,7 +36,7 @@
Place labels below the page area.
@endStyleTable
@beginEventTable{wxChoicebookEvent}
@beginEventTable{wxBookCtrlEvent}
@event{EVT_CHOICEBOOK_PAGE_CHANGED(id, func)}
The page selection was changed. Processes a
wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED event.

View File

@@ -2385,7 +2385,7 @@ public:
@class wxNotifyEvent
This class is not used by the event handlers by itself, but is a base class
for other event classes (such as wxNotebookEvent).
for other event classes (such as wxBookCtrlEvent).
It (or an object of a derived class) is sent when the controls state is being
changed and allows the program to wxNotifyEvent::Veto() this change if it wants
@@ -2394,7 +2394,7 @@ public:
@library{wxcore}
@category{events}
@see wxNotebookEvent
@see wxBookCtrlEvent
*/
class wxNotifyEvent : public wxCommandEvent
{

View File

@@ -1,88 +1,21 @@
/////////////////////////////////////////////////////////////////////////////
// Name: notebook.h
// Purpose: interface of wxNotebookEvent
// Purpose: interface of wxNotebook
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
/**
@class wxNotebookEvent
This class represents the events generated by a notebook control: currently,
there are two of them. The PAGE_CHANGING event is sent before the current
page is changed. It allows the program to examine the current page (which
can be retrieved with
wxNotebookEvent::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 second event - PAGE_CHANGED - is 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
*/
class wxNotebookEvent : public wxNotifyEvent
{
public:
/**
Constructor (used internally by wxWidgets only).
*/
wxNotebookEvent(wxEventType eventType = wxEVT_NULL, int id = 0,
int sel = -1,
int oldSel = -1);
/**
Returns the page that was selected before the change, -1 if none was selected.
*/
int GetOldSelection() const;
/**
Returns the currently selected page, or -1 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. Also note that the values of selection and old selection returned
for an event generated in response to a call to
wxNotebook::SetSelection shouldn't be trusted
as they are currently inconsistent under different platforms (but in this case
you presumably don't need them anyhow as you already have the corresponding
information).
*/
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);
};
/**
@class wxNotebook
This class represents a notebook control, which manages multiple windows with
associated tabs.
To use the class, create a wxNotebook object and call wxNotebook::AddPage or
wxNotebook::InsertPage,
passing a window to be used as the page. Do not explicitly delete the window
for a page that is currently
managed by wxNotebook.
To use the class, create a wxNotebook object and call wxNotebook::AddPage
or wxNotebook::InsertPage, passing a window to be used as the page. Do not
explicitly delete the window for a page that is currently managed by
wxNotebook.
@b wxNotebookPage is a typedef for wxWindow.
@@ -109,8 +42,8 @@ public:
@library{wxcore}
@category{miscwnd}
@see wxBookCtrl(), wxNotebookEvent, wxImageList,
@ref page_samples_notebook "Notebook Sample"
@see wxBookCtrl, wxBookCtrlEvent, wxImageList,
@ref page_samples_notebook "Notebook Sample"
*/
class wxNotebook : public wxBookCtrl overview
{
@@ -190,7 +123,7 @@ public:
/**
Changes the selection for the given page, returning the previous selection.
The call to this function does not generate the page changing events.
This is the only difference with SetSelection(). See
This is the only difference with SetSelection(). See
@ref overview_eventhandling_prog "User Generated Events"
for more infomation.
*/
@@ -256,10 +189,9 @@ public:
/**
Returns the currently selected page, or -1 if none was selected.
Note that this method may return either the previously or newly selected page
when called from the @c EVT_NOTEBOOK_PAGE_CHANGED handler depending on
the platform and so
wxNotebookEvent::GetSelection should be
Note that this method may return either the previously or newly
selected page when called from the @c EVT_NOTEBOOK_PAGE_CHANGED handler
depending on the platform and so wxBookCtrlEvent::GetSelection should be
used instead in this case.
*/
virtual int GetSelection() const;
@@ -327,9 +259,9 @@ public:
/**
An event handler function, called when the page selection is changed.
@see wxNotebookEvent
@see wxBookCtrlEvent
*/
void OnSelChange(wxNotebookEvent& event);
void OnSelChange(wxBookCtrlEvent& event);
/**
Deletes the specified page, without deleting the associated window.

View File

@@ -1,71 +1,11 @@
/////////////////////////////////////////////////////////////////////////////
// Name: treebook.h
// Purpose: interface of wxTreebookEvent
// Purpose: interface of wxTreebook
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
/**
@class wxTreebookEvent
This class represents the events generated by a treebook control: currently,
there are four of them. The EVT_TREEBOOK_PAGE_CHANGING() and
EVT_TREEBOOK_PAGE_CHANGED() - have exactly the same behaviour as
wxNotebookEvent.
The other two EVT_TREEBOOK_NODE_COLLAPSED() and EVT_TREEBOOK_NODE_EXPANDED()
are triggered when page node in the tree control is collapsed/expanded. The
page index could be retreived by calling GetSelection().
@beginEventTable{wxTreebookEvent}
@event{EVT_TREEBOOK_PAGE_CHANGED(id, func)}
The page selection was changed. Processes a @c
wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED event.
@event{EVT_TREEBOOK_PAGE_CHANGING(id, func)}
The page selection is about to be changed. Processes a @c
wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING event. This event can be @ref
wxNotifyEvent::Veto() "vetoed".
@event{EVT_TREEBOOK_NODE_COLLAPSED(id, func)}
The page node is going to be collapsed. Processes a @c
wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED event.
@event{EVT_TREEBOOK_NODE_EXPANDED(id, func)}
The page node is going to be expanded. Processes a @c
wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED event.
@endEventTable
@library{wxcore}
@category{events}
@see wxTreebook, wxNotebookEvent
*/
class wxTreebookEvent : public wxNotifyEvent
{
public:
/**
@see wxNotebookEvent
*/
wxTreebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
int nSel = wxNOT_FOUND,
int nOldSel = 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.
@see wxNotebookEvent::GetSelection()
*/
int GetSelection() const;
};
/**
@class wxTreebook
@@ -81,7 +21,7 @@ public:
AddPage() and AddSubPage() to sequentially populate your tree by adding at
every step a page or a subpage to the end of the tree.
@beginEventTable{wxTreebookEvent}
@beginEventTable{wxBookCtrlEvent}
@event{EVT_TREEBOOK_PAGE_CHANGED(id, func)}
The page selection was changed. Processes a @c
wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED event.
@@ -100,7 +40,7 @@ public:
@library{wxcore}
@category{miscwnd}
@see wxTreebookEvent, wxNotebook, wxTreeCtrl, wxImageList,
@see wxBookCtrl, wxBookCtrlEvent, wxNotebook, wxTreeCtrl, wxImageList,
@ref overview_bookctrl, @ref page_samples_notebook
*/
class wxTreebook : public wxBookCtrlBase
@@ -230,7 +170,7 @@ public:
@note This method may return either the previously or newly selected
page when called from the EVT_TREEBOOK_PAGE_CHANGED() handler
depending on the platform and so wxTreebookEvent::GetSelection()
depending on the platform and so wxBookCtrlEvent::GetSelection()
should be used instead in this case.
*/
int GetSelection() const;