1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of wxTreebook
4 // Author: wxWidgets team
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
10 wxEventType wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED
;
11 wxEventType wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING
;
12 wxEventType wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED
;
13 wxEventType wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED
;
18 This class is an extension of the wxNotebook class that allows a tree
19 structured set of pages to be shown in a control. A classic example is a
20 netscape preferences dialog that shows a tree of preference sections on
21 the left and select section page on the right.
23 To use the class simply create it and populate with pages using
24 InsertPage(), InsertSubPage(), AddPage(), AddSubPage().
26 If your tree is no more than 1 level in depth then you could simply use
27 AddPage() and AddSubPage() to sequentially populate your tree by adding at
28 every step a page or a subpage to the end of the tree.
30 @beginEventEmissionTable{wxBookCtrlEvent}
31 @event{EVT_TREEBOOK_PAGE_CHANGED(id, func)}
32 The page selection was changed.
33 Processes a @c wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED event.
34 @event{EVT_TREEBOOK_PAGE_CHANGING(id, func)}
35 The page selection is about to be changed.
36 Processes a @c wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING event.
37 This event can be @ref wxNotifyEvent::Veto() "vetoed".
38 @event{EVT_TREEBOOK_NODE_COLLAPSED(id, func)}
39 The page node is going to be collapsed.
40 Processes a @c wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED event.
41 @event{EVT_TREEBOOK_NODE_EXPANDED(id, func)}
42 The page node is going to be expanded.
43 Processes a @c wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED event.
49 @see wxBookCtrl, wxBookCtrlEvent, wxNotebook, wxTreeCtrl, wxImageList,
50 @ref overview_bookctrl, @ref page_samples_notebook
52 class wxTreebook
: public wxBookCtrlBase
61 Creates an empty wxTreebook.
64 The parent window. Must be non-@NULL.
66 The window identifier.
72 The window style. See wxNotebook.
74 The name of the control (used only under Motif).
76 wxTreebook(wxWindow
* parent
, wxWindowID id
,
77 const wxPoint
& pos
= wxDefaultPosition
,
78 const wxSize
& size
= wxDefaultSize
,
79 long style
= wxBK_DEFAULT
,
80 const wxString
& name
= wxEmptyString
);
83 Destroys the wxTreebook object.
84 Also deletes all the pages owned by the control (inserted previously into it).
86 virtual ~wxTreebook();
89 Adds a new page. The page is placed at the topmost level after all other
90 pages. @NULL could be specified for page to create an empty page.
92 virtual bool AddPage(wxWindow
* page
, const wxString
& text
,
93 bool bSelect
= false, int imageId
= wxNOT_FOUND
);
96 Adds a new child-page to the last top-level page. @NULL could be
97 specified for page to create an empty page.
99 virtual bool AddSubPage(wxWindow
* page
, const wxString
& text
,
100 bool bSelect
= false, int imageId
= wxNOT_FOUND
);
104 Shortcut for @ref wxTreebook::ExpandNode() "ExpandNode"( @a pageId,
107 bool CollapseNode(size_t pageId
);
110 Creates a treebook control. See wxTreebook::wxTreebook() for the
111 description of the parameters.
113 bool Create(wxWindow
* parent
, wxWindowID id
,
114 const wxPoint
& pos
= wxDefaultPosition
,
115 const wxSize
& size
= wxDefaultSize
,
116 long style
= wxBK_DEFAULT
,
117 const wxString
& name
= wxEmptyString
);
120 Deletes the page at the specified position and all its children.
121 Could trigger page selection change in a case when selected page is removed.
122 In that case its parent is selected (or the next page if no parent).
124 virtual bool DeletePage(size_t pagePos
);
127 Expands (collapses) the @a pageId node. Returns the previous state.
128 May generate page changing events (if selected page is under the collapsed
129 branch, then its parent is autoselected).
131 virtual bool ExpandNode(size_t pageId
, bool expand
= true);
134 Returns the parent page of the given one or @c wxNOT_FOUND if this is a
137 int GetPageParent(size_t page
) const;
140 Returns the currently selected page, or @c wxNOT_FOUND if none was selected.
142 @note This method may return either the previously or newly selected
143 page when called from the EVT_TREEBOOK_PAGE_CHANGED() handler
144 depending on the platform and so wxBookCtrlEvent::GetSelection()
145 should be used instead in this case.
147 virtual int GetSelection() const;
150 Inserts a new page just before the page indicated by @a pagePos.
151 The new page is placed before @a pagePos page and on the same level.
152 @NULL could be specified for page to create an empty page.
154 virtual bool InsertPage(size_t pagePos
, wxWindow
* page
,
155 const wxString
& text
, bool bSelect
= false,
156 int imageId
= wxNOT_FOUND
);
159 Inserts a sub page under the specified page.
161 @NULL could be specified for page to create an empty page.
163 virtual bool InsertSubPage(size_t pagePos
, wxWindow
* page
,
164 const wxString
& text
, bool bSelect
= false,
165 int imageId
= wxNOT_FOUND
);
168 Returns @true if the page represented by @a pageId is expanded.
170 virtual bool IsNodeExpanded(size_t pageId
) const;