/////////////////////////////////////////////////////////////////////////////
-// Name: notebook.h
-// Purpose: wxNotebook demo
+// Name: samples/notebook/notebook.h
+// Purpose: a sample demonstrating notebook usage
// Author: Julian Smart
-// Modified by:
+// Modified by: Dimitri Schoolwerth
// Created: 25/10/98
// RCS-ID: $Id$
-// Copyright: (c)
-// Licence: wxWindows licence
+// Copyright: (c) 1998-2002 wxWidgets team
+// License: wxWindows license
/////////////////////////////////////////////////////////////////////////////
+#include "wx/choicebk.h"
+#include "wx/listbook.h"
+#include "wx/treebook.h"
#include "wx/notebook.h"
+#if wxUSE_LOG && !defined( __SMARTPHONE__ )
+ #define USE_LOG 1
+#else
+ #define USE_LOG 0
+#endif
+
// Define a new application
-class MyApp: public wxApp
+class MyApp : public wxApp
{
public:
bool OnInit();
- void InitTabView(wxNotebook* notebook, wxPanel* window);
-
- wxButton* m_okButton;
- wxButton* m_cancelButton;
- wxButton* m_addPageButton, *m_insertPageButton;
- wxButton* m_nextPageButton;
};
DECLARE_APP(MyApp)
-#if USE_TABBED_DIALOG
-class MyDialog: public wxDialog
+class MyFrame : public wxFrame
{
public:
- MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title,
- const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_DIALOG_STYLE);
-
- void OnOK(wxCommandEvent& event);
- void OnCloseWindow(wxCloseEvent& event);
- void Init();
-
-protected:
- wxNotebook* m_notebook;
-
- DECLARE_EVENT_TABLE()
-};
+ MyFrame();
+ virtual ~MyFrame();
-#else // USE_TABBED_DIALOG
+ void OnType(wxCommandEvent& event);
+ void OnOrient(wxCommandEvent& event);
+ void OnShowImages(wxCommandEvent& event);
+ void OnMulti(wxCommandEvent& event);
+ void OnExit(wxCommandEvent& event);
-class MyFrame: public wxFrame
-{
-public:
- MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title,
- const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_FRAME_STYLE);
-
- void OnOK(wxCommandEvent& event);
- void OnCloseWindow(wxCloseEvent& event);
void OnAddPage(wxCommandEvent& event);
void OnInsertPage(wxCommandEvent& event);
+ void OnDeleteCurPage(wxCommandEvent& event);
+ void OnDeleteLastPage(wxCommandEvent& event);
void OnNextPage(wxCommandEvent& event);
- void OnDeletePage(wxCommandEvent& event);
+
+ void OnAddSubPage(wxCommandEvent& event);
+ void OnAddPageBefore(wxCommandEvent& event);
+
+ void OnBookCtrl(wxBookCtrlBaseEvent& event);
+#if wxUSE_NOTEBOOK
+ void OnNotebook(wxNotebookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_CHOICEBOOK
+ void OnChoicebook(wxChoicebookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_LISTBOOK
+ void OnListbook(wxListbookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_TREEBOOK
+ void OnTreebook(wxTreebookEvent& event) { OnBookCtrl(event); }
+#endif
+
void OnIdle(wxIdleEvent& event);
- void Init();
+#if wxUSE_TREEBOOK
+ void OnUpdateTreeMenu(wxUpdateUIEvent& event);
+#endif // wxUSE_TREEBOOK
+
+ wxBookCtrlBase *GetCurrentBook() const { return m_bookCtrl; }
-protected:
- wxNotebook* m_notebook;
- wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help
+private:
+ wxLog *m_logTargetOld;
+
+ void RecreateBook();
+ wxPanel *CreateNewPage() const;
+ int TranslateBookFlag(int nb, int lb, int chb, int tbk) const;
+
+ // Sample setup
+ enum BookType
+ {
+ Type_Notebook,
+ Type_Listbook,
+ Type_Choicebook,
+ Type_Treebook,
+ Type_Max
+ } m_type;
+ int m_orient;
+ bool m_chkShowImages;
+ bool m_multi;
+
+ // Controls
+
+ wxPanel *m_panel; // Panel containing notebook and other controls
+ wxBookCtrlBase *m_bookCtrl;
+
+#if USE_LOG
+ // Log window
+ wxTextCtrl *m_text;
+#endif // USE_LOG
+
+ wxBoxSizer *m_sizerFrame;
+
+ wxImageList *m_imageList;
DECLARE_EVENT_TABLE()
};
-#endif // USE_TABBED_DIALOG
-
-// File ids
-#define TEST_ABOUT 2
-
-// Tab ids
-#define TEST_TAB_DOG 1
-#define TEST_TAB_CAT 2
-#define TEST_TAB_GOAT 3
-#define TEST_TAB_GUINEAPIG 4
-#define TEST_TAB_ANTEATER 5
-#define TEST_TAB_HUMMINGBIRD 6
-#define TEST_TAB_SHEEP 7
-#define TEST_TAB_COW 8
-#define TEST_TAB_HORSE 9
-#define TEST_TAB_PIG 10
-#define TEST_TAB_OSTRICH 11
-#define TEST_TAB_AARDVARK 12
-
-#define ID_NOTEBOOK 1000
-#define ID_ADD_PAGE 1200
-#define ID_DELETE_PAGE 1201
-#define ID_NEXT_PAGE 1202
-#define ID_INSERT_PAGE 1203
+enum ID_COMMANDS
+{
+ // these should be in the same order as Type_XXX elements above
+ ID_BOOK_NOTEBOOK = wxID_HIGHEST,
+ ID_BOOK_LISTBOOK,
+ ID_BOOK_CHOICEBOOK,
+ ID_BOOK_TREEBOOK,
+ ID_BOOK_MAX,
+
+ ID_ORIENT_DEFAULT,
+ ID_ORIENT_TOP,
+ ID_ORIENT_BOTTOM,
+ ID_ORIENT_LEFT,
+ ID_ORIENT_RIGHT,
+ ID_ORIENT_MAX,
+ ID_SHOW_IMAGES,
+ ID_MULTI,
+ ID_ADD_PAGE,
+ ID_INSERT_PAGE,
+ ID_DELETE_CUR_PAGE,
+ ID_DELETE_LAST_PAGE,
+ ID_NEXT_PAGE,
+ ID_ADD_PAGE_BEFORE,
+ ID_ADD_SUB_PAGE
+};
+
+/*
+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 ")
+#define ADDED_PAGE_NAME_BEFORE wxT(" Inserted before ")
+#define ADDED_SUB_PAGE_NAME wxT(" Inserted sub-page ")
+