+#define RECREATE( wxBookType , idBook, oldBook , newBook ) \
+{ \
+ int flags; \
+ \
+ switch ( m_orient ) \
+ { \
+ case ID_ORIENT_TOP: \
+ flags = SelectFlag(idBook, wxNB_TOP, wxLB_TOP, wxCHB_TOP); \
+ break; \
+ \
+ case ID_ORIENT_BOTTOM: \
+ flags = SelectFlag(idBook, wxNB_BOTTOM, wxLB_BOTTOM, wxCHB_BOTTOM); \
+ break; \
+ \
+ case ID_ORIENT_LEFT: \
+ flags = SelectFlag(idBook, wxNB_LEFT, wxLB_LEFT, wxCHB_LEFT); \
+ break; \
+ \
+ case ID_ORIENT_RIGHT: \
+ flags = SelectFlag(idBook, wxNB_RIGHT, wxLB_RIGHT, wxCHB_RIGHT); \
+ break; \
+ \
+ default: \
+ flags = SelectFlag(idBook, wxNB_DEFAULT, wxLB_DEFAULT, wxCHB_DEFAULT); \
+ } \
+ \
+ if ( m_multi && ( idBook == ID_NOTEBOOK ) ) \
+ flags |= wxNB_MULTILINE; \
+ \
+ wxBookType *oldBook = newBook; \
+ \
+ newBook = new wxBookType(m_panel, idBook, \
+ wxDefaultPosition, wxDefaultSize, \
+ flags); \
+ \
+ if ( m_chkShowImages ) \
+ { \
+ newBook->SetImageList(m_imageList); \
+ } \
+ \
+ if (oldBook) \
+ { \
+ int sel = oldBook->GetSelection(); \
+ \
+ int count = oldBook->GetPageCount(); \
+ for (int n = 0; n < count; n++) \
+ { \
+ wxString str = oldBook->GetPageText(n); \
+ \
+ wxWindow *page = CreatePage(newBook, str); \
+ newBook->AddPage(page, str, false, GetIconIndex(newBook) ); \
+ } \
+ \
+ m_sizerFrame->Detach(oldBook); \
+ \
+ delete oldBook; \
+ \
+ if (sel != wxNOT_FOUND) \
+ { \
+ newBook->SetSelection(sel); \
+ } \
+ \
+ } \
+ else \
+ { \
+ wxPanel *panel = CreateRadioButtonsPage(newBook); \
+ newBook->AddPage( panel, RADIOBUTTONS_PAGE_NAME, false, GetIconIndex(newBook) ); \
+ \
+ panel = CreateVetoPage(newBook); \
+ newBook->AddPage( panel, VETO_PAGE_NAME, false, GetIconIndex(newBook) ); \
+ \
+ panel = CreateBigButtonPage(newBook); \
+ newBook->AddPage( panel, MAXIMIZED_BUTTON_PAGE_NAME, false, GetIconIndex(newBook) ); \
+ \
+ panel = CreateInsertPage(newBook); \
+ newBook->InsertPage( 0, panel, I_WAS_INSERTED_PAGE_NAME, false, GetIconIndex(newBook) ); \
+ \
+ newBook->SetSelection(1); \
+ } \
+ \
+ m_sizerFrame->Insert(0, newBook, 5, wxEXPAND | wxALL, 4); \
+ \
+ m_sizerFrame->Hide(newBook); \
+}