# wxNotebook Class Reference
[Book Controls]

`#include <wx/notebook.h>`

Inheritance diagram for wxNotebook:
[legend]

## Detailed Description

This class represents a notebook control, which manages multiple windows with associated tabs.

To use the class, create a wxNotebook object and call wxNotebook::AddPage or wxNotebook::InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook.

wxNotebookPage is a typedef for wxWindow.

## Styles

This class supports the following styles:

- wxNB_TOP:
  Place tabs on the top side.
- wxNB_LEFT:
  Place tabs on the left side.
- wxNB_RIGHT:
  Place tabs on the right side.
- wxNB_BOTTOM:
  Place tabs under instead of above the notebook pages.
- wxNB_FIXEDWIDTH:
  (Windows only) All tabs will have same width.
- wxNB_MULTILINE:
  (Windows only) There can be several rows of tabs.
- wxNB_NOPAGETHEME:
  (Windows only) Display a solid colour on notebook pages, and not a gradient, which can reduce performance.
- wxNB_FLAT:
  (Windows CE only) Show tabs in a flat style.

The styles wxNB_LEFT, RIGHT and BOTTOM are not supported under Microsoft Windows XP when using visual themes.

## Events emitted by this class

The following event handler macros redirect the events to member function handlers 'func' with prototypes like:

void handlerFuncName(wxBookCtrlEvent& event)
Event macros for events emitted by this class:

- EVT_NOTEBOOK_PAGE_CHANGED(id, func):
  The page selection was changed. Processes a `wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED` event.
- EVT_NOTEBOOK_PAGE_CHANGING(id, func):
  The page selection is about to be changed. Processes a `wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING` event. This event can be vetoed.

## 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 wxSystemOptions::SetOption to disable it for the whole application, or you can disable it for individual pages by using SetBackgroundColour().

To disable themed pages globally:

        wxSystemOptions::SetOption("msw.notebook.themed-background", 0);

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:

        wxColour col = notebook->GetThemeBackgroundColour();
        if (col.IsOk())
        {
            page->SetBackgroundColour(col);
        }

On platforms other than Windows, or if the application is not using Windows themes, GetThemeBackgroundColour() will return an uninitialised colour object, and the above code will therefore work on all platforms.

##

Library: wxCore

Category: Book Controls
Appearance:

wxMSW appearance | wxGTK appearance | wxMac appearance

See also:
  wxBookCtrl, wxBookCtrlEvent, wxImageList, Notebook Sample

## Public Member Functions
| wxNotebook ()
| Constructs a notebook control.
| wxNotebook (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxNotebookNameStr)
| Constructs a notebook control.
virtual | ~wxNotebook ()
| Destroys the wxNotebook object.
bool | Create (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxNotebookNameStr)
| Creates a notebook control.
virtual int | GetRowCount () const
| Returns the number of rows in the notebook control.
virtual wxColour | GetThemeBackgroundColour () const
| 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 SetBackgroundColour().
void | OnSelChange (wxBookCtrlEvent &event)
| An event handler function, called when the page selection is changed.
virtual void | SetPadding (const wxSize &padding)
| Sets the amount of space around each page's icon and label, in pixels.

List of all members.

## Constructor & Destructor Documentation

wxNotebook::wxNotebook | ( |  | ) |

Constructs a notebook control.

wxNotebook::wxNotebook | ( | wxWindow * | parent,
|  | wxWindowID | id,
|  | const wxPoint & | pos = `wxDefaultPosition`,
|  | const wxSize & | size = `wxDefaultSize`,
|  | long | style = `0`,
|  | const wxString & | name = `wxNotebookNameStr` |
| ) |  |  |

Constructs a notebook control.

Note that sometimes you can reduce flicker by passing the wxCLIP_CHILDREN window style.

Parameters:

  | parent | The parent window. Must be non-NULL.
  | id | The window identifier.
  | pos | The window position.
  | size | The window size.
  | style | The window style. See wxNotebook.
  | name | The name of the control.

virtual wxNotebook::~wxNotebook | ( |  | ) | `[virtual]`

Destroys the wxNotebook object.

## Member Function Documentation

bool wxNotebook::Create | ( | wxWindow * | parent,
|  | wxWindowID | id,
|  | const wxPoint & | pos = `wxDefaultPosition`,
|  | const wxSize & | size = `wxDefaultSize`,
|  | long | style = `0`,
|  | const wxString & | name = `wxNotebookNameStr` |
| ) |  |  |

Creates a notebook control.

See wxNotebook() for a description of the parameters.

Reimplemented from wxBookCtrlBase.

virtual int wxNotebook::GetRowCount | ( |  | ) | const`[virtual]`

Returns the number of rows in the notebook control.

virtual wxColour wxNotebook::GetThemeBackgroundColour | ( |  | ) | const`[virtual]`

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 SetBackgroundColour().

Otherwise, an uninitialised colour will be returned.

void wxNotebook::OnSelChange | ( | wxBookCtrlEvent & | event | ) |

An event handler function, called when the page selection is changed.

See also:
  wxBookCtrlEvent

virtual void wxNotebook::SetPadding | ( | const wxSize & | padding | ) | `[virtual]`

Sets the amount of space around each page's icon and label, in pixels.

Note:
  The vertical padding cannot be changed in wxGTK.

|  | [ top ]