X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7e94140cd436c6c234a382ad4e16ec5da65830c..e0dec8753abaf97e006ea1185bfb6775b28df0a8:/samples/notebook/notebook.cpp diff --git a/samples/notebook/notebook.cpp b/samples/notebook/notebook.cpp index 3aceabbe2f..46da69e90f 100644 --- a/samples/notebook/notebook.cpp +++ b/samples/notebook/notebook.cpp @@ -26,7 +26,7 @@ #include "wx/utils.h" #include "notebook.h" -#if !defined(__WXMSW__) && !defined(__WXPM__) +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "../sample.xpm" #endif @@ -239,6 +239,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_NEXT_PAGE, MyFrame::OnNextPage) EVT_MENU(ID_CHANGE_SELECTION, MyFrame::OnChangeSelection) EVT_MENU(ID_SET_SELECTION, MyFrame::OnSetSelection) + EVT_MENU(ID_GET_PAGE_SIZE, MyFrame::OnGetPageSize) + EVT_MENU(ID_SET_PAGE_SIZE, MyFrame::OnSetPageSize) #if wxUSE_HELP EVT_MENU(ID_CONTEXT_HELP, MyFrame::OnContextHelp) @@ -271,6 +273,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,8 +299,10 @@ 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!" + m_type = Type_Simplebook; #endif m_orient = ID_ORIENT_DEFAULT; @@ -324,6 +332,10 @@ 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->AppendRadioItem(ID_BOOK_SIMPLEBOOK, "&Simple book\tCtrl-7"); menuType->Check(ID_BOOK_NOTEBOOK + m_type, true); @@ -360,6 +372,9 @@ MyFrame::MyFrame() menuPageOperations->AppendSeparator(); menuPageOperations->Append(ID_CHANGE_SELECTION, wxT("&Change selection to 0\tCtrl-0")); menuPageOperations->Append(ID_SET_SELECTION, wxT("&Set selection to 0\tShift-Ctrl-0")); + menuPageOperations->AppendSeparator(); + menuPageOperations->Append(ID_GET_PAGE_SIZE, "Sho&w page size"); + menuPageOperations->Append(ID_SET_PAGE_SIZE, "Set &page size"); wxMenu *menuOperations = new wxMenu; #if wxUSE_HELP @@ -469,7 +484,15 @@ 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 CASE_SIMPLEBOOK(x) case Type_Simplebook: x; break; + +#define DISPATCH_ON_TYPE(before, nb, lb, cb, tb, toolb, aui, sb, after) \ switch ( m_type ) \ { \ CASE_NOTEBOOK(before nb after) \ @@ -477,20 +500,13 @@ MyFrame::~MyFrame() CASE_CHOICEBOOK(before cb after) \ CASE_TREEBOOK(before tb after) \ CASE_TOOLBOOK(before toolb after) \ + CASE_AUINOTEBOOK(before aui after) \ + CASE_SIMPLEBOOK(before sb after) \ \ default: \ - wxFAIL_MSG( wxT("unknown book control type") ); \ + wxFAIL_MSG( wxT("unknown book control type") ); \ } -int MyFrame::TranslateBookFlag(int nb, int lb, int chb, int tbk, int toolbk) const -{ - int flag = 0; - - DISPATCH_ON_TYPE(flag =, nb, lb, chb, tbk, toolbk, + 0); - - return flag; -} - void MyFrame::RecreateBook() { int flags; @@ -541,6 +557,8 @@ void MyFrame::RecreateBook() wxChoicebook, wxTreebook, wxToolbook, + wxAuiNotebook, + wxSimplebook, (m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, flags)); if ( !m_bookCtrl ) @@ -891,6 +909,33 @@ void MyFrame::OnSetSelection(wxCommandEvent& WXUNUSED(event)) currBook->SetSelection(0); } +void MyFrame::OnGetPageSize(wxCommandEvent& WXUNUSED(event)) +{ + wxBookCtrlBase* const currBook = GetCurrentBook(); + if ( !currBook ) + return; + + const wxSize sizePage = currBook->GetPage(0)->GetSize(); + const wxSize sizeBook = currBook->GetSize(); + + wxLogMessage("Page size is (%d, %d), book size (%d, %d)", + sizePage.x, sizePage.y, + sizeBook.x, sizeBook.y); +} + +void MyFrame::OnSetPageSize(wxCommandEvent& WXUNUSED(event)) +{ + wxBookCtrlBase* const currBook = GetCurrentBook(); + if ( !currBook ) + return; + + const wxSize sizePage(300, 300); + currBook->SetPageSize(sizePage); + + wxLogMessage("Page size set to (%d, %d)", + sizePage.x, sizePage.y); +} + void MyFrame::OnIdle( wxIdleEvent& WXUNUSED(event) ) { static int s_nPages = wxNOT_FOUND; @@ -965,6 +1010,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 };