---
name: "wxTreebook"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/wxTreebook"
---

# wxTreebook(3erl)

Functions for wxTreebook class

## NAME

wxTreebook - Functions for wxTreebook class

## DESCRIPTION

This class is an extension of the *wxNotebook* class that allows a tree structured set of pages to be shown in a control. A classic example is a netscape preferences dialog that shows a tree of preference sections on the left and select section page on the right.

To use the class simply create it and populate with pages using *insertPage/5*, *insertSubPage/5*, *addPage/4*, *AddSubPage()* (not implemented in wx).

If your tree is no more than 1 level in depth then you could simply use *addPage/4* and *AddSubPage()* (not implemented in wx) to sequentially populate your tree by adding at every step a page or a subpage to the end of the tree.

See: ?wxBookCtrl, *wxBookCtrlEvent*, *wxNotebook*, *wxTreeCtrl*, *wxImageList*, Overview bookctrl, Examples

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

wxWidgets docs: wxTreebook

## EVENTS

Event types emitted from this class: *treebook\_page\_changed*, *treebook\_page\_changing*

## DATA TYPES

```
wxTreebook() = wx:wx_object()
```

## EXPORTS

```
new() -> wxTreebook()
```

Default constructor.

```
new(Parent, Id) -> wxTreebook()
```

Types:

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

```
new(Parent, Id, Options :: [Option]) -> wxTreebook()
```

Types:

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

Creates an empty *wxTreebook*.

```
destroy(This :: wxTreebook()) -> ok
```

Destroys the *wxTreebook* object.

Also deletes all the pages owned by the control (inserted previously into it).

```
addPage(This, Page, Text) -> boolean()
```

Types:

This = wxTreebook()\
 Page = wxWindow:wxWindow()\
 Text = unicode:chardata()\

```
addPage(This, Page, Text, Options :: [Option]) -> boolean()
```

Types:

This = wxTreebook()\
 Page = wxWindow:wxWindow()\
 Text = unicode:chardata()\
 Option = {bSelect, boolean()} \| {imageId, integer()}\

Adds a new page.

The page is placed at the topmost level after all other pages. NULL could be specified for page to create an empty page.

```
advanceSelection(This) -> ok
```

Types:

This = wxTreebook()\

```
advanceSelection(This, Options :: [Option]) -> ok
```

Types:

This = wxTreebook()\
 Option = {forward, boolean()}\

Cycles through the tabs.

The call to this function generates the page changing events.

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

Types:

This = wxTreebook()\
 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 = wxTreebook()\
 Parent = wxWindow:wxWindow()\
 Id = integer()\

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

Types:

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

Creates a treebook control.

See *new/3* for the description of the parameters.

```
deleteAllPages(This) -> boolean()
```

Types:

This = wxTreebook()\

Deletes all pages.

```
getCurrentPage(This) -> wxWindow:wxWindow()
```

Types:

This = wxTreebook()\

Returns the currently selected page or NULL.

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

Types:

This = wxTreebook()\

Returns the associated image list, may be NULL.

See: *wxImageList*, *setImageList/2*

```
getPage(This, Page) -> wxWindow:wxWindow()
```

Types:

This = wxTreebook()\
 Page = integer()\

Returns the window at the given page position.

```
getPageCount(This) -> integer()
```

Types:

This = wxTreebook()\

Returns the number of pages in the control.

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

Types:

This = wxTreebook()\
 NPage = integer()\

Returns the image index for the given page.

```
getPageText(This, NPage) -> unicode:charlist()
```

Types:

This = wxTreebook()\
 NPage = integer()\

Returns the string for the given page.

```
getSelection(This) -> integer()
```

Types:

This = wxTreebook()\

Returns the currently selected page, or *wxNOT\_FOUND* if none was selected.

Note: This method may return either the previously or newly selected page when called from the EVT\_TREEBOOK\_PAGE\_CHANGED() handler depending on the platform and so *wxBookCtrlEvent:getSelection/1* should be used instead in this case.

```
expandNode(This, PageId) -> boolean()
```

Types:

This = wxTreebook()\
 PageId = integer()\

```
expandNode(This, PageId, Options :: [Option]) -> boolean()
```

Types:

This = wxTreebook()\
 PageId = integer()\
 Option = {expand, boolean()}\

Expands (collapses) the *pageId* node.

Returns the previous state. May generate page changing events (if selected page is under the collapsed branch, then its parent is autoselected).

```
isNodeExpanded(This, PageId) -> boolean()
```

Types:

This = wxTreebook()\
 PageId = integer()\

Returns true if the page represented by *pageId* is expanded.

```
hitTest(This, Pt) -> Result
```

Types:

Result = {Res :: integer(), Flags :: integer()}\
 This = wxTreebook()\
 Pt = {X :: integer(), Y :: integer()}\

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.

Return: Returns the zero-based tab index or *wxNOT\_FOUND* if there is no tab at the specified position.

```
insertPage(This, PagePos, Page, Text) -> boolean()
```

Types:

This = wxTreebook()\
 PagePos = integer()\
 Page = wxWindow:wxWindow()\
 Text = unicode:chardata()\

```
insertPage(This, PagePos, Page, Text, Options :: [Option]) ->
              boolean()
```

Types:

This = wxTreebook()\
 PagePos = integer()\
 Page = wxWindow:wxWindow()\
 Text = unicode:chardata()\
 Option = {bSelect, boolean()} \| {imageId, integer()}\

Inserts a new page just before the page indicated by *pagePos*.

The new page is placed before *pagePos* page and on the same level. NULL could be specified for page to create an empty page.

```
insertSubPage(This, PagePos, Page, Text) -> boolean()
```

Types:

This = wxTreebook()\
 PagePos = integer()\
 Page = wxWindow:wxWindow()\
 Text = unicode:chardata()\

```
insertSubPage(This, PagePos, Page, Text, Options :: [Option]) ->
                 boolean()
```

Types:

This = wxTreebook()\
 PagePos = integer()\
 Page = wxWindow:wxWindow()\
 Text = unicode:chardata()\
 Option = {bSelect, boolean()} \| {imageId, integer()}\

Inserts a sub page under the specified page.

NULL could be specified for page to create an empty page.

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

Types:

This = wxTreebook()\
 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*

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

Types:

This = wxTreebook()\
 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 = wxTreebook()\
 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*.

```
setPageText(This, Page, Text) -> boolean()
```

Types:

This = wxTreebook()\
 Page = integer()\
 Text = unicode:chardata()\

Sets the text for the given page.

```
setSelection(This, Page) -> integer()
```

Types:

This = wxTreebook()\
 Page = integer()\

Sets the selection to the given page, returning the previous selection.

Notice that the call to this function generates the page changing events, use the *changeSelection/2* function if you don't want these events to be generated.

See: *wxBookCtrlBase:getSelection/1*

```
changeSelection(This, Page) -> integer()
```

Types:

This = wxTreebook()\
 Page = integer()\

Changes the selection to the given page, returning the previous selection.

This function behaves as *setSelection/2* but does *not* generate the page changing events.

See overview\_events\_prog for more information.
