]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/notebook.tex
Use const
[wxWidgets.git] / docs / latex / wx / notebook.tex
index 8825349389351d4c9e3962b09ce72013f6a6d8b4..b5dc6a4bd003d67b1ad1f7c86e96d046841354d4 100644 (file)
@@ -10,6 +10,7 @@ managed by wxNotebook.
 
 \wxheading{Derived from}
 
+wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\
 \helpref{wxControl}{wxcontrol}\\
 \helpref{wxWindow}{wxwindow}\\
 \helpref{wxEvtHandler}{wxevthandler}\\
@@ -19,38 +20,78 @@ managed by wxNotebook.
 
 <wx/notebook.h>
 
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
 \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\_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}
 
+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{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}}}
 
-\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},
- \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.
 
@@ -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).}
 
-\membersection{wxNotebook::\destruct{wxNotebook}}
+
+\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},
@@ -109,6 +152,7 @@ Do not delete the page, it will be deleted by the notebook.
 
 \helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
 
+
 \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.
 
+
 \membersection{wxNotebook::AssignImageList}\label{wxnotebookassignimagelist}
 
 \func{void}{AssignImageList}{\param{wxImageList*}{ imageList}}
@@ -129,20 +174,23 @@ the list.
 \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 = "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.
 
+
 \membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
 
 \func{bool}{DeleteAllPages}{\void}
 
 Deletes all pages.
 
+
 \membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
 
 \func{bool}{DeletePage}{\param{size\_t}{ page}}
@@ -151,6 +199,14 @@ 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}
@@ -161,36 +217,42 @@ Returns the associated image list.
 
 \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}
@@ -203,16 +265,22 @@ 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
+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.}
@@ -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
-\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}
 }
 
@@ -233,6 +302,7 @@ 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},
@@ -266,6 +336,7 @@ Do not delete the page, it will be deleted by the notebook.
 
 \helpref{wxNotebook::AddPage}{wxnotebookaddpage}
 
+
 \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}
 
+
 \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}}
@@ -294,6 +367,7 @@ ownership of the image list, you must delete it yourself.
 \helpref{wxImageList}{wximagelist},
 \helpref{AssignImageList}{wxnotebookassignimagelist}
 
+
 \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.
 
+
 \membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
 
 \func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
@@ -310,6 +385,7 @@ 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}}
@@ -317,12 +393,14 @@ Sets the width and height of the pages.
 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}}
@@ -331,8 +409,21 @@ 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}
 
 
+\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.
+