本文整理汇总了C++中WContainerWidget::jsRef方法的典型用法代码示例。如果您正苦于以下问题:C++ WContainerWidget::jsRef方法的具体用法?C++ WContainerWidget::jsRef怎么用?C++ WContainerWidget::jsRef使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WContainerWidget
的用法示例。
在下文中一共展示了WContainerWidget::jsRef方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateState
void PaintedSlider::updateState()
{
bool rtl = WApplication::instance()->layoutDirection() == RightToLeft;
std::string resourcesURL = WApplication::resourcesUrl();
Orientation o = slider_->orientation();
handle_->setStyleClass("handle");
if (o == Horizontal) {
handle_->resize(HANDLE_WIDTH, h());
handle_->setOffsets(0, Top);
} else {
handle_->resize(w(), HANDLE_WIDTH);
handle_->setOffsets(0, Left);
}
double l = o == Horizontal ? w() : h();
double pixelsPerUnit = (l - HANDLE_WIDTH) / range();
std::string dir;
if (o == Horizontal)
dir = rtl ? "right" : "left";
else
dir = "top";
std::string u = (o == Horizontal ? "x" : "y");
std::string U = (o == Horizontal ? "X" : "Y");
std::string maxS = boost::lexical_cast<std::string>(l - HANDLE_WIDTH);
std::string ppU = boost::lexical_cast<std::string>(pixelsPerUnit);
std::string minimumS = boost::lexical_cast<std::string>(slider_->minimum());
std::string maximumS = boost::lexical_cast<std::string>(slider_->maximum());
std::string width = boost::lexical_cast<std::string>(w());
std::string horizontal = boost::lexical_cast<std::string>(o == Horizontal);
/*
* Note: cancelling the mouseDown event prevents the selection behaviour
*/
std::string mouseDownJS =
"""obj.setAttribute('down', " WT_CLASS ".widgetCoordinates(obj, event)."
+ u + "); "
WT_CLASS ".cancelEvent(event);";
// = 'u' position relative to background, corrected for slider
std::string computeD =
"" "var objh = " + handle_->jsRef() + ","
"" "objb = " + jsRef() + ","
"" "page_u = WT.pageCoordinates(event)." + u + ","
"" "widget_page_u = WT.widgetPageCoordinates(objb)." + u + ","
"" "pos = page_u - widget_page_u,"
"" "rtl = " + boost::lexical_cast<std::string>(rtl) + ","
"" "horizontal = " + horizontal + ";"
"" "if (rtl && horizontal)"
"" " pos = " + width + " - pos;"
"" "var d = pos - down;";
std::string mouseMovedJS =
"""var down = obj.getAttribute('down');"
"""var WT = " WT_CLASS ";"
"""if (down != null && down != '') {"
+ computeD +
"" "d = Math.max(0, Math.min(d, " + maxS + "));"
"" "var v = Math.round(d/" + ppU + ");"
"" "var intd = v*" + ppU + ";"
"" "if (Math.abs(WT.pxself(objh, '" + dir + "') - intd) > 1) {"
"" "objh.style." + dir + " = intd + 'px';" +
slider_->sliderMoved().createCall(o == Horizontal ? "v + " + minimumS
: maximumS + " - v") +
"" "}"
"""}";
std::string mouseUpJS =
"""var down = obj.getAttribute('down');"
"""var WT = " WT_CLASS ";"
"""if (down != null && down != '') {"
+ computeD +
"""d += " + boost::lexical_cast<std::string>(HANDLE_WIDTH / 2) + ";" +
sliderReleased_.createCall("d") +
"" "obj.removeAttribute('down');"
"""}";
bool enabled = !slider_->isDisabled();
mouseDownJS_.setJavaScript(std::string("function(obj, event) {")
+ (enabled ? mouseDownJS : "")
+ "}");
mouseMovedJS_.setJavaScript(std::string("function(obj, event) {")
+ (enabled ? mouseMovedJS : "")
+ "}");
mouseUpJS_.setJavaScript(std::string("function(obj, event) {")
+ (enabled ? mouseUpJS : "")
+ "}");
update();
updateSliderPosition();
}