\section{\class{wxNotebook}}\label{wxnotebook} This class represents a notebook control, which manages multiple windows with associated tabs. To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage}, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook. {\bf wxNotebookPage} is a typedef for wxWindow. \wxheading{Derived from} \helpref{wxControl}{wxcontrol}\\ \helpref{wxWindow}{wxwindow}\\ \helpref{wxEvtHandler}{wxevthandler}\\ \helpref{wxObject}{wxobject} \wxheading{Include files} \wxheading{Window styles} \twocolwidtha{5cm} \begin{twocollist}\itemsep=0pt \twocolitem{\windowstyle{wxNB\_TOP}}{Place tabs on the top side.} \twocolitem{\windowstyle{wxNB\_LEFT}}{Place tabs on the left side.} \twocolitem{\windowstyle{wxNB\_RIGHT}}{Place tabs on the right side.} \twocolitem{\windowstyle{wxNB\_BOTTOM}}{Place tabs under instead of above the notebook pages.} \twocolitem{\windowstyle{wxNB\_FIXEDWIDTH}}{(Windows only) All tabs will have same width.} \twocolitem{\windowstyle{wxNB\_MULTILINE}}{(Windows only) There can be several rows of tabs.} \twocolitem{\windowstyle{wxNB\_NOPAGETHEME}}{(Windows only) Display a solid colour on notebook pages, and not a gradient, which can reduce performance.} \end{twocollist} The styles \texttt{wxNB\_LEFT}, \texttt{RIGHT} and \texttt{BOTTOM} are not supported under Microsoft Windows XP when using visual themes. See also \helpref{window styles overview}{windowstyles}. \input noteevt.inc \wxheading{Page backgrounds} On Windows XP, the default theme paints a gradient on the notebook's pages. If you wish to suppress this theme, for aesthetic or performance reasons, there are three ways of doing it. You can use wxNB\_NOPAGETHEME to disable themed drawing for a particular notebook, you can call {\tt wxSystemOptions::SetOption} to disable it for the whole application, or you can disable it for individual pages by using {\tt SetBackgroundColour}. To disable themed pages globally: \begin{verbatim} wxSystemOptions::SetOption(wxT("msw.notebook.themed-background"), 0); \end{verbatim} Set the value to 1 to enable it again. To give a single page a solid background that more or less fits in with the overall theme, use: \begin{verbatim} wxColour col = notebook->GetThemeBackgroundColour(); if (col.Ok()) { page->SetBackgroundColour(col); } \end{verbatim} On platforms other than Windows, or if the application is not using Windows themes, {\tt GetThemeBackgroundColour} will return an uninitialised colour object, and the above code will therefore work on all platforms. \wxheading{See also} \helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist}, \helpref{notebook sample}{samplenotebook}\rtfsp \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxNotebook::wxNotebook}\label{wxnotebookctor} \func{}{wxNotebook}{\void} Default constructor. \func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}} Constructs a notebook control. Note that sometimes you can reduce flicker by passing the wxCLIP\_CHILDREN window style. \wxheading{Parameters} \docparam{parent}{The parent window. Must be non-NULL.} \docparam{id}{The window identifier.} \docparam{pos}{The window position.} \docparam{size}{The window size.} \docparam{style}{The window style. See \helpref{wxNotebook}{wxnotebook}.} \docparam{name}{The name of the control (used only under Motif).} \membersection{wxNotebook::\destruct{wxNotebook}}\label{wxnotebookdtor} \func{}{\destruct{wxNotebook}}{\void} Destroys the wxNotebook object. \membersection{wxNotebook::AddPage}\label{wxnotebookaddpage} \func{bool}{AddPage}{\param{wxNotebookPage*}{ page}, \param{const wxString\&}{ text}, \param{bool}{ select = false}, \param{int}{ imageId = -1}} Adds a new page. The call to this function may generate the page changing events. \wxheading{Parameters} \docparam{page}{Specifies the new page.} \docparam{text}{Specifies the text for the new page.} \docparam{select}{Specifies whether the page should be selected.} \docparam{imageId}{Specifies the optional image index for the new page.} \wxheading{Return value} true if successful, false otherwise. \wxheading{Remarks} Do not delete the page, it will be deleted by the notebook. \wxheading{See also} \helpref{wxNotebook::InsertPage}{wxnotebookinsertpage} \membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection} \func{void}{AdvanceSelection}{\param{bool}{ forward = true}} Cycles through the tabs. The call to this function generates the page changing events. \membersection{wxNotebook::AssignImageList}\label{wxnotebookassignimagelist} \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}} Sets the image list for the page control and takes ownership of the list. \wxheading{See also} \helpref{wxImageList}{wximagelist}, \helpref{SetImageList}{wxnotebooksetimagelist} \membersection{wxNotebook::Create}\label{wxnotebookcreate} \func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}} Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookctor} for a description of the parameters. \membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages} \func{bool}{DeleteAllPages}{\void} Deletes all pages. \membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage} \func{bool}{DeletePage}{\param{size\_t}{ page}} Deletes the specified page, and the associated window. The call to this function generates the page changing events. \membersection{wxNotebook::GetCurrentPage}\label{wxnotebookgetcurrentpage} \constfunc{wxWindow *}{GetCurrentPage}{\void} Returns the currently selected notebook age or \texttt{NULL}. \membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist} \constfunc{wxImageList*}{GetImageList}{\void} Returns the associated image list. \wxheading{See also} \helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist} \membersection{wxNotebook::GetPage}\label{wxnotebookgetpage} \func{wxNotebookPage*}{GetPage}{\param{size\_t}{ page}} Returns the window at the given page position. \membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount} \constfunc{size\_t}{GetPageCount}{\void} Returns the number of pages in the notebook control. \membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage} \constfunc{int}{GetPageImage}{\param{size\_t }{nPage}} Returns the image index for the given page. \membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext} \constfunc{wxString}{GetPageText}{\param{size\_t }{nPage}} Returns the string for the given page. \membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount} \constfunc{int}{GetRowCount}{\void} Returns the number of rows in the notebook control. \membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection} \constfunc{int}{GetSelection}{\void} Returns the currently selected page, or $-1$ if none was selected. Note that this method may return either the previously or newly selected page when called from the {\tt EVT\_NOTEBOOK\_PAGE\_CHANGED} handler depending on the platform and so\rtfsp \helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} should be used instead in this case. \membersection{wxNotebook::GetThemeBackgroundColour}\label{wxnotebookgetthemebackgroundcolour} \constfunc{wxColour}{GetThemeBackgroundColour}{\void} If running under Windows and themes are enabled for the application, this function returns a suitable colour for painting the background of a notebook page, and can be passed to {\tt SetBackgroundColour}. Otherwise, an uninitialised colour will be returned. \membersection{wxNotebook::HitTest}\label{wxnotebookhittest} \func{int}{HitTest}{\param{const wxPoint\&}{ pt}, \param{long}{ *flags = {\tt NULL}}} Returns the index of the tab at the specified position or {\tt wxNOT\_FOUND} if none. If {\it flags} parameter is non {\tt NULL}, the position of the point inside the tab is returned as well. {\bf NB: } This method is currently only implemented under wxMSW and wxUniv. \wxheading{Parameters} \docparam{pt}{Specifies the point for the hit test.} \docparam{flags}{Return value for detailed information. One of the following values: \twocolwidtha{7cm} \begin{twocollist}\itemsep=0pt \twocolitem{{\bf wxNB\_HITTEST\_NOWHERE}}{There was no tab under this point.} \twocolitem{{\bf wxNB\_HITTEST\_ONICON}}{The point was over an icon (currently wxMSW only).} \twocolitem{{\bf wxNB\_HITTEST\_ONLABEL}}{The point was over a label (currently wxMSW only).} \twocolitem{{\bf wxNB\_HITTEST\_ONITEM}}{The point was over an item, but not on the label or icon.} \end{twocollist} } \wxheading{Return value} Returns the zero-based tab index or {\tt wxNOT\_FOUND} if there is no tab is at the specified position. \membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage} \func{bool}{InsertPage}{\param{size\_t}{ index}, \param{wxNotebookPage*}{ page}, \param{const wxString\&}{ text}, \param{bool}{ select = false}, \param{int}{ imageId = -1}} Inserts a new page at the specified position. \wxheading{Parameters} \docparam{index}{Specifies the position for the new page.} \docparam{page}{Specifies the new page.} \docparam{text}{Specifies the text for the new page.} \docparam{select}{Specifies whether the page should be selected.} \docparam{imageId}{Specifies the optional image index for the new page.} \wxheading{Return value} true if successful, false otherwise. \wxheading{Remarks} Do not delete the page, it will be deleted by the notebook. \wxheading{See also} \helpref{wxNotebook::AddPage}{wxnotebookaddpage} \membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange} \func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}} An event handler function, called when the page selection is changed. \wxheading{See also} \helpref{wxNotebookEvent}{wxnotebookevent} \membersection{wxNotebook::RemovePage}\label{wxnotebookremovepage} \func{bool}{RemovePage}{\param{size\_t}{ page}} Deletes the specified page, without deleting the associated window. \membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist} \func{void}{SetImageList}{\param{wxImageList*}{ imageList}} Sets the image list for the page control. It does not take ownership of the image list, you must delete it yourself. \wxheading{See also} \helpref{wxImageList}{wximagelist}, \helpref{AssignImageList}{wxnotebookassignimagelist} \membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding} \func{void}{SetPadding}{\param{const wxSize\&}{ padding}} Sets the amount of space around each page's icon and label, in pixels. {\bf NB:} The vertical padding cannot be changed in wxGTK. \membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize} \func{void}{SetPageSize}{\param{const wxSize\&}{ size}} Sets the width and height of the pages. {\bf NB:} This method is currently not implemented for wxGTK. \membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage} \func{bool}{SetPageImage}{\param{size\_t}{ page}, \param{int }{image}} Sets the image index for the given page. {\it image} is an index into the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}. \membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext} \func{bool}{SetPageText}{\param{size\_t}{ page}, \param{const wxString\& }{text}} Sets the text for the given page. \membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection} \func{int}{SetSelection}{\param{size\_t}{ page}} Sets the selection for the given page, returning the previous selection. The call to this function generates the page changing events. \wxheading{See also} \helpref{wxNotebook::GetSelection}{wxnotebookgetselection}