]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/notebook/notebook.h
Fix for Bug 1097510, reset m_selectionOld when the value changes
[wxWidgets.git] / samples / notebook / notebook.h
index ca8b05d3af4bd0c7c259e5324faeab4323897959..1eac27735da8fed2e8e2d536b1592e459464d00e 100644 (file)
@@ -5,12 +5,20 @@
 // Modified by: Dimitri Schoolwerth
 // Created:     25/10/98
 // RCS-ID:      $Id$
-// Copyright:   (c) 1998-2002 wxWindows team
+// Copyright:   (c) 1998-2002 wxWidgets team
 // License:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+#include "wx/choicebk.h"
+#include "wx/listbook.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
 {
@@ -20,115 +28,101 @@ public:
 
 DECLARE_APP(MyApp)
 
-//
-class MyNotebook : public wxNotebook
-{
-public:
-    MyNotebook(wxWindow *parent, wxWindowID id = -1,
-        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);
+        const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxCLIP_CHILDREN|wxNO_FULL_REPAINT_ON_RESIZE);
 
     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 OnType(wxCommandEvent& event);
+    void OnOrient(wxCommandEvent& event);
+    void OnShowImages(wxCommandEvent& event);
+    void OnMulti(wxCommandEvent& event);
+    void OnExit(wxCommandEvent& event);
 
-    void OnButtonAddPage(wxCommandEvent& event);
-    void OnButtonInsertPage(wxCommandEvent& event);
-    void OnButtonDeletePage(wxCommandEvent& event);
-    void OnButtonNextPage(wxCommandEvent& event);
-
-    void OnButtonExit(wxCommandEvent& event);
+    void OnAddPage(wxCommandEvent& event);
+    void OnInsertPage(wxCommandEvent& event);
+    void OnDeleteCurPage(wxCommandEvent& event);
+    void OnDeleteLastPage(wxCommandEvent& event);
+    void OnNextPage(wxCommandEvent& event);
 
+#if wxUSE_NOTEBOOK
     void OnNotebook(wxNotebookEvent& event);
+#endif
+#if wxUSE_CHOICEBOOK
+    void OnChoicebook(wxChoicebookEvent& event);
+#endif
+#if wxUSE_LISTBOOK
+    void OnListbook(wxListbookEvent& event);
+#endif
 
     void OnIdle(wxIdleEvent& event);
 
+    wxBookCtrlBase *GetCurrentBook();
 
 private:
     wxLog *m_logTargetOld;
 
+    int SelectFlag(int id, int nb, int lb, int chb);
+    void ShowCurrentBook();
+    void RecreateBooks();
+
+    // Sample setup
+    int m_type;
+    int m_orient;
+    bool m_chkShowImages;
+    bool m_multi;
 
     // Controls
 
     wxPanel *m_panel; // Panel containing notebook and other controls
 
-    wxRadioBox *m_radioOrient;
-    wxCheckBox *m_chkShowImages;
-
-    wxButton *m_btnAddPage;
-    wxButton *m_btnInsertPage;
-    wxButton *m_btnDeletePage;
-    wxButton *m_btnNextPage;
-    wxButton *m_btnExit;
-
-    MyNotebook *m_notebook;
-
+#if wxUSE_NOTEBOOK
+    wxNotebook   *m_notebook;
+#endif
+#if wxUSE_CHOICEBOOK
+    wxChoicebook *m_choicebook;
+#endif
+#if wxUSE_LISTBOOK
+    wxListbook   *m_listbook;
+#endif
+
+#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
-    wxNotebookSizer *m_sizerNotebook;
-
     wxImageList *m_imageList;
 
     DECLARE_EVENT_TABLE()
 };
 
-enum ID_CONTROLS
-{
-    ID_RADIO_ORIENT = wxID_HIGHEST,
-    ID_CHK_SHOWIMAGES,
-    ID_BTN_ADD_PAGE,
-    ID_BTN_INSERT_PAGE,
-    ID_BTN_DELETE_PAGE,
-    ID_BTN_NEXT_PAGE,
-    ID_NOTEBOOK
-};
-
-// notebook orientations
-enum ORIENT
+enum ID_COMMANDS
 {
-    ORIENT_TOP,
-    ORIENT_BOTTOM,
-    ORIENT_LEFT,
-    ORIENT_RIGHT,
-    ORIENT_MAX
+    ID_BOOK_NOTEBOOK = wxID_HIGHEST,
+    ID_BOOK_LISTBOOK,
+    ID_BOOK_CHOICEBOOK,
+    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_NOTEBOOK,
+    ID_LISTBOOK,
+    ID_CHOICEBOOK
 };
 
 /*