-// ----------------------------------------------------------------------------
-// wxNotebook helper functions
-// ----------------------------------------------------------------------------
-
-// generate the page changing and changed events, hide the currently active
-// panel and show the new one
-void wxNotebook::ChangePage(int nOldSel, int nSel)
-{
- // MT-FIXME should use a real semaphore
- static bool s_bInsideChangePage = FALSE;
-
- // when we call ProcessEvent(), our own OnSelChange() is called which calls
- // this function - break the infinite loop
- if ( s_bInsideChangePage )
- return;
-
- // it's not an error (the message may be generated by the tab control itself)
- // and it may happen - just do nothing
- if ( nSel == nOldSel )
- return;
-
- s_bInsideChangePage = TRUE;
-
- wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId);
- event.SetSelection(nSel);
- event.SetOldSelection(nOldSel);
- event.SetEventObject(this);
- if ( ProcessEvent(event) && !event.IsAllowed() )
- {
- // program doesn't allow the page change
- s_bInsideChangePage = FALSE;
- return;
- }
-
- event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
- ProcessEvent(event);
-
- s_bInsideChangePage = FALSE;
-}