# wxNotebook

###
Module

wxNotebook

###
Module Summary

Functions for wxNotebook class

###
Description

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

To use the class, create a wxNotebook object and call wxBookCtrlBase:addPage/4 or wxBookCtrlBase:insertPage/5, 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:

Page backgrounds

On Windows, the default theme paints a background 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/2 to disable it for the whole application, or you can disable it for individual pages by using wxWindow:setBackgroundColour/2.

To disable themed pages globally:

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:

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

See: ?wxBookCtrl, wxBookCtrlEvent, wxImageList, Examples

This class is derived (and can use functions) from: wxBookCtrlBase wxControl wxWindow wxEvtHandler

wxWidgets docs: wxNotebook

###
Events

Event types emitted from this class: command_notebook_page_changed, command_notebook_page_changing

###
Data Types

####
wxNotebook() = wx:wx_object()

###
Exports

####
new() -> wxNotebook()

Constructs a notebook control.

####
new(Parent, Id) -> wxNotebook()

### Types

Parent = wxWindow:wxWindow()
Id = integer()

####
new(Parent, Id, Options :: [Option]) -> wxNotebook()

### Types

Parent = wxWindow:wxWindow()
Id = integer()
Option =
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()}

Constructs a notebook control.

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

####
destroy(This :: wxNotebook()) -> ok

Destroys the wxNotebook object.

####
assignImageList(This, ImageList) -> ok

### Types

This = wxNotebook()
ImageList = wxImageList:wxImageList()

Sets the image list for the page control and takes ownership of the list.

See: wxImageList, setImageList/2

####
create(This, Parent, Id) -> boolean()

### Types

This = wxNotebook()
Parent = wxWindow:wxWindow()
Id = integer()

####
create(This, Parent, Id, Options :: [Option]) -> boolean()

### Types

This = wxNotebook()
Parent = wxWindow:wxWindow()
Id = integer()
Option =
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()}

Creates a notebook control.

See new/3 for a description of the parameters.

####
getImageList(This) -> wxImageList:wxImageList()

### Types

This = wxNotebook()

Returns the associated image list, may be NULL.

See: wxImageList, setImageList/2

####
getPageImage(This, NPage) -> integer()

### Types

This = wxNotebook()
NPage = integer()

Returns the image index for the given page.

####
getRowCount(This) -> integer()

### Types

This = wxNotebook()

Returns the number of rows in the notebook control.

####
getThemeBackgroundColour(This) -> wx:wx_colour4()

### Types

This = wxNotebook()

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 wxWindow:setBackgroundColour/2.

Otherwise, an uninitialised colour will be returned.

####
setImageList(This, ImageList) -> ok

### Types

This = wxNotebook()
ImageList = wxImageList:wxImageList()

Sets the image list to use.

It does not take ownership of the image list, you must delete it yourself.

See: wxImageList, assignImageList/2

####
setPadding(This, Padding) -> ok

### Types

This = wxNotebook()
Padding = {W :: integer(), H :: integer()}

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

Note: The vertical padding cannot be changed in wxGTK.

####
setPageSize(This, Size) -> ok

### Types

This = wxNotebook()
Size = {W :: integer(), H :: integer()}

Sets the width and height of the pages.

Note: This method is currently not implemented for wxGTK.

####
setPageImage(This, Page, Image) -> boolean()

### Types

This = wxNotebook()
Page = Image = integer()

Sets the image index for the given page.

image is an index into the image list which was set with setImageList/2.