void WTreeNode::create() { setImplementation(layout_ = new WTemplate(tr("Wt.WTreeNode.template"))); setStyleClass("Wt-tree"); layout_->setSelectable(false); layout_->bindEmpty("cols-row"); layout_->bindEmpty("trunk-class"); implementStateless(&WTreeNode::doExpand, &WTreeNode::undoDoExpand); implementStateless(&WTreeNode::doCollapse, &WTreeNode::undoDoCollapse); WApplication *app = WApplication::instance(); /* * Children */ WContainerWidget *children = new WContainerWidget(); children->setList(true); children->hide(); layout_->bindWidget("children", children); /* * Expand icon */ if (WApplication::instance()->layoutDirection() == RightToLeft) expandIcon_ = new WIconPair(app->theme()->resourcesUrl() + imagePlusRtl_, app->theme()->resourcesUrl() + imageMinRtl_); else expandIcon_ = new WIconPair(app->theme()->resourcesUrl() + imagePlus_, app->theme()->resourcesUrl() + imageMin_); expandIcon_->setStyleClass("Wt-ctrl Wt-expand"); noExpandIcon_ = new WText(); noExpandIcon_->setStyleClass("Wt-ctrl Wt-noexpand"); layout_->bindWidget("expand", noExpandIcon_); addStyleClass("Wt-trunk"); /* * Label */ layout_->bindWidget("label-area", new WContainerWidget()); if (labelText_) labelText_->setStyleClass("Wt-label"); childCountLabel_ = 0; if (labelIcon_) { labelArea()->addWidget(labelIcon_); labelIcon_->setVerticalAlignment(AlignMiddle); } if (labelText_) labelArea()->addWidget(labelText_); childrenLoaded_ = false; setLoadPolicy(LazyLoading); }