void WFormWidget::validatorChanged() { std::string validateJS = validator_->javaScriptValidate(); if (!validateJS.empty()) { setJavaScriptMember("wtValidate", validateJS); if (!validateJs_) { validateJs_ = new JSlot(); validateJs_->setJavaScript("function(o){" WT_CLASS ".validate(o)}"); keyWentUp().connect(*validateJs_); changed().connect(*validateJs_); if (domElementType() != DomElement_SELECT) clicked().connect(*validateJs_); } else if (isRendered()) validateJs_->exec(jsRef()); } else { delete validateJs_; validateJs_ = 0; } std::string inputFilter = validator_->inputFilter(); if (!inputFilter.empty()) { if (!filterInput_) { filterInput_ = new JSlot(); keyPressed().connect(*filterInput_); } Wt::Utils::replace(inputFilter, '/', "\\/"); filterInput_->setJavaScript ("function(o,e){" WT_CLASS ".filter(o,e," + jsStringLiteral(inputFilter) + ")}"); } else { delete filterInput_; filterInput_ = 0; } validate(); }
void WAbstractSpinBox::setup() { setup_ = true; bool useNative = nativeControl(); if (!useNative) { defineJavaScript(); #ifdef WT_CNOR EventSignalBase& b = mouseMoved(); EventSignalBase& c = keyWentDown(); #endif connectJavaScript(mouseMoved(), "mouseMove"); connectJavaScript(mouseWentUp(), "mouseUp"); connectJavaScript(mouseWentDown(), "mouseDown"); connectJavaScript(mouseWentOut(), "mouseOut"); connectJavaScript(keyWentDown(), "keyDown"); connectJavaScript(keyWentUp(), "keyUp"); if (!prefix_.empty() || !suffix_.empty()) setValidator(new SpinBoxValidator(this)); } }
void WAbstractSpinBox::setup(bool useNative) { if (useNative) { setValidator(createValidator()); } else { defineJavaScript(); addStyleClass("Wt-spinbox"); #ifdef WT_CNOR EventSignalBase& b = mouseMoved(); EventSignalBase& c = keyWentDown(); #endif connectJavaScript(mouseMoved(), "mouseMove"); connectJavaScript(mouseWentUp(), "mouseUp"); connectJavaScript(mouseWentDown(), "mouseDown"); connectJavaScript(mouseWentOut(), "mouseOut"); connectJavaScript(keyWentDown(), "keyDown"); connectJavaScript(keyWentUp(), "keyUp"); setValidator(new SpinBoxValidator(this)); } }