X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/563c26064082bc96ad99cd816503e2607fb7e1e5..4ff56dd15287c27a545a3da710cdb890288ddcce:/samples/notebook/notebook.h diff --git a/samples/notebook/notebook.h b/samples/notebook/notebook.h index 1f6e965f65..d0b48b4afb 100644 --- a/samples/notebook/notebook.h +++ b/samples/notebook/notebook.h @@ -1,96 +1,199 @@ ///////////////////////////////////////////////////////////////////////////// -// 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) +// Copyright: (c) 1998-2002 wxWidgets team // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +#include "wx/choicebk.h" +#include "wx/listbook.h" +#include "wx/treebook.h" #include "wx/notebook.h" +#include "wx/toolbook.h" +#include "wx/aui/auibook.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, wxTopLevelWindow* 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); + MyFrame(); + virtual ~MyFrame(); - void OnOK(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void Init(); + void OnType(wxCommandEvent& event); + void OnOrient(wxCommandEvent& event); + void OnShowImages(wxCommandEvent& event); + void OnStyle(wxCommandEvent& event); + void OnExit(wxCommandEvent& event); -protected: - wxNotebook* m_notebook; + void OnAddPage(wxCommandEvent& event); + void OnAddPageNoSelect(wxCommandEvent& event); + void OnInsertPage(wxCommandEvent& event); + void OnDeleteCurPage(wxCommandEvent& event); + void OnDeleteLastPage(wxCommandEvent& event); + void OnNextPage(wxCommandEvent& event); + void OnChangeSelection(wxCommandEvent &event); + void OnSetSelection(wxCommandEvent &event); + void OnGetPageSize(wxCommandEvent &event); + void OnSetPageSize(wxCommandEvent &event); + + void OnAddSubPage(wxCommandEvent& event); + void OnAddPageBefore(wxCommandEvent& event); + +#if wxUSE_HELP + void OnContextHelp(wxCommandEvent& event); +#endif // wxUSE_HELP + + void OnHitTest(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 +#if wxUSE_TOOLBOOK + void OnToolbook(wxToolbookEvent& event) { OnBookCtrl(event); } +#endif +#if wxUSE_AUI + void OnAuiNotebook(wxAuiNotebookEvent& event) { OnBookCtrl(event); } +#endif + + void OnIdle(wxIdleEvent& event); + +#if wxUSE_TREEBOOK + void OnUpdateTreeMenu(wxUpdateUIEvent& event); +#endif // wxUSE_TREEBOOK + + wxBookCtrlBase *GetCurrentBook() const { return m_bookCtrl; } + +private: + wxLog *m_logTargetOld; + + void RecreateBook(); + wxPanel *CreateNewPage() const; + int TranslateBookFlag(int nb, int lb, int chb, int tbk, int toolbkm, int aui) const; + void AddFlagStrIfFlagPresent(wxString & flagStr, long flags, long flag, const wxChar * flagName) const; + + // Sample setup + enum BookType + { + Type_Notebook, + Type_Listbook, + Type_Choicebook, + Type_Treebook, + Type_Toolbook, + Type_AuiNotebook, + Type_Max + } m_type; + int m_orient; + bool m_chkShowImages; + bool m_fixedWidth; + bool m_multi; + bool m_noPageTheme; + bool m_buttonBar; + bool m_horzLayout; + + // 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() }; -#else // USE_TABBED_DIALOG - -class MyFrame: public wxFrame +enum ID_COMMANDS { -public: - MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_FRAME_STYLE); + // 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_TOOLBOOK, + ID_BOOK_AUINOTEBOOK, + 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_FIXEDWIDTH, + ID_MULTI, + ID_NOPAGETHEME, + ID_BUTTONBAR, + ID_HORZ_LAYOUT, + ID_ADD_PAGE, + ID_ADD_PAGE_NO_SELECT, + ID_INSERT_PAGE, + ID_DELETE_CUR_PAGE, + ID_DELETE_LAST_PAGE, + ID_NEXT_PAGE, + ID_ADD_PAGE_BEFORE, + ID_ADD_SUB_PAGE, + ID_CHANGE_SELECTION, + ID_SET_SELECTION, + ID_GET_PAGE_SIZE, + ID_SET_PAGE_SIZE, + +#if wxUSE_HELP + ID_CONTEXT_HELP, +#endif // wxUSE_HELP + ID_HITTEST +}; - void OnOK(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void OnAddPage(wxCommandEvent& event); - void OnInsertPage(wxCommandEvent& event); - void OnNextPage(wxCommandEvent& event); - void OnDeletePage(wxCommandEvent& event); - void OnIdle(wxIdleEvent& event); - void Init(); +/* + 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. +*/ -protected: - wxNotebook* m_notebook; - wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help +#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") - DECLARE_EVENT_TABLE() -}; +// 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 ") -#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