本文整理汇总了C++中WWidget::id方法的典型用法代码示例。如果您正苦于以下问题:C++ WWidget::id方法的具体用法?C++ WWidget::id怎么用?C++ WWidget::id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WWidget
的用法示例。
在下文中一共展示了WWidget::id方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: resolveString
void WTemplate::resolveString(const std::string& varName,
const std::vector<WString>& args,
std::ostream& result)
{
/*
* FIXME: have an extra result parameter which indicates whether the
* widget is view-only. Better to do that in resolveValue() and
* provide a utility method that converts a widget to XHTML ?
*/
StringMap::const_iterator i = strings_.find(varName);
if (i != strings_.end())
result << i->second;
else {
WWidget *w = resolveWidget(varName);
if (w) {
w->setParentWidget(this);
if (previouslyRendered_
&& previouslyRendered_->find(w) != previouslyRendered_->end()) {
result << "<span id=\"" << w->id() << "\"> </span>";
} else {
applyArguments(w, args);
w->htmlText(result);
}
if (newlyRendered_)
newlyRendered_->push_back(w);
} else
handleUnresolvedVariable(varName, args, result);
}
}
示例2: handleRequest
void PrintResource::handleRequest(const Wt::Http::Request& request,
Wt::Http::Response& response)
{
//log("info")<<"PrintResource::handleRequest() "<<__LINE__;
response.addHeader("Cache-Control", "max-age=315360000");
response.setMimeType("text/html; charset=utf-8");
std::ostringstream htmlStream;// = std::cout;
htmlStream << "";
//log("info")<<m_content->find("order_form");
if(WContainerWidget *form = dynamic_cast<WContainerWidget*>(m_content->find("order_form")))
{
for(int i=0;i < form->count()-1;i++)
{
WWidget *item = form->widget(i);
if(item->id() == "comments")
{
item->decorationStyle().setBorder(WBorder());
}else
item->setHidden(true);
}
}
response.out() <<"<link href=\"http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" type=\"text/css\" rel=\"stylesheet\">"<<std::endl;
response.out() <<"<link href=\"http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css\" type=\"text/css\" rel=\"stylesheet\">"<<std::endl;
response.out() << "<script src=\"/css/ie_console.js\"></script>";
response.out() << ""
"<script type=\"text/javascript\">\n"
" window.setTimeout(function () {\n"
" window.print();\n"
" }, 1000);\n"
"</script>\n"<<std::endl;
m_content->htmlText(response.out());
//log("info")<<"PrintResource::handleRequest() "<<__LINE__;
/*
response.out() << ""
"<script type=\"text/javascript\">\n"
" (function() { \n"
" window.setTimeout(function () {\n"
" window.print();\n"
" }, 1500);\n"
" }); \n"
"</script>\n"<<std::endl;
*/
//m_content->htmlText(htmlStream);
//std::string htmlStr= "";
//htmlStr << htmlStream;
//std::cout <<htmlStream<<std::endl;
//renderer.render(WString().fromUTF8(htmlStream.str()));
response.out() << WString().fromUTF8(htmlStream.str()) << std::endl;
}
示例3: _id
bool WTemplate::_id(const std::vector<WString>& args,
std::ostream& result)
{
if (args.size() == 1) {
WWidget *w = this->resolveWidget(args[0].toUTF8());
if (w) {
result << w->id();
return true;
} else
return false;
} else {
LOG_ERROR("Functions::tr(): expects exactly one argument");
return false;
}
}
示例4: updateDom
void WTemplate::updateDom(DomElement& element, bool all)
{
if (changed_ || all) {
std::set<WWidget *> previouslyRendered;
std::vector<WWidget *> newlyRendered;
for (WidgetMap::const_iterator i = widgets_.begin(); i != widgets_.end();
++i) {
WWidget *w = i->second;
if (w->isRendered() && w->webWidget()->domCanBeSaved()) {
previouslyRendered.insert(w);
}
}
bool saveWidgets = element.mode() == DomElement::ModeUpdate;
previouslyRendered_ = saveWidgets ? &previouslyRendered : 0;
newlyRendered_ = &newlyRendered;
std::stringstream html;
renderTemplate(html);
previouslyRendered_ = 0;
newlyRendered_ = 0;
for (unsigned i = 0; i < newlyRendered.size(); ++i) {
WWidget *w = newlyRendered[i];
if (previouslyRendered.find(w) != previouslyRendered.end()) {
if (saveWidgets)
element.saveChild(w->id());
previouslyRendered.erase(w);
}
}
element.setProperty(Wt::PropertyInnerHTML, html.str());
changed_ = false;
for (std::set<WWidget *>::const_iterator i = previouslyRendered.begin();
i != previouslyRendered.end(); ++i) {
WWidget *w = *i;
w->webWidget()->setRendered(false);
}
}
WInteractWidget::updateDom(element, all);
}
示例5: updateDom
void WTemplate::updateDom(DomElement& element, bool all)
{
if (changed_ || all) {
std::set<WWidget *> previouslyRendered;
std::vector<WWidget *> newlyRendered;
for (WidgetMap::const_iterator i = widgets_.begin(); i != widgets_.end();
++i) {
WWidget *w = i->second;
if (w->isRendered() && w->webWidget()->domCanBeSaved()) {
previouslyRendered.insert(w);
}
}
bool saveWidgets = element.mode() == DomElement::ModeUpdate;
previouslyRendered_ = saveWidgets ? &previouslyRendered : 0;
newlyRendered_ = &newlyRendered;
std::stringstream html;
renderTemplate(html);
previouslyRendered_ = 0;
newlyRendered_ = 0;
for (unsigned i = 0; i < newlyRendered.size(); ++i) {
WWidget *w = newlyRendered[i];
if (previouslyRendered.find(w) != previouslyRendered.end()) {
if (saveWidgets)
element.saveChild(w->id());
previouslyRendered.erase(w);
}
}
if (encodeTemplateText_)
element.setProperty(Wt::PropertyInnerHTML, html.str());
else
element.setProperty(Wt::PropertyInnerHTML, encode(html.str()));
changed_ = false;
for (std::set<WWidget *>::const_iterator i = previouslyRendered.begin();
i != previouslyRendered.end(); ++i) {
WWidget *w = *i;
// it could be that the widget was removed/deleted in the mean time
// as a side-effect of rendering some of the widgets; thus we check
// that the widget is still a child
for (WidgetMap::const_iterator j = widgets_.begin();
j != widgets_.end(); ++j) {
if (j->second == w) {
w->webWidget()->setRendered(false);
break;
}
}
}
WApplication::instance()->session()->renderer()
.updateFormObjects(this, true);
}
WInteractWidget::updateDom(element, all);
}