git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			152 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        samples/notebook/notebook.h
 | |
| // Purpose:     a sample demonstrating notebook usage
 | |
| // Author:      Julian Smart
 | |
| // Modified by: Dimitri Schoolwerth
 | |
| // Created:     25/10/98
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 1998-2002 wxWindows team
 | |
| // License:     wxWindows license
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #include "wx/notebook.h"
 | |
| 
 | |
| // Define a new application
 | |
| class MyApp : public wxApp
 | |
| {
 | |
| public:
 | |
|     bool OnInit();
 | |
| };
 | |
| 
 | |
| 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);
 | |
| 
 | |
|     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 OnNotebook(wxNotebookEvent& event);
 | |
| 
 | |
|     void OnUpdateUIBtnDeleteCurPage(wxUpdateUIEvent& event);
 | |
|     void OnUpdateUIBtnDeleteLastPage(wxUpdateUIEvent& event);
 | |
| 
 | |
|     void OnIdle(wxIdleEvent& event);
 | |
| 
 | |
| private:
 | |
|     wxLog *m_logTargetOld;
 | |
| 
 | |
| 
 | |
|     // Controls
 | |
| 
 | |
|     wxPanel *m_panel; // Panel containing notebook and other controls
 | |
| 
 | |
|     wxRadioBox *m_radioOrient;
 | |
|     wxCheckBox *m_chkShowImages;
 | |
| 
 | |
|     wxButton *m_btnAddPage;
 | |
|     wxButton *m_btnInsertPage;
 | |
|     wxButton *m_btnDeleteCurPage;
 | |
|     wxButton *m_btnDeleteLastPage;
 | |
|     wxButton *m_btnNextPage;
 | |
|     wxButton *m_btnExit;
 | |
| 
 | |
|     MyNotebook *m_notebook;
 | |
| 
 | |
|     // Log window
 | |
|     wxTextCtrl *m_text;
 | |
| 
 | |
| 
 | |
|     // 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_CUR_PAGE,
 | |
|     ID_BTN_DELETE_LAST_PAGE,
 | |
|     ID_BTN_NEXT_PAGE,
 | |
|     ID_NOTEBOOK
 | |
| };
 | |
| 
 | |
| // 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.
 | |
| */
 | |
| 
 | |
| #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 ")
 |