void WWebWidget::updateSignalConnection(DomElement& element, const char *signal, const std::string eventName, const char *condition, bool all, const char *argName) { WSignalInstance_ *s = getSignal(signal); if (all || s->connectivityChanged() || s->staticCodeChanged()) { if (isConnected(s)) element.setEventSignal(eventName, *s, argName, condition); else element.removeEventSignal(eventName); s->connectivityOk(); } }
void WAbstractToggleButton::updateDom(DomElement& element, bool all) { if (checkedChanged_ || all) { element.setProperty(Wt::PropertyChecked, checked_ ? "true" : "false"); checkedChanged_ = false; } const WSignalInstance_ *changeS = getSignal(SIGNAL(changed())); const WSignalInstance_ *checkedS = getSignal(SIGNAL(checked())); const WSignalInstance_ *unCheckedS = getSignal(SIGNAL(unChecked())); bool needUpdateChangeSignal = (changeS->connectivityChanged() || checkedS->connectivityChanged() || unCheckedS->connectivityChanged() || changeS->staticCodeChanged() || checkedS->staticCodeChanged() || unCheckedS->staticCodeChanged()); WFormWidget::updateDom(element, all); if (needUpdateChangeSignal || all) { element.removeEventSignal("change"); DomElement *e = DomElement::getForUpdate(this, DomElement::INPUT); if (isConnected(changeS)) element.addEventSignal("change", *changeS, 0, 0); if (isConnected(checkedS)) element.addEventSignal("change", *checkedS, 0, (e->createReference() + ".checked == true").c_str()); if (isConnected(unCheckedS)) element.addEventSignal("change", *unCheckedS, 0, (e->createReference() + ".checked == false").c_str()); delete e; } }