]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/notebook.tex
added null pointer check and assert
[wxWidgets.git] / docs / latex / wx / notebook.tex
index ce9ce5009dc0a8c879f5da09c5c804dc5c08a579..b5dc6a4bd003d67b1ad1f7c86e96d046841354d4 100644 (file)
@@ -10,6 +10,7 @@ managed by wxNotebook.
 
 \wxheading{Derived from}
 
 
 \wxheading{Derived from}
 
+wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\
 \helpref{wxControl}{wxcontrol}\\
 \helpref{wxWindow}{wxwindow}\\
 \helpref{wxEvtHandler}{wxevthandler}\\
 \helpref{wxControl}{wxcontrol}\\
 \helpref{wxWindow}{wxwindow}\\
 \helpref{wxEvtHandler}{wxevthandler}\\
@@ -19,38 +20,78 @@ managed by wxNotebook.
 
 <wx/notebook.h>
 
 
 <wx/notebook.h>
 
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
 \wxheading{Window styles}
 
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
 \wxheading{Window styles}
 
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
-
-\twocolitem{\windowstyle{wxNB\_LEFT}}{Place tabs on the left side. Not supported under Windows XP.}
-\twocolitem{\windowstyle{wxNB\_RIGHT}}{Place tabs on the right side. Not supported under Windows XP.}
-\twocolitem{\windowstyle{wxNB\_BOTTOM}}{Place tabs under instead of above the notebook pages. Not supported under Windows XP.}
+\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\_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.}
+\twocolitem{\windowstyle{wxNB\_FLAT}}{(Windows CE only) Show tabs in a flat style.}
 
 \end{twocollist}
 
 
 \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
 
 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}
 
 \wxheading{See also}
 
-\helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist},\rtfsp
-\helpref{wxTabCtrl}{wxtabctrl}
+\helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist}, \helpref{notebook sample}{samplenotebook}\rtfsp
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxNotebook::wxNotebook}\label{wxnotebookconstr}
+\membersection{wxNotebook::wxNotebook}\label{wxnotebookctor}
 
 \func{}{wxNotebook}{\void}
 
 Default constructor.
 
 \func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
 
 \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 = "notebook"}}
+ \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}}
 
 Constructs a notebook control.
 
 
 Constructs a notebook control.
 
@@ -70,12 +111,14 @@ Note that sometimes you can reduce flicker by passing the wxCLIP\_CHILDREN windo
 
 \docparam{name}{The name of the control (used only under Motif).}
 
 
 \docparam{name}{The name of the control (used only under Motif).}
 
-\membersection{wxNotebook::\destruct{wxNotebook}}
+
+\membersection{wxNotebook::\destruct{wxNotebook}}\label{wxnotebookdtor}
 
 \func{}{\destruct{wxNotebook}}{\void}
 
 Destroys the wxNotebook object.
 
 
 \func{}{\destruct{wxNotebook}}{\void}
 
 Destroys the wxNotebook object.
 
+
 \membersection{wxNotebook::AddPage}\label{wxnotebookaddpage}
 
 \func{bool}{AddPage}{\param{wxNotebookPage*}{ page},
 \membersection{wxNotebook::AddPage}\label{wxnotebookaddpage}
 
 \func{bool}{AddPage}{\param{wxNotebookPage*}{ page},
@@ -109,6 +152,7 @@ Do not delete the page, it will be deleted by the notebook.
 
 \helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
 
 
 \helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
 
+
 \membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection}
 
 \func{void}{AdvanceSelection}{\param{bool}{ forward = true}}
 \membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection}
 
 \func{void}{AdvanceSelection}{\param{bool}{ forward = true}}
@@ -117,6 +161,7 @@ Cycles through the tabs.
 
 The call to this function generates the page changing events.
 
 
 The call to this function generates the page changing events.
 
+
 \membersection{wxNotebook::AssignImageList}\label{wxnotebookassignimagelist}
 
 \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
 \membersection{wxNotebook::AssignImageList}\label{wxnotebookassignimagelist}
 
 \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
