本文整理汇总了C++中DomElement::setProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ DomElement::setProperty方法的具体用法?C++ DomElement::setProperty怎么用?C++ DomElement::setProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DomElement
的用法示例。
在下文中一共展示了DomElement::setProperty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateDom
void WText::updateDom(DomElement& element, bool all)
{
if (flags_.test(BIT_TEXT_CHANGED) || all) {
std::string text = formattedText();
if (flags_.test(BIT_TEXT_CHANGED) || !text.empty())
element.setProperty(Wt::PropertyInnerHTML, text);
flags_.reset(BIT_TEXT_CHANGED);
}
if (flags_.test(BIT_WORD_WRAP_CHANGED) || all) {
if (!all || !flags_.test(BIT_WORD_WRAP))
element.setProperty(Wt::PropertyStyleWhiteSpace,
flags_.test(BIT_WORD_WRAP) ? "normal" : "nowrap");
flags_.reset(BIT_WORD_WRAP_CHANGED);
}
if (flags_.test(BIT_PADDINGS_CHANGED)
|| (all && padding_ &&
!(padding_[0].isAuto() && padding_[1].isAuto()))) {
element.setProperty(PropertyStylePaddingRight, padding_[0].cssText());
element.setProperty(PropertyStylePaddingLeft, padding_[1].cssText());
flags_.reset(BIT_PADDINGS_CHANGED);
}
WInteractWidget::updateDom(element, all);
}
示例2: updateDom
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();
}
示例3: updateContents
void WWidgetVectorPainter::updateContents(std::vector<DomElement *>& result,
WPaintDevice *device)
{
WVectorImage *vectorDevice = dynamic_cast<WVectorImage *>(device);
if (widget_->repaintFlags_ & PaintUpdate) {
DomElement *painter = DomElement::updateGiven
(WT_CLASS ".getElement('p" + widget_->id()+ "').firstChild",
DomElement_DIV);
painter->setProperty(PropertyAddedInnerHTML, vectorDevice->rendered());
WApplication *app = WApplication::instance();
if (app->environment().agentIsOpera())
painter->callMethod("forceRedraw();");
result.push_back(painter);
} else {
DomElement *canvas = DomElement::getForUpdate
('p' + widget_->id(), DomElement_DIV);
/*
* In fact, we should use another property, since we could be using
* document.importNode() instead of myImportNode() since the xml does not
* need to be interpreted as HTML...
*/
canvas->setProperty(PropertyInnerHTML, vectorDevice->rendered());
result.push_back(canvas);
}
widget_->sizeChanged_ = false;
delete device;
}
示例4: createContents
void WWidgetCanvasPainter::createContents(DomElement *result,
WPaintDevice *device)
{
std::string wstr = boost::lexical_cast<std::string>(widget_->renderWidth_);
std::string hstr = boost::lexical_cast<std::string>(widget_->renderHeight_);
result->setProperty(PropertyStylePosition, "relative");
result->setProperty(PropertyStyleOverflowX, "hidden");
DomElement *canvas = DomElement::createNew(DomElement_CANVAS);
canvas->setId('c' + widget_->id());
canvas->setProperty(PropertyStyleDisplay, "block");
canvas->setAttribute("width", wstr);
canvas->setAttribute("height", hstr);
result->addChild(canvas);
WCanvasPaintDevice *canvasDevice = dynamic_cast<WCanvasPaintDevice *>(device);
DomElement *text = 0;
if (canvasDevice->textMethod() == WCanvasPaintDevice::DomText) {
text = DomElement::createNew(DomElement_DIV);
text->setId('t' + widget_->id());
text->setProperty(PropertyStylePosition, "absolute");
text->setProperty(PropertyStyleZIndex, "1");
text->setProperty(PropertyStyleTop, "0px");
text->setProperty(PropertyStyleLeft, "0px");
}
canvasDevice->render("c" + widget_->id(), text ? text : result);
if (text)
result->addChild(text);
delete device;
}
示例5: updateDom
void WFormWidget::updateDom(DomElement& element, bool all)
{
const WEnvironment& env = WApplication::instance()->environment();
bool onChangeHandledElsewhere = dynamic_cast<WAbstractToggleButton *>(this);
if (!onChangeHandledElsewhere) {
EventSignal<> *s = voidEventSignal(CHANGE_SIGNAL, false);
if (s)
updateSignalConnection(element, *s, "change", all);
}
if (flags_.test(BIT_ENABLED_CHANGED) || all) {
if (!all || !isEnabled())
element.setProperty(Wt::PropertyDisabled,
isEnabled() ? "false" : "true");
if (!all && isEnabled() && env.agentIsIE()) {
/*
* FIXME: implement a workaround for IE, reenabling a checkbox makes
* the input box loose interactivity.
*/
}
flags_.reset(BIT_ENABLED_CHANGED);
}
if (flags_.test(BIT_READONLY_CHANGED) || all) {
if (!all || isReadOnly())
element.setProperty(Wt::PropertyReadOnly,
isReadOnly() ? "true" : "false");
flags_.reset(BIT_READONLY_CHANGED);
}
if (flags_.test(BIT_TABINDEX_CHANGED) || all) {
if (!all || tabIndex_)
element.setProperty(PropertyTabIndex,
boost::lexical_cast<std::string>(tabIndex_));
flags_.reset(BIT_TABINDEX_CHANGED);
}
if (isEnabled()) {
if (all && flags_.test(BIT_GOT_FOCUS))
flags_.set(BIT_INITIAL_FOCUS);
if (flags_.test(BIT_GOT_FOCUS)
|| (all && flags_.test(BIT_INITIAL_FOCUS))) {
element.callJavaScript("setTimeout(function() {"
"""var f = " + jsRef() + ";"
"""if (f) try { f.focus(); } catch (e) { } }, "
+ (env.agentIsIElt(9) ? "500" : "10") + ");");
flags_.reset(BIT_GOT_FOCUS);
}
}
WInteractWidget::updateDom(element, all);
}
示例6: createContents
void WWidgetCanvasPainter::createContents(DomElement *result,
WPaintDevice *device)
{
std::string wstr = boost::lexical_cast<std::string>(widget_->renderWidth_);
std::string hstr = boost::lexical_cast<std::string>(widget_->renderHeight_);
result->setProperty(PropertyStylePosition, "relative");
result->setProperty(PropertyStyleOverflowX, "hidden");
result->setProperty(PropertyStyleOverflowY, "hidden");
DomElement *canvas = DomElement::createNew(DomElement_CANVAS);
canvas->setId('c' + widget_->id());
canvas->setProperty(PropertyStyleDisplay, "block");
canvas->setAttribute("width", wstr);
canvas->setAttribute("height", hstr);
result->addChild(canvas);
widget_->sizeChanged_ = false;
WCanvasPaintDevice *canvasDevice = dynamic_cast<WCanvasPaintDevice *>(device);
DomElement *text = 0;
if (canvasDevice->textMethod() == WCanvasPaintDevice::DomText) {
text = DomElement::createNew(DomElement_DIV);
text->setId('t' + widget_->id());
text->setProperty(PropertyStylePosition, "absolute");
text->setProperty(PropertyStyleZIndex, "1");
text->setProperty(PropertyStyleTop, "0px");
text->setProperty(PropertyStyleLeft, "0px");
}
DomElement *el = text ? text : result;
bool hasJsObjects = widget_->jsObjects_.size() > 0;
if (hasJsObjects) {
WStringStream ss;
WApplication *app = WApplication::instance();
ss << "new " WT_CLASS ".WPaintedWidget("
<< app->javaScriptClass() << "," << widget_->jsRef() << ");";
widget_->jsObjects_.updateJs(ss);
el->callJavaScript(ss.str());
}
canvasDevice->render('c' + widget_->id(), el);
if (hasJsObjects) {
WStringStream ss;
ss << widget_->objJsRef() << ".repaint=function(){";
ss << canvasDevice->recordedJs_.str();
ss << "};";
el->callJavaScript(ss.str());
}
if (text)
result->addChild(text);
delete device;
}
示例7: updateDom
void WTableRow::updateDom(DomElement& element, bool all)
{
if (height_)
element.setProperty(PropertyStyleHeight, height_->cssText());
if (!all || !styleClass_.empty())
element.setProperty(PropertyClass, styleClass_.toUTF8());
if ((all && hidden_) || (!all && hiddenChanged_)) {
element.setProperty(PropertyStyleDisplay, hidden_ ? "none" : "");
hiddenChanged_ = false;
}
}
示例8: updateDom
void WPushButton::updateDom(DomElement& element, bool all)
{
if (all && element.type() == DomElement_BUTTON)
element.setAttribute("type", "button");
bool updateInnerHtml = !icon_.isNull() && flags_.test(BIT_TEXT_CHANGED);
if (updateInnerHtml || flags_.test(BIT_ICON_CHANGED)
|| (all && !icon_.isNull())) {
DomElement *image = DomElement::createNew(DomElement_IMG);
image->setProperty(PropertySrc, icon_.resolveUrl(WApplication::instance()));
image->setId("im" + formName());
element.insertChildAt(image, 0);
flags_.set(BIT_ICON_RENDERED);
flags_.reset(BIT_ICON_CHANGED);
}
if (flags_.test(BIT_TEXT_CHANGED) || all) {
element.setProperty(Wt::PropertyInnerHTML, text_.formattedText());
flags_.reset(BIT_TEXT_CHANGED);
}
// bool needsUrlResolution = false;
if (flags_.test(BIT_LINK_CHANGED) || all) {
if (element.type() == DomElement_A) {
/* needsUrlResolution = */ WAnchor::renderHRef(this, linkState_, element);
WAnchor::renderHTarget(linkState_, element, all);
} else
renderHRef(element);
flags_.reset(BIT_LINK_CHANGED);
}
if (isCheckable()) {
if (flags_.test(BIT_CHECKED_CHANGED) || all) {
if (!all || flags_.test(BIT_IS_CHECKED)) {
toggleStyleClass("active", flags_.test(BIT_IS_CHECKED), true);
}
flags_.reset(BIT_CHECKED_CHANGED);
}
}
if (!all)
WApplication::instance()->theme()->apply(this, element,
MainElementThemeRole);
WFormWidget::updateDom(element, all);
}
示例9: createComponent
void WWidgetItemImpl::createComponent(DomElement *parentContainer)
{
DomElement *e = item_->widget()->createSDomElement(WApplication::instance());
e->setProperty(PropertyStyle, e->getProperty(PropertyStyle)
+ "position:absolute;left:-10000px;top:-10000px;"
"visibility:hidden;");
Container *c = dynamic_cast<Container *>(item_->widget());
if (!c) {
std::stringstream js;
js << "var " << var_ << "=new Ext.BoxComponent({id:'"
<< id_ << "',applyTo:'" << item_->widget()->id() << "'";
addConfig(js);
Container::setSizeConfig(js, item_->widget());
js << "});{var s="
<< item_->widget()->jsRef() << ";s.style.position='';"
"s.style.left='';"
"s.style.top='';"
"s.style.visibility='';}";
e->callJavaScript(js.str());
}
parentContainer->addChild(e);
}
示例10: updateDom
void WSelectionBox::updateDom(DomElement& element, bool all)
{
if (configChanged_ || all) {
element.setAttribute("size", std::to_string(verticalSize_));
if (!all || (selectionMode_ == SelectionMode::Extended)) {
element.setProperty(Property::Multiple,
selectionMode_ == SelectionMode::Extended
? "true" : "false");
if (!all)
selectionChanged_ = true;
}
configChanged_ = false;
}
if (selectionMode_ == SelectionMode::Extended) {
if (selectionChanged_ && !all) {
for (int i = 0; i < count(); ++i) {
element.callMethod("options[" + std::to_string(i) + "].selected="
+ (isSelected(i) ? "true" : "false"));
}
}
selectionChanged_ = false;
}
WComboBox::updateDom(element, all);
}
示例11: updateDom
void WSlider::updateDom(DomElement& element, bool all)
{
if (paintedSlider_)
paintedSlider_->doUpdateDom(element, all);
else {
if (all || changed_) {
element.setAttribute("type", "range");
element.setProperty(Wt::PropertyValue,
boost::lexical_cast<std::string>(value_));
element.setAttribute("min",
boost::lexical_cast<std::string>(minimum_));
element.setAttribute("max",
boost::lexical_cast<std::string>(maximum_));
if (!changedConnected_
&& (valueChanged_.isConnected() || sliderMoved_.isConnected())) {
changedConnected_ = true;
changed().connect(this, &WSlider::onChange);
}
changed_ = false;
}
}
WFormWidget::updateDom(element, all);
}
示例12:
DomElement *StdWidgetItemImpl::createDomElement(bool fitWidth, bool fitHeight,
WApplication *app)
{
WWidget *w = item_->widget();
w->setInline(false);
DomElement *d = w->createSDomElement(app);
DomElement *result = d;
if (app->environment().agentIsIElt(9) &&
(d->type() == DomElement_TEXTAREA || d->type() == DomElement_SELECT
|| d->type() == DomElement_INPUT || d->type() == DomElement_BUTTON)) {
d->removeProperty(PropertyStyleDisplay);
}
// FIXME IE9 does border-box perhaps ?
if (!app->environment().agentIsIE() &&
w->javaScriptMember(WWidget::WT_RESIZE_JS).empty() &&
d->type() != DomElement_TABLE /* buggy in Chrome, see #1856 */ &&
app->theme()->canBorderBoxElement(*d))
d->setProperty(PropertyStyleBoxSizing, "border-box");
return result;
}
示例13: updateDom
void WLineEdit::updateDom(DomElement& element, bool all)
{
if (all || flags_.test(BIT_CONTENT_CHANGED)) {
element.setProperty(Wt::PropertyValue, content_.toUTF8());
flags_.reset(BIT_CONTENT_CHANGED);
}
if (all || flags_.test(BIT_ECHO_MODE_CHANGED)) {
element.setAttribute("type", echoMode_ == Normal ? "text" : "password");
flags_.reset(BIT_ECHO_MODE_CHANGED);
}
if (all || flags_.test(BIT_TEXT_SIZE_CHANGED)) {
element.setAttribute("size",
boost::lexical_cast<std::string>(textSize_));
flags_.reset(BIT_TEXT_SIZE_CHANGED);
}
if (all || flags_.test(BIT_MAX_LENGTH_CHANGED)) {
if (!all || maxLength_ > 0)
element.setAttribute("maxLength",
boost::lexical_cast<std::string>(maxLength_));
flags_.reset(BIT_MAX_LENGTH_CHANGED);
}
WFormWidget::updateDom(element, all);
}
示例14: updateDomElement
void WFont::updateDomElement(DomElement& element, bool fontall, bool all)
{
if (familyChanged_ || fontall || all) {
std::string family = cssFamily(fontall);
if (!family.empty())
element.setProperty(PropertyStyleFontFamily, family);
familyChanged_ = false;
}
if (styleChanged_ || fontall || all) {
std::string style = cssStyle(fontall);
if (!style.empty())
element.setProperty(PropertyStyleFontStyle, style);
styleChanged_ = false;
}
if (variantChanged_ || fontall || all) {
std::string variant = cssVariant(fontall);
if (!variant.empty())
element.setProperty(PropertyStyleFontVariant, variant);
variantChanged_ = false;
}
if (weightChanged_ || fontall || all) {
std::string weight = cssWeight(fontall);
if (!weight.empty())
element.setProperty(PropertyStyleFontWeight, weight);
weightChanged_ = false;
}
if (sizeChanged_ || fontall || all) {
std::string size = cssSize(fontall);
if (!size.empty())
element.setProperty(PropertyStyleFontSize, size);
sizeChanged_ = false;
}
}
示例15: doUpdateDom
void PaintedSlider::doUpdateDom(DomElement& element, bool all)
{
if (all) {
WApplication *app = WApplication::instance();
element.addChild(createSDomElement(app));
element.addChild(((WWebWidget *)handle_)->createSDomElement(app));
DomElement *west = DomElement::createNew(DomElement_DIV);
west->setProperty(PropertyClass, "Wt-w");
element.addChild(west);
DomElement *east = DomElement::createNew(DomElement_DIV);
east->setProperty(PropertyClass, "Wt-e");
element.addChild(east);
}
}