]> git.saurik.com Git - wxWidgets.git/blame_incremental - samples/notebook/notebook.h
Add a few missing appearance screenshots for the manual.
[wxWidgets.git] / samples / notebook / notebook.h
... / ...
CommitLineData
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// Copyright: (c) 1998-2002 wxWidgets team
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#include "wx/choicebk.h"
12#include "wx/listbook.h"
13#include "wx/treebook.h"
14#include "wx/notebook.h"
15#include "wx/simplebook.h"
16#include "wx/toolbook.h"
17#include "wx/aui/auibook.h"
18
19#if wxUSE_LOG && !defined( __SMARTPHONE__ )
20 #define USE_LOG 1
21#else
22 #define USE_LOG 0
23#endif
24
25// Define a new application
26class MyApp : public wxApp
27{
28public:
29 bool OnInit();
30};
31
32DECLARE_APP(MyApp)
33
34
35class MyFrame : public wxFrame
36{
37public:
38 MyFrame();
39 virtual ~MyFrame();
40
41 void OnType(wxCommandEvent& event);
42 void OnOrient(wxCommandEvent& event);
43 void OnShowImages(wxCommandEvent& event);
44 void OnStyle(wxCommandEvent& event);
45 void OnExit(wxCommandEvent& event);
46
47 void OnAddPage(wxCommandEvent& event);
48 void OnAddPageNoSelect(wxCommandEvent& event);
49 void OnInsertPage(wxCommandEvent& event);
50 void OnDeleteCurPage(wxCommandEvent& event);
51 void OnDeleteLastPage(wxCommandEvent& event);
52 void OnNextPage(wxCommandEvent& event);
53 void OnChangeSelection(wxCommandEvent &event);
54 void OnSetSelection(wxCommandEvent &event);
55 void OnGetPageSize(wxCommandEvent &event);
56 void OnSetPageSize(wxCommandEvent &event);
57
58 void OnAddSubPage(wxCommandEvent& event);
59 void OnAddPageBefore(wxCommandEvent& event);
60
61#if wxUSE_HELP
62 void OnContextHelp(wxCommandEvent& event);
63#endif // wxUSE_HELP
64
65 void OnHitTest(wxCommandEvent& event);
66
67 void OnBookCtrl(wxBookCtrlBaseEvent& event);
68#if wxUSE_NOTEBOOK
69 void OnNotebook(wxNotebookEvent& event) { OnBookCtrl(event); }
70#endif
71#if wxUSE_CHOICEBOOK
72 void OnChoicebook(wxChoicebookEvent& event) { OnBookCtrl(event); }
73#endif
74#if wxUSE_LISTBOOK
75 void OnListbook(wxListbookEvent& event) { OnBookCtrl(event); }
76#endif
77#if wxUSE_TREEBOOK
78 void OnTreebook(wxTreebookEvent& event) { OnBookCtrl(event); }
79#endif
80#if wxUSE_TOOLBOOK
81 void OnToolbook(wxToolbookEvent& event) { OnBookCtrl(event); }
82#endif
83#if wxUSE_AUI
84 void OnAuiNotebook(wxAuiNotebookEvent& event) { OnBookCtrl(event); }
85#endif
86
87 void OnIdle(wxIdleEvent& event);
88
89#if wxUSE_TREEBOOK
90 void OnUpdateTreeMenu(wxUpdateUIEvent& event);
91#endif // wxUSE_TREEBOOK
92
93 wxBookCtrlBase *GetCurrentBook() const { return m_bookCtrl; }
94
95private:
96 wxLog *m_logTargetOld;
97
98 void RecreateBook();
99 wxPanel *CreateNewPage() const;
100 void AddFlagStrIfFlagPresent(wxString & flagStr, long flags, long flag, const wxChar * flagName) const;
101
102 // Sample setup
103 enum BookType
104 {
105 Type_Notebook,
106 Type_Listbook,
107 Type_Choicebook,
108 Type_Treebook,
109 Type_Toolbook,
110 Type_AuiNotebook,
111 Type_Simplebook,
112 Type_Max
113 } m_type;
114 int m_orient;
115 bool m_chkShowImages;
116 bool m_fixedWidth;
117 bool m_multi;
118 bool m_noPageTheme;
119 bool m_buttonBar;
120 bool m_horzLayout;
121
122 // Controls
123
124 wxPanel *m_panel; // Panel containing notebook and other controls
125 wxBookCtrlBase *m_bookCtrl;
126
127#if USE_LOG
128 // Log window
129 wxTextCtrl *m_text;
130#endif // USE_LOG
131
132 wxBoxSizer *m_sizerFrame;
133
134 wxImageList *m_imageList;
135
136 DECLARE_EVENT_TABLE()
137};
138
139enum ID_COMMANDS
140{
141 // these should be in the same order as Type_XXX elements above
142 ID_BOOK_NOTEBOOK = wxID_HIGHEST,
143 ID_BOOK_LISTBOOK,
144 ID_BOOK_CHOICEBOOK,
145 ID_BOOK_TREEBOOK,
146 ID_BOOK_TOOLBOOK,
147 ID_BOOK_AUINOTEBOOK,
148 ID_BOOK_SIMPLEBOOK,
149 ID_BOOK_MAX,
150
151 ID_ORIENT_DEFAULT,
152 ID_ORIENT_TOP,
153 ID_ORIENT_BOTTOM,
154 ID_ORIENT_LEFT,
155 ID_ORIENT_RIGHT,
156 ID_ORIENT_MAX,
157 ID_SHOW_IMAGES,
158 ID_FIXEDWIDTH,
159 ID_MULTI,
160 ID_NOPAGETHEME,
161 ID_BUTTONBAR,
162 ID_HORZ_LAYOUT,
163 ID_ADD_PAGE,
164 ID_ADD_PAGE_NO_SELECT,
165 ID_INSERT_PAGE,
166 ID_DELETE_CUR_PAGE,
167 ID_DELETE_LAST_PAGE,
168 ID_NEXT_PAGE,
169 ID_ADD_PAGE_BEFORE,
170 ID_ADD_SUB_PAGE,
171 ID_CHANGE_SELECTION,
172 ID_SET_SELECTION,
173 ID_GET_PAGE_SIZE,
174 ID_SET_PAGE_SIZE,
175
176#if wxUSE_HELP
177 ID_CONTEXT_HELP,
178#endif // wxUSE_HELP
179 ID_HITTEST
180};
181
182
183/*
184 Name of each notebook page.
185 Used as a label for a page, and used when cloning the notebook
186 to decide what type of page it is.
187*/
188
189#define I_WAS_INSERTED_PAGE_NAME wxT("Inserted")
190#define RADIOBUTTONS_PAGE_NAME wxT("Radiobuttons")
191#define VETO_PAGE_NAME wxT("Veto")
192#define MAXIMIZED_BUTTON_PAGE_NAME wxT("Maximized button")
193
194// Pages that can be added by the user
195#define INSERTED_PAGE_NAME wxT("Inserted ")
196#define ADDED_PAGE_NAME wxT("Added ")
197#define ADDED_PAGE_NAME_BEFORE wxT(" Inserted before ")
198#define ADDED_SUB_PAGE_NAME wxT(" Inserted sub-page ")
199
200