@@ -129,28 +174,39 @@ the list.
 \helpref{wxImageList}{wximagelist},
 \helpref{SetImageList}{wxnotebooksetimagelist}
 
 \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},
 \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 = "notebook"}}
+ \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}}
 
 
-Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookconstr} for a description
+Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookctor} for a description
 of the parameters.
 
 of the parameters.
 
+
 \membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
 
 \func{bool}{DeleteAllPages}{\void}
 
 Deletes all pages.
 
 \membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
 
 \func{bool}{DeleteAllPages}{\void}
 
 Deletes all pages.
 
+
 \membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
 
 \membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
 
-\func{bool}{DeletePage}{\param{int}{ page}}
+\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.
 
 
 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 page or \NULL.
+
+
 \membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist}
 
 \constfunc{wxImageList*}{GetImageList}{\void}
 \membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist}
 
 \constfunc{wxImageList*}{GetImageList}{\void}
@@ -161,36 +217,42 @@ Returns the associated image list.
 
 \helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}
 
 
 \helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}
 
+
 \membersection{wxNotebook::GetPage}\label{wxnotebookgetpage}
 
 \membersection{wxNotebook::GetPage}\label{wxnotebookgetpage}
 
-\func{wxNotebookPage*}{GetPage}{\param{int}{ page}}
+\func{wxNotebookPage*}{GetPage}{\param{size\_t}{ page}}
 
 Returns the window at the given page position.
 
 
 Returns the window at the given page position.
 
+
 \membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount}
 
 \membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount}
 
-\constfunc{int}{GetPageCount}{\void}
+\constfunc{size\_t}{GetPageCount}{\void}
 
 Returns the number of pages in the notebook control.
 
 
 Returns the number of pages in the notebook control.
 
+
 \membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage}
 
 \membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage}
 
-\constfunc{int}{GetPageImage}{\param{int }{nPage}}
+\constfunc{int}{GetPageImage}{\param{size\_t }{nPage}}
 
 Returns the image index for the given page.
 
 
 Returns the image index for the given page.
 
+
 \membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext}
 
 \membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext}
 
-\constfunc{wxString}{GetPageText}{\param{int }{nPage}}
+\constfunc{wxString}{GetPageText}{\param{size\_t }{nPage}}
 
 Returns the string for the given page.
 
 
 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::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}
 \membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection}
 
 \constfunc{int}{GetSelection}{\void}
@@ -203,16 +265,22 @@ the platform and so\rtfsp
 \helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} should be
 used instead in this case.
 
 \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}}}
 
 \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
+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.
 
 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.}
 \wxheading{Parameters}
 
 \docparam{pt}{Specifies the point for the hit test.}
@@ -220,10 +288,11 @@ inside the tab is returned as well.
 \docparam{flags}{Return value for detailed information. One of the following values:
 \twocolwidtha{7cm}
 \begin{twocollist}\itemsep=0pt
 \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.}
+\twocolitem{{\bf wxBK\_HITTEST\_NOWHERE}}{There was no tab under this point.}
+\twocolitem{{\bf wxBK\_HITTEST\_ONICON}}{The point was over an icon (currently wxMSW only).}
+\twocolitem{{\bf wxBK\_HITTEST\_ONLABEL}}{The point was over a label (currently wxMSW only).}
+\twocolitem{{\bf wxBK\_HITTEST\_ONITEM}}{The point was over an item, but not on the label or icon.}
+\twocolitem{{\bf wxBK\_HITTEST\_ONPAGE}}{The point was over a currently selected page, not over any tab. Note that this flag is present only if {\tt wxNOT\_FOUND} is returned.}
 \end{twocollist}
 }
 
 \end{twocollist}
 }
 
@@ -233,9 +302,10 @@ Returns the zero-based tab index or {\tt wxNOT\_FOUND} if there is no tab is at
 the specified position.
 
 
 the specified position.
 
 
+
 \membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage}
 
 \membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage}
 
