summaryrefslogtreecommitdiff
path: root/indra/newview/llurldispatcherlistener.cpp
diff options
context:
space:
mode:
authorskolb <none@none>2009-12-11 08:49:37 -0800
committerskolb <none@none>2009-12-11 08:49:37 -0800
commit6542ffe2f05c47d74dfbe659041d956d609f91f3 (patch)
tree7794c0737c5a78b0339c2c34b47c9d32c44de749 /indra/newview/llurldispatcherlistener.cpp
parent431bfca2ade364dc1165e402537e5e2d3616ebfd (diff)
parenteda8634b17133df5f3104d96ad56d3626a90aad8 (diff)
Merge viewer 2-0 into media
Diffstat (limited to 'indra/newview/llurldispatcherlistener.cpp')
-rw-r--r--indra/newview/llurldispatcherlistener.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/indra/newview/llurldispatcherlistener.cpp b/indra/newview/llurldispatcherlistener.cpp
new file mode 100644
index 0000000000..fea6a769c5
--- /dev/null
+++ b/indra/newview/llurldispatcherlistener.cpp
@@ -0,0 +1,58 @@
+/**
+ * @file llurldispatcherlistener.cpp
+ * @author Nat Goodspeed
+ * @date 2009-12-10
+ * @brief Implementation for llurldispatcherlistener.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ * Copyright (c) 2009, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "llviewerprecompiledheaders.h"
+// associated header
+#include "llurldispatcherlistener.h"
+// STL headers
+// std headers
+// external library headers
+// other Linden headers
+#include "llurldispatcher.h"
+
+LLURLDispatcherListener::LLURLDispatcherListener(/* LLURLDispatcher* instance */):
+ LLEventAPI("LLURLDispatcher", "Internal URL handling") /* ,
+ mDispatcher(instance) */
+{
+ add("dispatch",
+ "At startup time or on clicks in internal web browsers,\n"
+ "teleport, open map, or run requested command.\n"
+ "[\"url\"] string url to dispatch\n"
+ "[\"trusted\"] boolean indicating trusted browser [default true]",
+ &LLURLDispatcherListener::dispatch);
+ add("dispatchRightClick", "Dispatch [\"url\"] as if from a right-click on a hot link.",
+ &LLURLDispatcherListener::dispatchRightClick);
+ add("dispatchFromTextEditor", "Dispatch [\"url\"] as if from an edit field.",
+ &LLURLDispatcherListener::dispatchFromTextEditor);
+}
+
+void LLURLDispatcherListener::dispatch(const LLSD& params) const
+{
+ // For most purposes, we expect callers to want to be trusted.
+ bool trusted_browser = true;
+ if (params.has("trusted"))
+ {
+ // But for testing, allow a caller to specify untrusted.
+ trusted_browser = params["trusted"].asBoolean();
+ }
+ LLURLDispatcher::dispatch(params["url"], NULL, trusted_browser);
+}
+
+void LLURLDispatcherListener::dispatchRightClick(const LLSD& params) const
+{
+ LLURLDispatcher::dispatchRightClick(params["url"]);
+}
+
+void LLURLDispatcherListener::dispatchFromTextEditor(const LLSD& params) const
+{
+ LLURLDispatcher::dispatchFromTextEditor(params["url"]);
+}