#include <Wt/WTree>
Public Types | |
typedef std::set< WTreeNode * > | WTreeNodeSet |
Typedef for a set of WTreeNode's. | |
Public Member Functions | |
WTree (WContainerWidget *parent=0) | |
Create a new tree. | |
void | setTreeRoot (WTreeNode *root) |
Set the tree root node. | |
WTreeNode * | treeRoot () const |
Get the root node. | |
void | setSelectionMode (SelectionMode mode) |
Set the selection mode. | |
SelectionMode | selectionMode () const |
Get the selection mode. | |
const WTreeNodeSet & | selectedNodes () const |
Get the set of selected tree nodes. | |
void | select (const WTreeNodeSet &nodes) |
Set a selection of tree nodes. | |
void | select (WTreeNode *node, bool selected=true) |
Select or unselect the given node. | |
bool | isSelected (WTreeNode *node) const |
Return if the given node is currently selected. | |
void | clearSelection () |
Clear the current selection. | |
Signal & | itemSelectionChanged () |
Signal that is emitted when the selection changes. |
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();
void Wt::WTree::setTreeRoot | ( | WTreeNode * | root | ) |
WTreeNode* Wt::WTree::treeRoot | ( | ) | const [inline] |
void Wt::WTree::setSelectionMode | ( | SelectionMode | mode | ) |
Set the selection mode.
The default selection mode is Wt::NoSelection.