]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/notebook/notebook.cpp
corrected GetAppName() link
[wxWidgets.git] / samples / notebook / notebook.cpp
index 6a756a19bfb044f8c3295339432c88d110eba373..966b441350a7f9cda98390185a4fae232ab39c0b 100644 (file)
@@ -44,7 +44,7 @@ bool MyApp::OnInit()
     return true;
 }
 
-wxPanel *CreateUserCreatedPage(wxBookCtrl *parent)
+wxPanel *CreateUserCreatedPage(wxBookCtrlBase *parent)
 {
     wxPanel *panel = new wxPanel(parent);
 
@@ -54,7 +54,7 @@ wxPanel *CreateUserCreatedPage(wxBookCtrl *parent)
     return panel;
 }
 
-wxPanel *CreateRadioButtonsPage(wxBookCtrl *parent)
+wxPanel *CreateRadioButtonsPage(wxBookCtrlBase *parent)
 {
     wxPanel *panel = new wxPanel(parent);
 
@@ -79,7 +79,7 @@ wxPanel *CreateRadioButtonsPage(wxBookCtrl *parent)
     return panel;
 }
 
-wxPanel *CreateVetoPage(wxBookCtrl *parent)
+wxPanel *CreateVetoPage(wxBookCtrlBase *parent)
 {
     wxPanel *panel = new wxPanel(parent);
 
@@ -89,7 +89,7 @@ wxPanel *CreateVetoPage(wxBookCtrl *parent)
     return panel;
 }
 
-wxPanel *CreateBigButtonPage(wxBookCtrl *parent)
+wxPanel *CreateBigButtonPage(wxBookCtrlBase *parent)
 {
     wxPanel *panel = new wxPanel(parent);
 
@@ -103,7 +103,7 @@ wxPanel *CreateBigButtonPage(wxBookCtrl *parent)
 }
 
 
-wxPanel *CreateInsertPage(wxBookCtrl *parent)
+wxPanel *CreateInsertPage(wxBookCtrlBase *parent)
 {
     wxPanel *panel = new wxPanel(parent);
 
@@ -114,7 +114,7 @@ wxPanel *CreateInsertPage(wxBookCtrl *parent)
     return panel;
 }
 
-int GetIconIndex(wxBookCtrl* bookCtrl)
+int GetIconIndex(wxBookCtrlBase* bookCtrl)
 {
     if (bookCtrl && bookCtrl->GetImageList())
     {
@@ -128,7 +128,7 @@ int GetIconIndex(wxBookCtrl* bookCtrl)
     return -1;
 }
 
-void CreateInitialPages(wxBookCtrl *parent)
+void CreateInitialPages(wxBookCtrlBase *parent)
 {
     // Create and add some panels to the notebook
 
@@ -147,7 +147,7 @@ void CreateInitialPages(wxBookCtrl *parent)
     parent->SetSelection(1);
 }
 
-wxPanel *CreatePage(wxBookCtrl *parent, const wxString&pageName)
+wxPanel *CreatePage(wxBookCtrlBase *parent, const wxString&pageName)
 {
     if
     (
@@ -188,7 +188,16 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
                  long style)
     : wxFrame((wxWindow *) NULL, wxID_ANY, title, pos, size, style)
 {
+#if wxUSE_NOTEBOOK
     m_type = ID_BOOK_NOTEBOOK;
+#elif wxUSE_CHOICEBOOK
+    m_type = ID_BOOK_CHOICEBOOK;
+#elif wxUSE_LISTBOOK
+    m_type = ID_BOOK_LISTBOOK;
+#elif
+    #error "Don't use Notebook sample without any book enabled in wxWidgets build!"
+#endif
+
     m_orient = ID_ORIENT_DEFAULT;
     m_chkShowImages = true;
     m_multi = false;
@@ -205,6 +214,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
 #if wxUSE_CHOICEBOOK
     menuType->AppendRadioItem(ID_BOOK_CHOICEBOOK, wxT("&Choicebook\tCtrl-3"));
 #endif
+    menuType->Check(m_type, true);
 
     wxMenu *menuOrient = new wxMenu;
     menuOrient->AppendRadioItem(ID_ORIENT_DEFAULT, wxT("&Default\tCtrl-4"));
@@ -214,17 +224,17 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
     menuOrient->AppendRadioItem(ID_ORIENT_RIGHT,   wxT("&Right\tCtrl-8"));
 
     wxMenu *menuDo = new wxMenu;
-    menuDo->Append(ID_ADD_PAGE, wxT("&Add page"));
-    menuDo->Append(ID_INSERT_PAGE, wxT("&Insert page"));
-    menuDo->Append(ID_DELETE_CUR_PAGE, wxT("&Delete current page"));
-    menuDo->Append(ID_DELETE_LAST_PAGE, wxT("D&elete last page"));
-    menuDo->Append(ID_NEXT_PAGE, wxT("&Next page"));
+    menuDo->Append(ID_ADD_PAGE, wxT("&Add page\tAlt-A"));
+    menuDo->Append(ID_INSERT_PAGE, wxT("&Insert page\tAlt-I"));
+    menuDo->Append(ID_DELETE_CUR_PAGE, wxT("&Delete current page\tAlt-D"));
+    menuDo->Append(ID_DELETE_LAST_PAGE, wxT("D&elete last page\tAlt-L"));
+    menuDo->Append(ID_NEXT_PAGE, wxT("&Next page\tAlt-N"));
 
     wxMenu *menuFile = new wxMenu;
     menuFile->Append(wxID_ANY, wxT("&Type"), menuType, wxT("Type of control"));
     menuFile->Append(wxID_ANY, wxT("&Orientation"), menuOrient, wxT("Orientation of control"));
-    menuFile->AppendCheckItem(ID_SHOW_IMAGES, wxT("&Show images"));
-    menuFile->AppendCheckItem(ID_MULTI, wxT("&Multiple lines"));
+    menuFile->AppendCheckItem(ID_SHOW_IMAGES, wxT("&Show images\tAlt-S"));
+    menuFile->AppendCheckItem(ID_MULTI, wxT("&Multiple lines\tAlt-M"));
     menuFile->AppendSeparator();
     menuFile->Append(wxID_EXIT, wxT("E&xit"), wxT("Quits the application"));
     menuFile->Check(ID_SHOW_IMAGES, m_chkShowImages);
@@ -325,6 +335,12 @@ int MyFrame::SelectFlag(int id, int nb, int lb, int chb)
     return 0;
 }
 
+#ifdef __SMARTPHONE__
+    #define MARGIN 0
+#else
+    #define MARGIN 4
+#endif
+
 #define RECREATE( wxBookType , idBook, oldBook , newBook )                         \
 {                                                                                  \
     int flags;                                                                     \
@@ -390,22 +406,10 @@ int MyFrame::SelectFlag(int id, int nb, int lb, int chb)
     }                                                                              \
     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);                                                  \
+        CreateInitialPages(newBook);                                               \
     }                                                                              \
                                                                                    \
