]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/notebook.tex
On wxMac don't call Refresh from FullPaint as that is the biggest
[wxWidgets.git] / docs / latex / wx / notebook.tex
... / ...
CommitLineData
1\section{\class{wxNotebook}}\label{wxnotebook}
2
3This class represents a notebook control, which manages multiple windows with associated tabs.
4
5To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage},
6passing a window to be used as the page. Do not explicitly delete the window for a page that is currently
7managed by wxNotebook.
8
9{\bf wxNotebookPage} is a typedef for wxWindow.
10
11\wxheading{Derived from}
12
13\helpref{wxControl}{wxcontrol}\\
14\helpref{wxWindow}{wxwindow}\\
15\helpref{wxEvtHandler}{wxevthandler}\\
16\helpref{wxObject}{wxobject}
17
18\wxheading{Include files}
19
20<wx/notebook.h>
21
22\wxheading{Window styles}
23
24\twocolwidtha{5cm}
25\begin{twocollist}\itemsep=0pt
26
27\twocolitem{\windowstyle{wxNB\_LEFT}}{Place tabs on the left side.}
28\twocolitem{\windowstyle{wxNB\_RIGHT}}{Place tabs on the right side.}
29\twocolitem{\windowstyle{wxNB\_BOTTOM}}{Place tabs under instead of above the notebook pages.}
30\twocolitem{\windowstyle{wxNB\_FIXEDWIDTH}}{(Windows only) All tabs will have same width.}
31\twocolitem{\windowstyle{wxNB\_MULTILINE}}{(Windows only) There can be several rows of tabs.}
32\twocolitem{\windowstyle{wxNB\_NOPAGETHEME}}{(Windows only) Display a solid colour on notebook pages, and not a gradient, which can reduce performance.}
33
34\end{twocollist}
35
36The styles \texttt{wxNB\_LEFT}, \texttt{RIGHT} and \texttt{BOTTOM} are not
37supported under Microsoft Windows XP when using visual themes.
38
39See also \helpref{window styles overview}{windowstyles}.
40
41\input noteevt.inc
42
43\wxheading{Page backgrounds}
44
45On Windows XP, the default theme paints a gradient on the notebook's pages.
46If you wish to suppress this theme, for aesthetic or performance reasons,
47there are three ways of doing it. You can use wxNB\_NOPAGETHEME to disable
48themed drawing for a particular notebook, you can call {\tt wxSystemOptions::SetOption}
49to disable it for the whole application, or you can disable it for individual
50pages by using {\tt SetBackgroundColour}.
51
52To disable themed pages globally:
53
54\begin{verbatim}
55 wxSystemOptions::SetOption(wxT("msw.notebook.themed-background"), 0);
56\end{verbatim}
57
58Set the value to 1 to enable it again.
59
60To give a single page a solid background that more or less fits in with the
61overall theme, use:
62
63\begin{verbatim}
64 wxColour col = notebook->GetThemeBackgroundColour();
65 if (col.Ok())
66 {
67 page->SetBackgroundColour(col);
68 }
69\end{verbatim}
70
71On platforms other than Windows, or if the application is not using Windows
72themes, {\tt GetThemeBackgroundColour} will return an uninitialised colour object,
73and the above code will therefore work on all platforms.
74
75\wxheading{See also}
76
77\helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist}, \helpref{notebook sample}{samplenotebook}\rtfsp
78
79\latexignore{\rtfignore{\wxheading{Members}}}
80
81\membersection{wxNotebook::wxNotebook}\label{wxnotebookctor}
82
83\func{}{wxNotebook}{\void}
84
85Default constructor.
86
87\func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
88 \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}}
89
90Constructs a notebook control.
91
92Note that sometimes you can reduce flicker by passing the wxCLIP\_CHILDREN window style.
93
94\wxheading{Parameters}
95
96\docparam{parent}{The parent window. Must be non-NULL.}
97
98\docparam{id}{The window identifier.}
99
100\docparam{pos}{The window position.}
101
102\docparam{size}{The window size.}
103
104\docparam{style}{The window style. See \helpref{wxNotebook}{wxnotebook}.}
105
106\docparam{name}{The name of the control (used only under Motif).}
107
108
109\membersection{wxNotebook::\destruct{wxNotebook}}\label{wxnotebookdtor}
110
111\func{}{\destruct{wxNotebook}}{\void}
112
113Destroys the wxNotebook object.
114
115
116\membersection{wxNotebook::AddPage}\label{wxnotebookaddpage}
117
118\func{bool}{AddPage}{\param{wxNotebookPage*}{ page},
119 \param{const wxString\&}{ text},
120 \param{bool}{ select = false},
121 \param{int}{ imageId = -1}}
122
123Adds a new page.
124
125The call to this function may generate the page changing events.
126
127\wxheading{Parameters}
128
129\docparam{page}{Specifies the new page.}
130
131\docparam{text}{Specifies the text for the new page.}
132
133\docparam{select}{Specifies whether the page should be selected.}
134
135\docparam{imageId}{Specifies the optional image index for the new page.}
136
137\wxheading{Return value}
138
139true if successful, false otherwise.
140
141\wxheading{Remarks}
142
143Do not delete the page, it will be deleted by the notebook.
144
145\wxheading{See also}
146
147\helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
148
149
150\membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection}
151
152\func{void}{AdvanceSelection}{\param{bool}{ forward = true}}
153
154Cycles through the tabs.
155
156The call to this function generates the page changing events.
157
158
159\membersection{wxNotebook::AssignImageList}\label{wxnotebookassignimagelist}
160
161\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
162
163Sets the image list for the page control and takes ownership of
164the list.
165
166\wxheading{See also}
167
168\helpref{wxImageList}{wximagelist},
169\helpref{SetImageList}{wxnotebooksetimagelist}
170
171
172\membersection{wxNotebook::Create}\label{wxnotebookcreate}
173
174\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
175 \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}}
176
177Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookctor} for a description
178of the parameters.
179
180
181\membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
182
183\func{bool}{DeleteAllPages}{\void}
184
185Deletes all pages.
186
187
188\membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
189
190\func{bool}{DeletePage}{\param{size\_t}{ page}}
191
192Deletes the specified page, and the associated window.
193
194The call to this function generates the page changing events.
195
196
197\membersection{wxNotebook::GetCurrentPage}\label{wxnotebookgetcurrentpage}
198
199\constfunc{wxWindow *}{GetCurrentPage}{\void}
200
201Returns the currently selected notebook age or \texttt{NULL}.
202
203
204\membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist}
205
206\constfunc{wxImageList*}{GetImageList}{\void}
207
208Returns the associated image list.
209
210\wxheading{See also}
211
212\helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}
213
214
215\membersection{wxNotebook::GetPage}\label{wxnotebookgetpage}
216
217\func{wxNotebookPage*}{GetPage}{\param{size\_t}{ page}}
218
219Returns the window at the given page position.
220
221
222\membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount}
223
224\constfunc{size\_t}{GetPageCount}{\void}
225
226Returns the number of pages in the notebook control.
227
228
229\membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage}
230
231\constfunc{int}{GetPageImage}{\param{size\_t }{nPage}}
232
233Returns the image index for the given page.
234
235
236\membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext}
237
238\constfunc{wxString}{GetPageText}{\param{size\_t }{nPage}}
239
240Returns the string for the given page.
241
242
243\membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount}
244
245\constfunc{int}{GetRowCount}{\void}
246
247Returns the number of rows in the notebook control.
248
249
250\membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection}
251
252\constfunc{int}{GetSelection}{\void}
253
254Returns the currently selected page, or $-1$ if none was selected.
255
256Note that this method may return either the previously or newly selected page
257when called from the {\tt EVT\_NOTEBOOK\_PAGE\_CHANGED} handler depending on
258the platform and so\rtfsp
259\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} should be
260used instead in this case.
261
262\membersection{wxNotebook::GetThemeBackgroundColour}\label{wxnotebookgetthemebackgroundcolour}
263
264\constfunc{wxColour}{GetThemeBackgroundColour}{\void}
265
266If running under Windows and themes are enabled for the application, this function
267returns a suitable colour for painting the background of a notebook page, and can be passed
268to {\tt SetBackgroundColour}. Otherwise, an uninitialised colour will be returned.
269
270\membersection{wxNotebook::HitTest}\label{wxnotebookhittest}
271
272\func{int}{HitTest}{\param{const wxPoint\&}{ pt}, \param{long}{ *flags = {\tt NULL}}}
273
274Returns the index of the tab at the specified position or {\tt wxNOT\_FOUND}
275if none. If {\it flags} parameter is non {\tt NULL}, the position of the point
276inside the tab is returned as well.
277
278{\bf NB: } This method is currently only implemented under wxMSW and wxUniv.
279
280\wxheading{Parameters}
281
282\docparam{pt}{Specifies the point for the hit test.}
283
284\docparam{flags}{Return value for detailed information. One of the following values:
285\twocolwidtha{7cm}
286\begin{twocollist}\itemsep=0pt
287\twocolitem{{\bf wxNB\_HITTEST\_NOWHERE}}{There was no tab under this point.}
288\twocolitem{{\bf wxNB\_HITTEST\_ONICON}}{The point was over an icon (currently wxMSW only).}
289\twocolitem{{\bf wxNB\_HITTEST\_ONLABEL}}{The point was over a label (currently wxMSW only).}
290\twocolitem{{\bf wxNB\_HITTEST\_ONITEM}}{The point was over an item, but not on the label or icon.}
291\end{twocollist}
292}
293
294\wxheading{Return value}
295
296Returns the zero-based tab index or {\tt wxNOT\_FOUND} if there is no tab is at
297the specified position.
298
299
300
301\membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage}
302
303\func{bool}{InsertPage}{\param{size\_t}{ index}, \param{wxNotebookPage*}{ page},
304 \param{const wxString\&}{ text},
305 \param{bool}{ select = false},
306 \param{int}{ imageId = -1}}
307
308Inserts a new page at the specified position.
309
310\wxheading{Parameters}
311
312\docparam{index}{Specifies the position for the new page.}
313
314\docparam{page}{Specifies the new page.}
315
316\docparam{text}{Specifies the text for the new page.}
317
318\docparam{select}{Specifies whether the page should be selected.}
319
320\docparam{imageId}{Specifies the optional image index for the new page.}
321
322\wxheading{Return value}
323
324true if successful, false otherwise.
325
326\wxheading{Remarks}
327
328Do not delete the page, it will be deleted by the notebook.
329
330\wxheading{See also}
331
332\helpref{wxNotebook::AddPage}{wxnotebookaddpage}
333
334
335\membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange}
336
337\func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}}
338
339An event handler function, called when the page selection is changed.
340
341\wxheading{See also}
342
343\helpref{wxNotebookEvent}{wxnotebookevent}
344
345
346\membersection{wxNotebook::RemovePage}\label{wxnotebookremovepage}
347
348\func{bool}{RemovePage}{\param{size\_t}{ page}}
349
350Deletes the specified page, without deleting the associated window.
351
352
353\membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist}
354
355\func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
356
357Sets the image list for the page control. It does not take
358ownership of the image list, you must delete it yourself.
359
360\wxheading{See also}
361
362\helpref{wxImageList}{wximagelist},
363\helpref{AssignImageList}{wxnotebookassignimagelist}
364
365
366\membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding}
367
368\func{void}{SetPadding}{\param{const wxSize\&}{ padding}}
369
370Sets the amount of space around each page's icon and label, in pixels.
371
372{\bf NB:} The vertical padding cannot be changed in wxGTK.
373
374
375\membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
376
377\func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
378
379Sets the width and height of the pages.
380
381{\bf NB:} This method is currently not implemented for wxGTK.
382
383
384\membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage}
385
386\func{bool}{SetPageImage}{\param{size\_t}{ page}, \param{int }{image}}
387
388Sets the image index for the given page. {\it image} is an index into
389the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}.
390
391
392\membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext}
393
394\func{bool}{SetPageText}{\param{size\_t}{ page}, \param{const wxString\& }{text}}
395
396Sets the text for the given page.
397
398
399\membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection}
400
401\func{int}{SetSelection}{\param{size\_t}{ page}}
402
403Sets the selection for the given page, returning the previous selection.
404
405The call to this function generates the page changing events.
406
407\wxheading{See also}
408
409\helpref{wxNotebook::GetSelection}{wxnotebookgetselection}
410
411