-\func{bool}{InsertPage}{\param{int}{ index}, \param{wxNotebookPage*}{ page},
+\func{bool}{InsertPage}{\param{size\_t}{ index}, \param{wxNotebookPage*}{ page},
  \param{const wxString\&}{ text},
  \param{bool}{ select = false},
  \param{int}{ imageId = -1}}
  \param{const wxString\&}{ text},
  \param{bool}{ select = false},
  \param{int}{ imageId = -1}}
@@ -266,6 +336,7 @@ Do not delete the page, it will be deleted by the notebook.
 
 \helpref{wxNotebook::AddPage}{wxnotebookaddpage}
 
 
 \helpref{wxNotebook::AddPage}{wxnotebookaddpage}
 
+
 \membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange}
 
 \func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}}
 \membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange}
 
 \func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}}
@@ -276,12 +347,14 @@ An event handler function, called when the page selection is changed.
 
 \helpref{wxNotebookEvent}{wxnotebookevent}
 
 
 \helpref{wxNotebookEvent}{wxnotebookevent}
 
+
 \membersection{wxNotebook::RemovePage}\label{wxnotebookremovepage}
 
 \membersection{wxNotebook::RemovePage}\label{wxnotebookremovepage}
 
-\func{bool}{RemovePage}{\param{int}{ page}}
+\func{bool}{RemovePage}{\param{size\_t}{ page}}
 
 Deletes the specified page, without deleting the associated window.
 
 
 Deletes the specified page, without deleting the associated window.
 
+
 \membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist}
 
 \func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
 \membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist}
 
 \func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
@@ -294,6 +367,7 @@ ownership of the image list, you must delete it yourself.
 \helpref{wxImageList}{wximagelist},
 \helpref{AssignImageList}{wxnotebookassignimagelist}
 
 \helpref{wxImageList}{wximagelist},
 \helpref{AssignImageList}{wxnotebookassignimagelist}
 
+
 \membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding}
 
 \func{void}{SetPadding}{\param{const wxSize\&}{ padding}}
 \membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding}
 
 \func{void}{SetPadding}{\param{const wxSize\&}{ padding}}
@@ -302,6 +376,7 @@ Sets the amount of space around each page's icon and label, in pixels.
 
 {\bf NB:} The vertical padding cannot be changed in wxGTK.
 
 
 {\bf NB:} The vertical padding cannot be changed in wxGTK.
 
+
 \membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
 
 \func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
 \membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
 
 \func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
@@ -310,29 +385,45 @@ Sets the width and height of the pages.
 
 {\bf NB:} This method is currently not implemented for wxGTK.
 
 
 {\bf NB:} This method is currently not implemented for wxGTK.
 
+
 \membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage}
 
 \membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage}
 
-\func{bool}{SetPageImage}{\param{int}{ page}, \param{int }{image}}
+\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}.
 
 
 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}
 
 \membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext}
 
-\func{bool}{SetPageText}{\param{int}{ page}, \param{const wxString\& }{text}}
+\func{bool}{SetPageText}{\param{size\_t}{ page}, \param{const wxString\& }{text}}
 
 Sets the text for the given page.
 
 
 Sets the text for the given page.
 
+
 \membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection}
 
 \membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection}
 
-\func{int}{SetSelection}{\param{int}{ page}}
+\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.
 
 
 Sets the selection for the given page, returning the previous selection.
 
 The call to this function generates the page changing events.
 
+This function is deprecated and should not be used in new code. Please use the
+\helpref{ChangeSelection}{wxnotebookchangeselection} function instead.
+
 \wxheading{See also}
 
 \helpref{wxNotebook::GetSelection}{wxnotebookgetselection}
 
 
 \wxheading{See also}
 
 \helpref{wxNotebook::GetSelection}{wxnotebookgetselection}
 
 
+\membersection{wxNotebook::ChangeSelection}\label{wxnotebookchangeselection}
+
+\func{int}{ChangeSelection}{\param{size\_t}{ page}}
+
+Changes the selection for the given page, returning the previous selection.
+
+The call to this function \emph{does not} generate the page changing events.
+This is the only difference with \helpref{SetSelection}{wxnotebooksetselection}.
+See \helpref{this topic}{progevent} for more info.
+