void WComboBox::updateDom(DomElement& element, bool all) { if (itemsChanged_ || all) { if (!all) element.removeAllChildren(); for (unsigned i = 0; i < items_.size(); ++i) { DomElement *item = DomElement::createNew(DomElement::OPTION); item->setAttribute("value", boost::lexical_cast<std::string>(i)); item->setProperty(Wt::PropertyInnerHTML, items_[i]); if ((int)i == currentIndex_) item->setProperty(Wt::PropertySelected, "true"); element.addChild(item); } itemsChanged_ = false; } if (selectionChanged_) { element.setProperty(Wt::PropertySelectedIndex, boost::lexical_cast<std::string>(currentIndex_)); selectionChanged_ = false; } const WSignalInstance_ *s1 = getSignal(SIGNAL(activated(int))); const WSignalInstance_ *s2 = getSignal(SIGNAL(activated(const std::string))); if (isConnected(s1) || isConnected(s2)) connect(this, SIGNAL(changed()), this, SLOT(propagateChanged())); WFormWidget::updateDom(element, all); renderOk(); }
void WComboBox::updateDom(DomElement& element, bool all) { if (itemsChanged_ || all) { if (!all) element.removeAllChildren(); for (unsigned i = 0; i < items_.size(); ++i) { DomElement *item = DomElement::createNew(DomElement::OPTION); item->setAttribute("value", boost::lexical_cast<std::string>(i)); item->setProperty(Wt::PropertyInnerHTML, toUTF8(escapeText(items_[i].value()))); if ((int)i == currentIndex_) item->setProperty(Wt::PropertySelected, "true"); element.addChild(item); } itemsChanged_ = false; } if (selectionChanged_) { element.setProperty(Wt::PropertySelectedIndex, boost::lexical_cast<std::string>(currentIndex_)); selectionChanged_ = false; } if (activated.isConnected() || sactivated.isConnected()) changed.connect(SLOT(this, WComboBox::propagateChange)); WFormWidget::updateDom(element, all); renderOk(); }
void WSelectionBox::updateDom(DomElement& element, bool all) { if (verticalSizeChanged_ || all) { element.setAttribute("size", boost::lexical_cast<std::string>(verticalSize_)); verticalSizeChanged_ = false; } WComboBox::updateDom(element, all); renderOk(); }
void WContainerWidget::getDomChanges(std::vector<DomElement *>& result) { if (renderState() == RenderUpdate) { DomElement *e = DomElement::getForUpdate(this, isInline() ? DomElement::SPAN : DomElement::DIV); updateDom(*e, false); result.push_back(e); } renderOk(); }
DomElement *WWidget::createSDomElement(WApplication *app) { if (!needsToBeRendered()) { DomElement *result = webWidget()->createStubElement(app); renderOk(); askRerender(true); return result; } else { webWidget()->setRendered(true); render(RenderFull); return webWidget()->createActualElement(app); } }
void WGroupBox::updateDom(DomElement& element, bool all) { if (titleChanged_) { DomElement *legend = DomElement::getForUpdate(formName() + "l", DomElement::LEGEND); legend->setProperty(Wt::PropertyInnerHTML, toUTF8(escapeText(title_.value()))); titleChanged_ = false; } WContainerWidget::updateDom(element, all); renderOk(); }
void WImage::updateDom(DomElement& element, bool all) { if (imageRefChanged_ || all) { element.setProperty(Wt::PropertySrc, imageRef_); imageRefChanged_ = false; } if (altTextChanged_ || all) { //element.setAttribute("alt", altText_.value()); altTextChanged_ = false; } WInteractWidget::updateDom(element, all); renderOk(); }
WWidget::~WWidget() { while (!eventSignals_.empty()) { #ifndef WT_NO_BOOST_INTRUSIVE EventSignalBase *s = &eventSignals_.front(); #else EventSignalBase *s = eventSignals_.front(); #endif eventSignals_.pop_front(); #ifndef WT_TARGET_JAVA delete s; #else s->~EventSignalBase(); #endif } renderOk(); }
void WScrollArea::updateDom(DomElement& element, bool all) { if (widgetChanged_ || all) { if (widget_) element.addChild(widget_->webWidget()->createDomElement()); widgetChanged_ = false; } if (scrollBarChanged_ || all) { if ((horizontalScrollBar_->tiesChanged_) || (verticalScrollBar_->tiesChanged_)) { horizontalScrollBar_->tiesChanged_ = true; verticalScrollBar_->tiesChanged_ = true; } horizontalScrollBar_->updateDom(element, all); verticalScrollBar_->updateDom(element, all); scrollBarChanged_ = false; } if (scrollBarPolicyChanged_ || all) { switch (scrollBarPolicy_) { case ScrollBarAsNeeded: element.setProperty(Wt::PropertyStyleOverflowX, "auto"); break; case ScrollBarAlwaysOff: element.setProperty(Wt::PropertyStyleOverflowX, "hidden"); break; case ScrollBarAlwaysOn: element.setProperty(Wt::PropertyStyleOverflowX, "scroll"); break; } //result->setProperty(Wt::PropertyStyleOverflowY, "auto"); scrollBarPolicyChanged_ = false; } WWebWidget::updateDom(element, all); renderOk(); }
DomElement * WContainerWidget::createDomElement() { DomElement *result; result = DomElement::createNew(isInline() ? DomElement::SPAN : DomElement::DIV); result->setId(this); if (addedChildren_) { delete addedChildren_; addedChildren_ = 0; } updateDom(*result, true); createDomChildren(*result); renderOk(); return result; }
void WCompositeWidget::render(WFlags<RenderFlag> flags) { impl_->render(flags); renderOk(); }
void WTable::updateDom(DomElement& element, bool all) { WInteractWidget::updateDom(element, all); renderOk(); }