X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be5a51fb592f3fa2ba38ac6cd1e488d6d806058c..519d7f238ce17ab2de6f5fb57d35add84ce47e4c:/samples/notebook/notebook.h diff --git a/samples/notebook/notebook.h b/samples/notebook/notebook.h index c79f79f980..e92a039bc4 100644 --- a/samples/notebook/notebook.h +++ b/samples/notebook/notebook.h @@ -6,33 +6,19 @@ // Created: 25/10/98 // RCS-ID: $Id$ // Copyright: (c) 1998-2002 wxWidgets team -// License: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -// this sample can be used to test both wxNotebook and wxListbook -//#define TEST_LISTBOOK +#include "wx/choicebk.h" +#include "wx/listbook.h" +#include "wx/treebook.h" +#include "wx/notebook.h" +#include "wx/toolbook.h" -#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 +#if wxUSE_LOG && !defined( __SMARTPHONE__ ) + #define USE_LOG 1 #else - #include "wx/notebook.h" + #define USE_LOG 0 #endif // Define a new application @@ -44,134 +30,152 @@ public: DECLARE_APP(MyApp) -// -class MyNotebook : public wxNotebook -{ -public: - MyNotebook(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - - void CreateInitialPages(); - - wxPanel *CreatePage(const wxString& pageName); - - wxPanel *CreateUserCreatedPage(); - - int GetIconIndex() const; -private: - wxPanel *CreateInsertPage(); - wxPanel *CreateRadioButtonsPage(); - wxPanel *CreateVetoPage(); - wxPanel *CreateBigButtonPage(); -}; - -// class MyFrame : public wxFrame { public: - MyFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxCLIP_CHILDREN|wxNO_FULL_REPAINT_ON_RESIZE); - + MyFrame(); virtual ~MyFrame(); - // Recreates the notebook with the same pages, but with possibly - // a different orientation and optionally with images. - void ReInitNotebook(); - - void OnCheckOrRadioBox(wxCommandEvent& event); - - void OnButtonAddPage(wxCommandEvent& event); - void OnButtonInsertPage(wxCommandEvent& event); - void OnButtonDeleteCurPage(wxCommandEvent& event); - void OnButtonDeleteLastPage(wxCommandEvent& event); - void OnButtonNextPage(wxCommandEvent& event); - void OnButtonExit(wxCommandEvent& event); + void OnType(wxCommandEvent& event); + void OnOrient(wxCommandEvent& event); + void OnShowImages(wxCommandEvent& event); + void OnMulti(wxCommandEvent& event); + void OnExit(wxCommandEvent& event); + + 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 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 - void OnNotebook(wxNotebookEvent& event); + void OnIdle(wxIdleEvent& event); - void OnUpdateUIBtnDeleteCurPage(wxUpdateUIEvent& event); - void OnUpdateUIBtnDeleteLastPage(wxUpdateUIEvent& event); +#if wxUSE_TREEBOOK + void OnUpdateTreeMenu(wxUpdateUIEvent& event); +#endif // wxUSE_TREEBOOK - void OnIdle(wxIdleEvent& event); + 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 toolbk) 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_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; - wxRadioBox *m_radioOrient; - wxCheckBox *m_chkShowImages, - *m_chkMultiLine; - - wxButton *m_btnAddPage; - wxButton *m_btnInsertPage; - wxButton *m_btnDeleteCurPage; - wxButton *m_btnDeleteLastPage; - wxButton *m_btnNextPage; - wxButton *m_btnExit; - - MyNotebook *m_notebook; - +#if USE_LOG // Log window wxTextCtrl *m_text; +#endif // USE_LOG - - // Sizers - - // The frame's sizer. Consists of m_sizerTop and the log window - // at the bottom. wxBoxSizer *m_sizerFrame; - // Sizer that contains the notebook and controls on the left - wxBoxSizer *m_sizerTop; - - // Sizer for m_notebook - wxBookCtrlSizer *m_sizerNotebook; - wxImageList *m_imageList; DECLARE_EVENT_TABLE() }; -enum ID_CONTROLS +enum ID_COMMANDS { - ID_RADIO_ORIENT = wxID_HIGHEST, - ID_CHK_SHOWIMAGES, - ID_CHK_MULTILINE, - ID_BTN_ADD_PAGE, - ID_BTN_INSERT_PAGE, - ID_BTN_DELETE_CUR_PAGE, - ID_BTN_DELETE_LAST_PAGE, - ID_BTN_NEXT_PAGE, - ID_NOTEBOOK + // 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_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_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, + +#if wxUSE_HELP + ID_CONTEXT_HELP, +#endif // wxUSE_HELP + ID_HITTEST }; -// notebook orientations -enum ORIENT -{ - ORIENT_TOP, - ORIENT_BOTTOM, - ORIENT_LEFT, - 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. + 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") +#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 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 ") + +