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