X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8864388cf203f3238d45f283676744f624304c71..28fefd45f9e7c426975ef9bd35c25d2dd0ece985:/samples/notebook/notebook.cpp diff --git a/samples/notebook/notebook.cpp b/samples/notebook/notebook.cpp index b56dbaeb9f..f43dee7bd8 100644 --- a/samples/notebook/notebook.cpp +++ b/samples/notebook/notebook.cpp @@ -271,6 +271,10 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_TOOLBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnToolbook) EVT_TOOLBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnToolbook) #endif +#if wxUSE_AUI + EVT_AUINOTEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnAuiNotebook) + EVT_AUINOTEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnAuiNotebook) +#endif // Update title in idle time EVT_IDLE(MyFrame::OnIdle) @@ -293,6 +297,8 @@ MyFrame::MyFrame() m_type = Type_Treebook; #elif wxUSE_TOOLBOOK m_type = Type_Toolbook; +#elif wxUSE_AUI + m_type = Type_Aui; #else #error "Don't use Notebook sample without any book enabled in wxWidgets build!" #endif @@ -324,6 +330,9 @@ MyFrame::MyFrame() #if wxUSE_TOOLBOOK menuType->AppendRadioItem(ID_BOOK_TOOLBOOK, wxT("T&oolbook\tCtrl-5")); #endif +#if wxUSE_AUI + menuType->AppendRadioItem(ID_BOOK_AUINOTEBOOK, wxT("&AuiNotebook\tCtrl-6")); +#endif menuType->Check(ID_BOOK_NOTEBOOK + m_type, true); @@ -469,7 +478,13 @@ MyFrame::~MyFrame() #define CASE_TOOLBOOK(x) #endif -#define DISPATCH_ON_TYPE(before, nb, lb, cb, tb, toolb, after) \ +#if wxUSE_AUI + #define CASE_AUINOTEBOOK(x) case Type_AuiNotebook: x; break; +#else + #define CASE_AUINOTEBOOK(x) +#endif + +#define DISPATCH_ON_TYPE(before, nb, lb, cb, tb, toolb, aui, after) \ switch ( m_type ) \ { \ CASE_NOTEBOOK(before nb after) \ @@ -477,16 +492,17 @@ MyFrame::~MyFrame() CASE_CHOICEBOOK(before cb after) \ CASE_TREEBOOK(before tb after) \ CASE_TOOLBOOK(before toolb after) \ + CASE_AUINOTEBOOK(before aui after) \ \ default: \ wxFAIL_MSG( wxT("unknown book control type") ); \ } -int MyFrame::TranslateBookFlag(int nb, int lb, int chb, int tbk, int toolbk) const +int MyFrame::TranslateBookFlag(int nb, int lb, int chb, int tbk, int toolbk, int aui) const { int flag = 0; - DISPATCH_ON_TYPE(flag =, nb, lb, chb, tbk, toolbk, + 0); + DISPATCH_ON_TYPE(flag =, nb, lb, chb, tbk, toolbk, aui, + 0); return flag; } @@ -541,6 +557,7 @@ void MyFrame::RecreateBook() wxChoicebook, wxTreebook, wxToolbook, + wxAuiNotebook, (m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, flags)); if ( !m_bookCtrl ) @@ -548,7 +565,8 @@ void MyFrame::RecreateBook() m_bookCtrl->Hide(); - if ( m_chkShowImages ) + // wxToolbook doesn't work without icons so always use them for it. + if ( m_chkShowImages || m_type == Type_Toolbook ) { m_bookCtrl->SetImageList(m_imageList); } @@ -964,6 +982,13 @@ void MyFrame::OnBookCtrl(wxBookCtrlBaseEvent& event) wxT("wxToolbook") }, #endif // wxUSE_TOOLBOOK +#if wxUSE_AUI + { + wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, + wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, + wxT("wxAuiNotebook") + }, +#endif // wxUSE_AUI }; @@ -971,6 +996,12 @@ void MyFrame::OnBookCtrl(wxBookCtrlBaseEvent& event) nameControl, veto; const wxEventType eventType = event.GetEventType(); + + // NB: can't use wxStaticCast here as wxBookCtrlBase is not in + // wxRTTI + const wxBookCtrlBase * const + book = static_cast<wxBookCtrlBase *>(event.GetEventObject()); + for ( size_t n = 0; n < WXSIZEOF(events); n++ ) { const EventInfo& ei = events[n]; @@ -982,10 +1013,6 @@ void MyFrame::OnBookCtrl(wxBookCtrlBaseEvent& event) { const int idx = event.GetOldSelection(); - // NB: can't use wxStaticCast here as wxBookCtrlBase is not in - // wxRTTI - const wxBookCtrlBase * const - book = static_cast<wxBookCtrlBase *>(event.GetEventObject()); if ( idx != wxNOT_FOUND && book && book->GetPageText(idx) == VETO_PAGE_NAME ) { @@ -1016,13 +1043,14 @@ void MyFrame::OnBookCtrl(wxBookCtrlBaseEvent& event) static int s_num = 0; - wxLogMessage(wxT("Event #%d: %s: %s (%d) new sel %d, old %d%s"), + wxLogMessage(wxT("Event #%d: %s: %s (%d) new sel %d, old %d, current %d%s"), ++s_num, nameControl.c_str(), nameEvent.c_str(), eventType, event.GetSelection(), event.GetOldSelection(), + book->GetSelection(), veto.c_str()); #if USE_LOG