llurldispatcherlistener.cpp
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:3k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /**
  2.  * @file   llurldispatcherlistener.cpp
  3.  * @author Nat Goodspeed
  4.  * @date   2009-12-10
  5.  * @brief  Implementation for llurldispatcherlistener.
  6.  * 
  7.  * $LicenseInfo:firstyear=2009&license=viewergpl$
  8.  * 
  9.  * Copyright (c) 2009-2010, Linden Research, Inc.
  10.  * 
  11.  * Second Life Viewer Source Code
  12.  * The source code in this file ("Source Code") is provided by Linden Lab
  13.  * to you under the terms of the GNU General Public License, version 2.0
  14.  * ("GPL"), unless you have obtained a separate licensing agreement
  15.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  16.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  17.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  18.  * 
  19.  * There are special exceptions to the terms and conditions of the GPL as
  20.  * it is applied to this Source Code. View the full text of the exception
  21.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  22.  * online at
  23.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  24.  * 
  25.  * By copying, modifying or distributing this software, you acknowledge
  26.  * that you have read and understood your obligations described above,
  27.  * and agree to abide by those obligations.
  28.  * 
  29.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  30.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  31.  * COMPLETENESS OR PERFORMANCE.
  32.  * $/LicenseInfo$
  33.  */
  34. // Precompiled header
  35. #include "llviewerprecompiledheaders.h"
  36. // associated header
  37. #include "llurldispatcherlistener.h"
  38. // STL headers
  39. // std headers
  40. // external library headers
  41. // other Linden headers
  42. #include "llurldispatcher.h"
  43. LLURLDispatcherListener::LLURLDispatcherListener(/* LLURLDispatcher* instance */):
  44.     LLEventAPI("LLURLDispatcher", "Internal URL handling") /* ,
  45.     mDispatcher(instance) */
  46. {
  47.     add("dispatch",
  48.         "At startup time or on clicks in internal web browsers,n"
  49.         "teleport, open map, or run requested command.n"
  50.         "["url"] string url to dispatchn"
  51.         "["trusted"] boolean indicating trusted browser [default true]",
  52.         &LLURLDispatcherListener::dispatch);
  53.     add("dispatchRightClick", "Dispatch ["url"] as if from a right-click on a hot link.",
  54.         &LLURLDispatcherListener::dispatchRightClick);
  55.     add("dispatchFromTextEditor", "Dispatch ["url"] as if from an edit field.",
  56.         &LLURLDispatcherListener::dispatchFromTextEditor);
  57. }
  58. void LLURLDispatcherListener::dispatch(const LLSD& params) const
  59. {
  60.     // For most purposes, we expect callers to want to be trusted.
  61.     bool trusted_browser = true;
  62.     if (params.has("trusted"))
  63.     {
  64.         // But for testing, allow a caller to specify untrusted.
  65.         trusted_browser = params["trusted"].asBoolean();
  66.     }
  67.     LLURLDispatcher::dispatch(params["url"], NULL, trusted_browser);
  68. }
  69. void LLURLDispatcherListener::dispatchRightClick(const LLSD& params) const
  70. {
  71.     LLURLDispatcher::dispatchRightClick(params["url"]);
  72. }
  73. void LLURLDispatcherListener::dispatchFromTextEditor(const LLSD& params) const
  74. {
  75.     LLURLDispatcher::dispatchFromTextEditor(params["url"]);
  76. }