This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a wxNotebook object and call AddPage or 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.
Derived from
wxControl
wxWindow
wxEvtHandler
wxObject
Include files
<wx/notebook.h>
Window styles
wxNB_LEFT | Place tabs on the left side. Not supported under Windows XP. |
wxNB_RIGHT | Place tabs on the right side. Not supported under Windows XP. |
wxNB_BOTTOM | Place tabs under instead of above the notebook pages. Not supported under Windows XP. |
wxNB_FIXEDWIDTH | (Windows only) All tabs will have same width. |
wxNB_MULTILINE | (Windows only) There can be several rows of tabs. |
See also window styles overview.
Event handling
To process input from a notebook control, use the following event handler macros to direct input to member functions that take a wxNotebookEvent argument.
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. |
See also
wxNotebookEvent, wxImageList, wxTabCtrl
Members
wxNotebook::wxNotebook
wxNotebook::~wxNotebook
wxNotebook::AddPage
wxNotebook::AdvanceSelection
wxNotebook::AssignImageList
wxNotebook::Create
wxNotebook::DeleteAllPages
wxNotebook::DeletePage
wxNotebook::GetImageList
wxNotebook::GetPage
wxNotebook::GetPageCount
wxNotebook::GetPageImage
wxNotebook::GetPageText
wxNotebook::GetRowCount
wxNotebook::GetSelection
wxNotebook::HitTest
wxNotebook::InsertPage
wxNotebook::OnSelChange
wxNotebook::RemovePage
wxNotebook::SetImageList
wxNotebook::SetPadding
wxNotebook::SetPageSize
wxNotebook::SetPageImage
wxNotebook::SetPageText
wxNotebook::SetSelection
wxNotebook()
Default constructor.
wxNotebook(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "notebook")
Constructs a notebook control.
Note that sometimes you can reduce flicker by passing the wxCLIP_CHILDREN window style.
Parameters
parent
id
pos
size
style
name
~wxNotebook()
Destroys the wxNotebook object.
bool AddPage(wxNotebookPage* page, const wxString& text, bool select = false, int imageId = -1)
Adds a new page.
The call to this function may generate the page changing events.
Parameters
page
text
select
imageId
Return value
true if successful, false otherwise.
Remarks
Do not delete the page, it will be deleted by the notebook.
See also
void AdvanceSelection(bool forward = true)
Cycles through the tabs.
The call to this function generates the page changing events.
void AssignImageList(wxImageList* imageList)
Sets the image list for the page control and takes ownership of the list.
See also
bool Create(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size, long style = 0, const wxString& name = "notebook")
Creates a notebook control. See wxNotebook::wxNotebook for a description of the parameters.
bool DeleteAllPages()
Deletes all pages.
bool DeletePage(size_t page)
Deletes the specified page, and the associated window.
The call to this function generates the page changing events.
wxImageList* GetImageList() const
Returns the associated image list.
See also
wxImageList, wxNotebook::SetImageList
wxNotebookPage* GetPage(size_t page)
Returns the window at the given page position.
size_t GetPageCount() const
Returns the number of pages in the notebook control.
int GetPageImage(size_t nPage) const
Returns the image index for the given page.
wxString GetPageText(size_t nPage) const
Returns the string for the given page.
int GetRowCount() const
Returns the number of rows in the notebook control.
int GetSelection() const
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 EVT_NOTEBOOK_PAGE_CHANGED handler depending on the platform and so wxNotebookEvent::GetSelection should be used instead in this case.
int HitTest(const wxPoint& pt, long *flags = NULL)
Returns the index of the tab at the specified position or wxNOT_FOUND if none. If flags parameter is non NULL, the position of the point inside the tab is returned as well.
NB: This method is currently only implemented under wxMSW and wxUniv.
Parameters
pt
flags
wxNB_HITTEST_NOWHERE | There was no tab under this point. |
wxNB_HITTEST_ONICON | The point was over an icon (currently wxMSW only). |
wxNB_HITTEST_ONLABEL | The point was over a label (currently wxMSW only). |
wxNB_HITTEST_ONITEM | The point was over an item, but not on the label or icon. |
Return value
Returns the zero-based tab index or wxNOT_FOUND if there is no tab is at the specified position.
bool InsertPage(size_t index, wxNotebookPage* page, const wxString& text, bool select = false, int imageId = -1)
Inserts a new page at the specified position.
Parameters
index
page
text
select
imageId
Return value
true if successful, false otherwise.
Remarks
Do not delete the page, it will be deleted by the notebook.
See also
void OnSelChange(wxNotebookEvent& event)
An event handler function, called when the page selection is changed.
See also
bool RemovePage(size_t page)
Deletes the specified page, without deleting the associated window.
void SetImageList(wxImageList* imageList)
Sets the image list for the page control. It does not take ownership of the image list, you must delete it yourself.
See also
void SetPadding(const wxSize& padding)
Sets the amount of space around each page's icon and label, in pixels.
NB: The vertical padding cannot be changed in wxGTK.
void SetPageSize(const wxSize& size)
Sets the width and height of the pages.
NB: This method is currently not implemented for wxGTK.
bool SetPageImage(size_t page, int image)
Sets the image index for the given page. image is an index into the image list which was set with wxNotebook::SetImageList.
bool SetPageText(size_t page, const wxString& text)
Sets the text for the given page.
int SetSelection(size_t page)
Sets the selection for the given page, returning the previous selection.
The call to this function generates the page changing events.
See also