void WEnvironment::enableAjax(const WebRequest& request) { doesAjax_ = true; session_->controller()->newAjaxSession(); doesCookies_ = !request.headerValue("Cookie").empty(); if (!request.getParameter("htmlHistory")) hashInternalPaths_ = true; const std::string *scaleE = request.getParameter("scale"); try { dpiScale_ = scaleE ? boost::lexical_cast<double>(*scaleE) : 1; } catch (boost::bad_lexical_cast &e) { dpiScale_ = 1; } const std::string *hashE = request.getParameter("_"); // the internal path, when present as an anchor (#), is only // conveyed in the second request if (hashE) setInternalPath(*hashE); const std::string *deployPathE = request.getParameter("deployPath"); if (deployPathE) { publicDeploymentPath_ = *deployPathE; std::size_t s = publicDeploymentPath_.find('/'); if (s != 0) publicDeploymentPath_.clear(); // looks invalid } }
void WEnvironment::enableAjax(const WebRequest& request) { doesAjax_ = true; session_->controller()->newAjaxSession(); doesCookies_ = request.headerValue("Cookie") != 0; if (!request.getParameter("htmlHistory")) hashInternalPaths_ = true; const std::string *scaleE = request.getParameter("scale"); try { dpiScale_ = scaleE ? boost::lexical_cast<double>(*scaleE) : 1; } catch (boost::bad_lexical_cast &e) { dpiScale_ = 1; } const std::string *webGLE = request.getParameter("webGL"); webGLsupported_ = webGLE ? (*webGLE == "true") : false; const std::string *tzE = request.getParameter("tz"); try { timeZoneOffset_ = tzE ? boost::lexical_cast<int>(*tzE) : 0; } catch (boost::bad_lexical_cast &e) { } const std::string *hashE = request.getParameter("_"); // the internal path, when present as an anchor (#), is only // conveyed in the second request if (hashE) setInternalPath(*hashE); const std::string *deployPathE = request.getParameter("deployPath"); if (deployPathE) { publicDeploymentPath_ = *deployPathE; std::size_t s = publicDeploymentPath_.find('/'); if (s != 0) publicDeploymentPath_.clear(); // looks invalid } const std::string *scrWE = request.getParameter("scrW"); if (scrWE) { try { screenWidth_ = boost::lexical_cast<int>(*scrWE); } catch (boost::bad_lexical_cast &) { } } const std::string *scrHE = request.getParameter("scrH"); if (scrHE) { try { screenHeight_ = boost::lexical_cast<int>(*scrHE); } catch (boost::bad_lexical_cast &) { } } }
void JavaScriptEvent::get(const WebRequest& request, const std::string& se) { std::string s = se; int seLength = se.length(); type = getStringParameter(request, concat(s, seLength, "type")); boost::to_lower(type); clientX = parseIntParameter(request, concat(s, seLength, "clientX"), 0); clientY = parseIntParameter(request, concat(s, seLength, "clientY"), 0); documentX = parseIntParameter(request, concat(s, seLength, "documentX"), 0); documentY = parseIntParameter(request, concat(s, seLength, "documentY"), 0); screenX = parseIntParameter(request, concat(s, seLength, "screenX"), 0); screenY = parseIntParameter(request, concat(s, seLength, "screenY"), 0); widgetX = parseIntParameter(request, concat(s, seLength, "widgetX"), 0); widgetY = parseIntParameter(request, concat(s, seLength, "widgetY"), 0); dragDX = parseIntParameter(request, concat(s, seLength, "dragdX"), 0); dragDY = parseIntParameter(request, concat(s, seLength, "dragdY"), 0); wheelDelta = parseIntParameter(request, concat(s, seLength, "wheel"), 0); /* if (widgetX == 0 && widgetY == 0) { const int signalLength = 7 + se.length(); const Http::ParameterMap& entries = request.getParameterMap(); for (Http::ParameterMap::const_iterator i = entries.begin(); i != entries.end(); ++i) { std::string name = i->first; if (name.substr(0, signalLength) == concat(s, seLength, "signal=") { std::string e = name.substr(name.length() - 2); if (e == ".x") { try { widgetX = boost::lexical_cast<int>(i->second[0]); } catch (const boost::bad_lexical_cast& ee) { } } else if (e == ".y") { try { widgetY = boost::lexical_cast<int>(i->second[0]); } catch (const boost::bad_lexical_cast& ee) { } } } } } */ modifiers = 0; if (request.getParameter(concat(s, seLength, "altKey")) != 0) modifiers |= AltModifier; if (request.getParameter(concat(s, seLength, "ctrlKey")) != 0) modifiers |= ControlModifier; if (request.getParameter(concat(s, seLength, "shiftKey")) != 0) modifiers |= ShiftModifier; if (request.getParameter(concat(s, seLength, "metaKey")) != 0) modifiers |= MetaModifier; keyCode = parseIntParameter(request, concat(s, seLength, "keyCode"), 0); charCode = parseIntParameter(request, concat(s, seLength, "charCode"), 0); button = parseIntParameter(request, concat(s, seLength, "button"), 0); scrollX = parseIntParameter(request, concat(s, seLength, "scrollX"), 0); scrollY = parseIntParameter(request, concat(s, seLength, "scrollY"), 0); viewportWidth = parseIntParameter(request, concat(s, seLength, "width"), 0); viewportHeight = parseIntParameter(request, concat(s, seLength, "height"), 0); response = getStringParameter(request, concat(s, seLength, "response")); int uean = parseIntParameter(request, concat(s, seLength, "an"), 0); userEventArgs.clear(); for (int i = 0; i < uean; ++i) { userEventArgs.push_back (getStringParameter(request, se + "a" + boost::lexical_cast<std::string>(i))); } decodeTouches(getStringParameter(request, concat(s, seLength, "touches")), touches); decodeTouches(getStringParameter(request, concat(s, seLength, "ttouches")), targetTouches); decodeTouches(getStringParameter(request, concat(s, seLength, "ctouches")), changedTouches); }
void WEnvironment::enableAjax(const WebRequest& request) { doesAjax_ = true; session_->controller()->newAjaxSession(); doesCookies_ = request.headerValue("Cookie") != nullptr; if (!request.getParameter("htmlHistory")) internalPathUsingFragments_ = true; const std::string *scaleE = request.getParameter("scale"); try { dpiScale_ = scaleE ? Utils::stod(*scaleE) : 1; } catch (std::exception& e) { dpiScale_ = 1; } const std::string *webGLE = request.getParameter("webGL"); webGLsupported_ = webGLE ? (*webGLE == "true") : false; const std::string *tzE = request.getParameter("tz"); try { timeZoneOffset_ = std::chrono::minutes{tzE ? Utils::stoi(*tzE) : 0}; } catch (std::exception& e) { } const std::string *tzSE = request.getParameter("tzS"); timeZoneName_ = tzSE ? *tzSE : std::string(""); const std::string *hashE = request.getParameter("_"); // the internal path, when present as an anchor (#), is only // conveyed in the second request if (hashE) setInternalPath(*hashE); const std::string *deployPathE = request.getParameter("deployPath"); if (deployPathE) { publicDeploymentPath_ = *deployPathE; std::size_t s = publicDeploymentPath_.find('/'); if (s != 0) publicDeploymentPath_.clear(); // looks invalid } const std::string *scrWE = request.getParameter("scrW"); if (scrWE) { try { screenWidth_ = Utils::stoi(*scrWE); } catch (std::exception &e) { } } const std::string *scrHE = request.getParameter("scrH"); if (scrHE) { try { screenHeight_ = Utils::stoi(*scrHE); } catch (std::exception &e) { } } }