#include "wx/string.h"
#include "wx/log.h"
#include "wx/app.h"
+ #include "wx/image.h"
#endif
#include "wx/string.h"
#include "wx/imaglist.h"
-#include "wx/image.h"
#include "wx/mac/uma.h"
if (! (style & wxBK_ALIGN_MASK))
style |= wxBK_TOP;
-
+
if ( !wxNotebookBase::Create( parent, id, pos, size, style, name ) )
return false;
return DoGetSizeFromClientSize( sizePage );
}
-int wxNotebook::SetSelection(size_t nPage)
+int wxNotebook::DoSetSelection(size_t nPage, int flags)
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("SetSelection: invalid notebook page") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("DoSetSelection: invalid notebook page") );
- if ( int(nPage) != m_nSelection )
+ if ( m_nSelection == wxNOT_FOUND || nPage != (size_t)m_nSelection )
{
- wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId);
- event.SetSelection(nPage);
- event.SetOldSelection(m_nSelection);
- event.SetEventObject(this);
- if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() )
+ if ( flags & SetSelection_SendEvent )
{
- // program allows the page change
- event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
- (void)GetEventHandler()->ProcessEvent(event);
+ if ( !SendPageChangingEvent(nPage) )
+ {
+ // vetoed by program
+ return m_nSelection;
+ }
+ //else: program allows the page change
- ChangePage(m_nSelection, nPage);
+ SendPageChangedEvent(m_nSelection, nPage);
}
+
+ ChangePage(m_nSelection, nPage);
}
+ //else: no change
return m_nSelection;
}
// we cannot differentiate better
if (resultV >= 0)
- *flags |= wxNB_HITTEST_ONLABEL;
+ *flags |= wxBK_HITTEST_ONLABEL;
else
- *flags |= wxNB_HITTEST_NOWHERE;
+ *flags |= wxBK_HITTEST_NOWHERE;
}
return resultV;