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

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llavataractions.h
  3.  * @brief Friend-related actions (add, remove, offer teleport, etc)
  4.  *
  5.  * $LicenseInfo:firstyear=2009&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2009-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. #ifndef LL_LLAVATARACTIONS_H
  33. #define LL_LLAVATARACTIONS_H
  34. #include "lldarray.h"
  35. #include "llsd.h"
  36. #include "lluuid.h"
  37. #include <string>
  38. #include <vector>
  39. /**
  40.  * Friend-related actions (add, remove, offer teleport, etc)
  41.  */
  42. class LLAvatarActions
  43. {
  44. public:
  45. /**
  46.  * Show a dialog explaining what friendship entails, then request friendship.
  47.  */
  48. static void requestFriendshipDialog(const LLUUID& id, const std::string& name);
  49. /**
  50.  * Show a dialog explaining what friendship entails, then request friendship.
  51.  */
  52. static void requestFriendshipDialog(const LLUUID& id);
  53. /**
  54.  * Show a friend removal dialog.
  55.  */
  56. static void removeFriendDialog(const LLUUID& id);
  57. static void removeFriendsDialog(const std::vector<LLUUID>& ids);
  58. /**
  59.  * Show teleport offer dialog.
  60.  */
  61. static void offerTeleport(const LLUUID& invitee);
  62. static void offerTeleport(const std::vector<LLUUID>& ids);
  63. /**
  64.  * Start instant messaging session.
  65.  */
  66. static void startIM(const LLUUID& id);
  67. /**
  68.  * End instant messaging session.
  69.  */
  70. static void endIM(const LLUUID& id);
  71. /**
  72.  * Start an avatar-to-avatar voice call with another user
  73.  */
  74. static void startCall(const LLUUID& id);
  75. /**
  76.  * Start an ad-hoc conference voice call with multiple users
  77.  */
  78. static void startAdhocCall(const std::vector<LLUUID>& ids);
  79. /**
  80.  * Start conference chat with the given avatars.
  81.  */
  82. static void startConference(const std::vector<LLUUID>& ids);
  83. /**
  84.  * Show avatar profile.
  85.  */
  86. static void showProfile(const LLUUID& id);
  87. /**
  88.  * Give money to the avatar.
  89.  */
  90. static void pay(const LLUUID& id);
  91. /**
  92.  * Share items with the avatar.
  93.  */
  94. static void share(const LLUUID& id);
  95. /**
  96.  * Block/unblock the avatar.
  97.  */
  98. static void toggleBlock(const LLUUID& id);
  99. /**
  100.  * Return true if avatar with "id" is a friend
  101.  */
  102. static bool isFriend(const LLUUID& id);
  103. /**
  104.  * @return true if the avatar is blocked
  105.  */
  106. static bool isBlocked(const LLUUID& id);
  107. /**
  108.  * @return true if you can block the avatar
  109.  */
  110. static bool canBlock(const LLUUID& id);
  111. /**
  112.  * Return true if the avatar is in a P2P voice call with a given user
  113.  */
  114. /* AD *TODO: Is this function needed any more?
  115. I fixed it a bit(added check for canCall), but it appears that it is not used
  116. anywhere. Maybe it should be removed?
  117. static bool isCalling(const LLUUID &id);*/
  118. /**
  119.  * @return true if call to the resident can be made
  120.  */
  121. static bool canCall();
  122. /**
  123.  * Invite avatar to a group.
  124.  */
  125. static void inviteToGroup(const LLUUID& id);
  126. /**
  127.  * Kick avatar off grid
  128.  */
  129. static void kick(const LLUUID& id);
  130. /**
  131.  * Freeze avatar
  132.  */
  133. static void freeze(const LLUUID& id);
  134. /**
  135.  * Unfreeze avatar
  136.  */
  137. static void unfreeze(const LLUUID& id);
  138. /**
  139.  * Open csr page for avatar
  140.  */
  141. static void csr(const LLUUID& id, std::string name);
  142. private:
  143. static bool callbackAddFriend(const LLSD& notification, const LLSD& response);
  144. static bool callbackAddFriendWithMessage(const LLSD& notification, const LLSD& response);
  145. static bool handleRemove(const LLSD& notification, const LLSD& response);
  146. static bool handlePay(const LLSD& notification, const LLSD& response, LLUUID avatar_id);
  147. static bool handleKick(const LLSD& notification, const LLSD& response);
  148. static bool handleFreeze(const LLSD& notification, const LLSD& response);
  149. static bool handleUnfreeze(const LLSD& notification, const LLSD& response);
  150. static void callback_invite_to_group(LLUUID group_id, LLUUID id);
  151. // Just request friendship, no dialog.
  152. static void requestFriendship(const LLUUID& target_id, const std::string& target_name, const std::string& message);
  153. };
  154. #endif // LL_LLAVATARACTIONS_H