home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / samples / notebook / notebook.h < prev    next >
C/C++ Source or Header  |  2002-08-16  |  4KB  |  152 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        samples/notebook/notebook.h
  3. // Purpose:     a sample demonstrating notebook usage
  4. // Author:      Julian Smart
  5. // Modified by: Dimitri Schoolwerth
  6. // Created:     25/10/98
  7. // RCS-ID:      $Id: notebook.h,v 1.6 2002/08/16 00:09:29 VZ Exp $
  8. // Copyright:   (c) 1998-2002 wxWindows team
  9. // License:     wxWindows license
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #include "wx/notebook.h"
  13.  
  14. // Define a new application
  15. class MyApp : public wxApp
  16. {
  17. public:
  18.     bool OnInit();
  19. };
  20.  
  21. DECLARE_APP(MyApp)
  22.  
  23. //
  24. class MyNotebook : public wxNotebook
  25. {
  26. public:
  27.     MyNotebook(wxWindow *parent, wxWindowID id = -1,
  28.         const wxPoint& pos = wxDefaultPosition,
  29.         const wxSize& size = wxDefaultSize, long style = 0);
  30.  
  31.     void CreateInitialPages();
  32.  
  33.     wxPanel *CreatePage(const wxString& pageName);
  34.  
  35.     wxPanel *CreateUserCreatedPage();
  36.  
  37.     int GetIconIndex() const;
  38.  
  39. private:
  40.     wxPanel *CreateInsertPage();
  41.     wxPanel *CreateRadioButtonsPage();
  42.     wxPanel *CreateVetoPage();
  43.     wxPanel *CreateBigButtonPage();
  44. };
  45.  
  46. //
  47. class MyFrame : public wxFrame
  48. {
  49. public:
  50.     MyFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition,
  51.         const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE);
  52.  
  53.     virtual ~MyFrame();
  54.  
  55.     // Recreates the notebook with the same pages, but with possibly
  56.     // a different orientation and optionally with images.
  57.     void ReInitNotebook();
  58.  
  59.     void OnCheckOrRadioBox(wxCommandEvent& event);
  60.  
  61.     void OnButtonAddPage(wxCommandEvent& event);
  62.     void OnButtonInsertPage(wxCommandEvent& event);
  63.     void OnButtonDeleteCurPage(wxCommandEvent& event);
  64.     void OnButtonDeleteLastPage(wxCommandEvent& event);
  65.     void OnButtonNextPage(wxCommandEvent& event);
  66.     void OnButtonExit(wxCommandEvent& event);
  67.  
  68.     void OnNotebook(wxNotebookEvent& event);
  69.  
  70.     void OnUpdateUIBtnDeleteCurPage(wxUpdateUIEvent& event);
  71.     void OnUpdateUIBtnDeleteLastPage(wxUpdateUIEvent& event);
  72.  
  73.     void OnIdle(wxIdleEvent& event);
  74.  
  75. private:
  76.     wxLog *m_logTargetOld;
  77.  
  78.  
  79.     // Controls
  80.  
  81.     wxPanel *m_panel; // Panel containing notebook and other controls
  82.  
  83.     wxRadioBox *m_radioOrient;
  84.     wxCheckBox *m_chkShowImages;
  85.  
  86.     wxButton *m_btnAddPage;
  87.     wxButton *m_btnInsertPage;
  88.     wxButton *m_btnDeleteCurPage;
  89.     wxButton *m_btnDeleteLastPage;
  90.     wxButton *m_btnNextPage;
  91.     wxButton *m_btnExit;
  92.  
  93.     MyNotebook *m_notebook;
  94.  
  95.     // Log window
  96.     wxTextCtrl *m_text;
  97.  
  98.  
  99.     // Sizers
  100.  
  101.     // The frame's sizer. Consists of m_sizerTop and the log window
  102.     // at the bottom.
  103.     wxBoxSizer *m_sizerFrame;
  104.  
  105.     // Sizer that contains the notebook and controls on the left
  106.     wxBoxSizer *m_sizerTop;
  107.  
  108.     // Sizer for m_notebook
  109.     wxNotebookSizer *m_sizerNotebook;
  110.  
  111.     wxImageList *m_imageList;
  112.  
  113.     DECLARE_EVENT_TABLE()
  114. };
  115.  
  116. enum ID_CONTROLS
  117. {
  118.     ID_RADIO_ORIENT = wxID_HIGHEST,
  119.     ID_CHK_SHOWIMAGES,
  120.     ID_BTN_ADD_PAGE,
  121.     ID_BTN_INSERT_PAGE,
  122.     ID_BTN_DELETE_CUR_PAGE,
  123.     ID_BTN_DELETE_LAST_PAGE,
  124.     ID_BTN_NEXT_PAGE,
  125.     ID_NOTEBOOK
  126. };
  127.  
  128. // notebook orientations
  129. enum ORIENT
  130. {
  131.     ORIENT_TOP,
  132.     ORIENT_BOTTOM,
  133.     ORIENT_LEFT,
  134.     ORIENT_RIGHT,
  135.     ORIENT_MAX
  136. };
  137.  
  138. /*
  139. Name of each notebook page.
  140. Used as a label for a page, and used when cloning the notebook
  141. to decide what type of page it is.
  142. */
  143.  
  144. #define I_WAS_INSERTED_PAGE_NAME  wxT("Inserted")
  145. #define RADIOBUTTONS_PAGE_NAME wxT("Radiobuttons")
  146. #define VETO_PAGE_NAME wxT("Veto")
  147. #define MAXIMIZED_BUTTON_PAGE_NAME wxT("Maximized button")
  148.  
  149. // Pages that can be added by the user
  150. #define INSERTED_PAGE_NAME wxT("Inserted ")
  151. #define ADDED_PAGE_NAME wxT("Added ")
  152.