Wt::WMenuItem *WidgetGallery::addToMenu(Wt::WMenu *menu, const Wt::WString& name, std::unique_ptr<TopicWidget> topic) { auto topic_ = topic.get(); auto result = Wt::cpp14::make_unique<Wt::WContainerWidget>(); auto pane = Wt::cpp14::make_unique<Wt::WContainerWidget>(); auto pane_ = pane.get(); auto vLayout = result->setLayout(Wt::cpp14::make_unique<Wt::WVBoxLayout>()); vLayout->setContentsMargins(0, 0, 0, 0); vLayout->addWidget(std::move(topic)); vLayout->addWidget(std::move(pane), 1); auto hLayout = pane_->setLayout(Wt::cpp14::make_unique<Wt::WHBoxLayout>()); auto item = Wt::cpp14::make_unique<Wt::WMenuItem>(name, std::move(result)); auto item_ = menu->addItem(std::move(item)); auto subStack = Wt::cpp14::make_unique<Wt::WStackedWidget>(); subStack->addStyleClass("contents"); /* WAnimation animation(AnimationEffect::Fade, TimingFunction::Linear, 100); subStack->setTransitionAnimation(animation, true); */ auto subMenu = Wt::cpp14::make_unique<Wt::WMenu>(subStack.get()); auto subMenu_ = subMenu.get(); subMenu_->addStyleClass("nav-pills nav-stacked submenu"); subMenu_->setWidth(200); hLayout->addWidget(std::move(subMenu)); hLayout->addWidget(std::move(subStack),1); subMenu_->setInternalPathEnabled(); subMenu_->setInternalBasePath("/" + item_->pathComponent()); topic_->populateSubMenu(subMenu_); return item_; }
void WMenuItem::updateInternalPath() { if (menu_ && menu_->internalPathEnabled() && internalPathEnabled()) { std::string internalPath = menu_->internalBasePath() + pathComponent(); WLink link(WLink::InternalPath, internalPath); WAnchor *a = anchor(); if (a) a->setLink(link); } else { WAnchor *a = anchor(); if (a && !customLink_) { if (WApplication::instance()->environment().agent() == WEnvironment::IE6) a->setLink(WLink("#")); else a->setLink(WLink()); } } }