-    m_sizerFrame->Insert(0, newBook, 5, wxEXPAND | wxALL, 4);                      \
+    m_sizerFrame->Insert(0, newBook, 5, wxEXPAND | wxALL, MARGIN);                 \
                                                                                    \
     m_sizerFrame->Hide(newBook);                                                   \
 }
@@ -425,7 +429,7 @@ void MyFrame::RecreateBooks()
     ShowCurrentBook();
 }
 
-wxBookCtrl *MyFrame::GetCurrentBook()
+wxBookCtrlBase *MyFrame::GetCurrentBook()
 {
     switch (m_type)
     {
@@ -495,7 +499,7 @@ END_EVENT_TABLE()
 
 void MyFrame::OnType(wxCommandEvent& event)
 {
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     m_type = event.GetId();
 
@@ -536,7 +540,7 @@ void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event))
 {
     static unsigned s_pageAdded = 0;
 
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     if ( currBook )
     {
@@ -555,7 +559,7 @@ void MyFrame::OnInsertPage(wxCommandEvent& WXUNUSED(event))
 {
     static unsigned s_pageIns = 0;
 
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     if ( currBook )
     {
@@ -571,7 +575,7 @@ void MyFrame::OnInsertPage(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnDeleteCurPage(wxCommandEvent& WXUNUSED(event))
 {
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     if ( currBook )
     {
@@ -586,7 +590,7 @@ void MyFrame::OnDeleteCurPage(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnDeleteLastPage(wxCommandEvent& WXUNUSED(event))
 {
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     if ( currBook )
     {
@@ -601,7 +605,7 @@ void MyFrame::OnDeleteLastPage(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnNextPage(wxCommandEvent& WXUNUSED(event))
 {
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     if ( currBook )
     {
@@ -613,9 +617,9 @@ void MyFrame::OnIdle( wxIdleEvent& WXUNUSED(event) )
 {
     static int s_nPages = wxNOT_FOUND;
     static int s_nSel = wxNOT_FOUND;
-    static wxBookCtrl *s_currBook = NULL;
+    static wxBookCtrlBase *s_currBook = NULL;
 
-    wxBookCtrl *currBook = GetCurrentBook();
+    wxBookCtrlBase *currBook = GetCurrentBook();
 
     int nPages = currBook ? currBook->GetPageCount() : 0;
     int nSel = currBook ? currBook->GetSelection() : wxNOT_FOUND;
@@ -639,6 +643,12 @@ void MyFrame::OnIdle( wxIdleEvent& WXUNUSED(event) )
     }
 }
 
+#if USE_LOG
+    #define BOOKEVENT_LOG m_text->SetInsertionPointEnd();
+#else
+    #define BOOKEVENT_LOG
+#endif
+
 #define BOOKEVENT(OnBook,wxBookEvent,bookStr,wxEVT_PAGE_CHANGED,wxEVT_PAGE_CHANGING,s_num) \
 void MyFrame::OnBook(wxBookEvent& event)                                                   \
 {                                                                                          \
@@ -655,7 +665,7 @@ void MyFrame::OnBook(wxBookEvent& event)
     else if (eventType == wxEVT_PAGE_CHANGING)                                             \
     {                                                                                      \
         int idx = event.GetOldSelection();                                                 \
-        wxBookCtrl *book = (wxBookCtrl *)event.GetEventObject();                           \
+        wxBookCtrlBase *book = (wxBookCtrlBase *)event.GetEventObject();                   \
         if ( idx != wxNOT_FOUND && book && book->GetPageText(idx) == VETO_PAGE_NAME )      \
         {                                                                                  \
             if                                                                             \
@@ -667,8 +677,6 @@ void MyFrame::OnBook(wxBookEvent& event)
                           wxICON_QUESTION | wxYES_NO, this) != wxYES )                     \
             {                                                                              \
                 event.Veto();                                                              \
-                                                                                           \
-                return;                                                                    \
             }                                                                              \
                                                                                            \
         }                                                                                  \
@@ -685,9 +693,7 @@ void MyFrame::OnBook(wxBookEvent& event)
                                                                                            \
     wxLogMessage(logMsg.c_str());                                                          \
                                                                                            \
-    m_text->SetInsertionPointEnd();                                                        \
-                                                                                           \
-    event.Skip();                                                                          \
+    BOOKEVENT_LOG                                                                          \
 }
 
 #if wxUSE_NOTEBOOK