Wt
3.2.1
|
A widget that represents a navigatable tree. More...
#include <Wt/WTree>
Public Types | |
typedef std::set< WTreeNode * > | WTreeNodeSet |
Typedef for a set of WTreeNode's. | |
Public Member Functions | |
WTree (WContainerWidget *parent=0) | |
Creates a new tree. | |
void | setTreeRoot (WTreeNode *root) |
Sets the tree root node. | |
WTreeNode * | treeRoot () const |
Returns the root node. | |
void | setSelectionMode (SelectionMode mode) |
Sets the selection mode. | |
SelectionMode | selectionMode () const |
Returns the selection mode. | |
const WTreeNodeSet & | selectedNodes () const |
Returns the set of selected tree nodes. | |
void | select (const WTreeNodeSet &nodes) |
Sets a selection of tree nodes. | |
void | select (WTreeNode *node, bool selected=true) |
Selects or unselect the given node. | |
bool | isSelected (WTreeNode *node) const |
Returns if the given node is currently selected. | |
void | clearSelection () |
Clears the current selection. | |
Signal & | itemSelectionChanged () |
Signal that is emitted when the selection changes. |
A widget that represents a navigatable tree.
WTree provides a tree widget, and coordinates selection functionality.
Unlike the MVC-based WTreeView, the tree renders a widget hierarchy, rather than a hierarhical standard model. This provides extra flexibility (as any widget can be used as contents), at the cost of server-side, client-side and bandwidth resources (especially for large tree tables).
The tree is implemented as a hierarchy of WTreeNode widgets.
Selection is rendered by calling WTreeNode::renderSelected(bool). Only tree nodes that are selectable may participate in the selection.
Usage example:
Wt::WIconPair *folderIcon = new Wt::WIconPair("icons/yellow-folder-closed.png", "icons/yellow-folder-open.png", false); Wt::WTree *tree = new Wt::WTree(); tree->setSelectionMode(Wt::SingleSelection); Wt::WTreeNode *root = new Wt::WTreeNode("Tree root", folderIcon); root->setStyleClass("example-tree"); tree->setTreeRoot(root); root->label()->setTextFormat(Wt::PlainText); root->setImagePack("resources/"); root->setLoadPolicy(Wt::WTreeNode::NextLevelLoading); root->addChildNode(new Wt::WTreeNode("one")); root->addChildNode(new Wt::WTreeNode("two")); Wt::WTreeNode *three = new Wt::WTreeNode("three"); three->addChildNode(new WTreeNode("three: one")); three->addChildNode(new WTreeNode("three: two")); root->addChildNode(three); root->expand();
The tree is styled by the current CSS theme. The look can be overridden using the Wt-tree
CSS class. The style selectors that affect the rendering of the decoration of the nodes are indicated in the documentation for WTreeNode. In addition, the following selector may be used to style the header:
.Wt-tree .Wt-selected : selected item
A screenshot of the tree:
![]()
An example WTree (default) | ![]()
An example WTree (polished) |
void Wt::WTree::setSelectionMode | ( | SelectionMode | mode | ) |
Sets the selection mode.
The default selection mode is Wt::NoSelection.
void Wt::WTree::setTreeRoot | ( | WTreeNode * | root | ) |
Sets the tree root node.
The initial value is 0
.
WTreeNode* Wt::WTree::treeRoot | ( | ) | const |
Returns the root node.