]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/notebook/notebook.h
Fix wxWindow::MSWShowWithEffect() compilation with wxUSE_DYNLIB_CLASS==0.
[wxWidgets.git] / samples / notebook / notebook.h
index 1f6e965f6539c792bcbc8067174bf9753def5335..d0b48b4afb905568815d742ffe8950764b2ec0c2 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
-// 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