]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/notebook/notebook.h
Do a configure test whether or not to include -I/usr/local/include in
[wxWidgets.git] / samples / notebook / notebook.h
index 0a10dcbb2d85904e4ab8b1661c60852053e28c8c..2d32a1f064167dc4b437d4a171205bf6b18a7031 100644 (file)
@@ -9,7 +9,31 @@
 // License:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#include "wx/notebook.h"
+// this sample can be used to test both wxNotebook and wxListbook
+//#define TEST_LISTBOOK
+
+#ifdef TEST_LISTBOOK
+    #include "wx/listbook.h"
+
+    #define wxNotebook wxListbook
+    #define wxNotebookEvent wxListbookEvent
+
+    #define wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED
+    #define wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING
+    #define EVT_NOTEBOOK_PAGE_CHANGED EVT_LISTBOOK_PAGE_CHANGED
+    #define EVT_NOTEBOOK_PAGE_CHANGING EVT_LISTBOOK_PAGE_CHANGING
+
+    #undef wxNB_TOP
+    #define wxNB_TOP wxLB_TOP
+    #undef wxNB_BOTTOM
+    #define wxNB_BOTTOM wxLB_BOTTOM
+    #undef wxNB_LEFT
+    #define wxNB_LEFT wxLB_LEFT
+    #undef wxNB_RIGHT
+    #define wxNB_RIGHT wxLB_RIGHT
+#else
+    #include "wx/notebook.h"
+#endif
 
 // Define a new application
 class MyApp : public wxApp
@@ -30,7 +54,17 @@ public:
 
     void CreateInitialPages();
 
+    wxPanel *CreatePage(const wxString& pageName);
+
+    wxPanel *CreateUserCreatedPage();
+
     int GetIconIndex() const;
+
+private:
+    wxPanel *CreateInsertPage();
+    wxPanel *CreateRadioButtonsPage();
+    wxPanel *CreateVetoPage();
+    wxPanel *CreateBigButtonPage();
 };
 
 //
@@ -38,7 +72,7 @@ class MyFrame : public wxFrame
 {
 public:
     MyFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE);
+        const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxCLIP_CHILDREN|wxNO_FULL_REPAINT_ON_RESIZE);
 
     virtual ~MyFrame();
 
@@ -46,21 +80,21 @@ public:
     // a different orientation and optionally with images.
     void ReInitNotebook();
 
-    void CreateImageList();
-
     void OnCheckOrRadioBox(wxCommandEvent& event);
 
     void OnButtonAddPage(wxCommandEvent& event);
     void OnButtonInsertPage(wxCommandEvent& event);
-    void OnButtonDeletePage(wxCommandEvent& event);
+    void OnButtonDeleteCurPage(wxCommandEvent& event);
+    void OnButtonDeleteLastPage(wxCommandEvent& event);
     void OnButtonNextPage(wxCommandEvent& event);
-
     void OnButtonExit(wxCommandEvent& event);
 
     void OnNotebook(wxNotebookEvent& event);
 
-    void OnIdle(wxIdleEvent& event);
+    void OnUpdateUIBtnDeleteCurPage(wxUpdateUIEvent& event);
+    void OnUpdateUIBtnDeleteLastPage(wxUpdateUIEvent& event);
 
+    void OnIdle(wxIdleEvent& event);
 
 private:
     wxLog *m_logTargetOld;
@@ -71,11 +105,13 @@ private:
     wxPanel *m_panel; // Panel containing notebook and other controls
 
     wxRadioBox *m_radioOrient;
-    wxCheckBox *m_chkShowImages;
+    wxCheckBox *m_chkShowImages,
+               *m_chkMultiLine;
 
     wxButton *m_btnAddPage;
     wxButton *m_btnInsertPage;
-    wxButton *m_btnDeletePage;
+    wxButton *m_btnDeleteCurPage;
+    wxButton *m_btnDeleteLastPage;
     wxButton *m_btnNextPage;
     wxButton *m_btnExit;
 
@@ -95,7 +131,7 @@ private:
     wxBoxSizer *m_sizerTop;
 
     // Sizer for m_notebook
-    wxNotebookSizer *m_sizerNotebook;
+    wxBookCtrlSizer *m_sizerNotebook;
 
     wxImageList *m_imageList;
 
@@ -106,9 +142,11 @@ enum ID_CONTROLS
 {
     ID_RADIO_ORIENT = wxID_HIGHEST,
     ID_CHK_SHOWIMAGES,
+    ID_CHK_MULTILINE,
     ID_BTN_ADD_PAGE,
     ID_BTN_INSERT_PAGE,
-    ID_BTN_DELETE_PAGE,
+    ID_BTN_DELETE_CUR_PAGE,
+    ID_BTN_DELETE_LAST_PAGE,
     ID_BTN_NEXT_PAGE,
     ID_NOTEBOOK
 };
@@ -122,3 +160,18 @@ enum ORIENT
     ORIENT_RIGHT,
     ORIENT_MAX
 };
+
+/*
+Name of each notebook page.
+Used as a label for a page, and used when cloning the notebook
+to decide what type of page it is.
+*/
+
+#define I_WAS_INSERTED_PAGE_NAME  wxT("Inserted")
+#define RADIOBUTTONS_PAGE_NAME wxT("Radiobuttons")
+#define VETO_PAGE_NAME wxT("Veto")
+#define MAXIMIZED_BUTTON_PAGE_NAME wxT("Maximized button")
+
+// Pages that can be added by the user
+#define INSERTED_PAGE_NAME wxT("Inserted ")
+#define ADDED_PAGE_NAME wxT("Added ")