201 lines
5.2 KiB
C++
201 lines
5.2 KiB
C++
/**
|
|
* @file llavataractions.h
|
|
* @brief Friend-related actions (add, remove, offer teleport, etc)
|
|
*
|
|
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
|
*
|
|
* Copyright (c) 2009, Linden Research, Inc.
|
|
*
|
|
* Second Life Viewer Source Code
|
|
* The source code in this file ("Source Code") is provided by Linden Lab
|
|
* to you under the terms of the GNU General Public License, version 2.0
|
|
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
*
|
|
* There are special exceptions to the terms and conditions of the GPL as
|
|
* it is applied to this Source Code. View the full text of the exception
|
|
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
|
* online at
|
|
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
*
|
|
* By copying, modifying or distributing this software, you acknowledge
|
|
* that you have read and understood your obligations described above,
|
|
* and agree to abide by those obligations.
|
|
*
|
|
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
|
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
|
* COMPLETENESS OR PERFORMANCE.
|
|
* $/LicenseInfo$
|
|
*/
|
|
|
|
#ifndef LL_LLAVATARACTIONS_H
|
|
#define LL_LLAVATARACTIONS_H
|
|
|
|
#include "lldarray.h"
|
|
#include "llsd.h"
|
|
#include "lluuid.h"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
/**
|
|
* Friend-related actions (add, remove, offer teleport, etc)
|
|
*/
|
|
class LLAvatarActions
|
|
{
|
|
public:
|
|
/**
|
|
* Show a dialog explaining what friendship entails, then request friendship.
|
|
*/
|
|
static void requestFriendshipDialog(const LLUUID& id, const std::string& name);
|
|
|
|
/**
|
|
* Show a dialog explaining what friendship entails, then request friendship.
|
|
*/
|
|
static void requestFriendshipDialog(const LLUUID& id);
|
|
|
|
/**
|
|
* Show a friend removal dialog.
|
|
*/
|
|
static void removeFriendDialog(const LLUUID& id);
|
|
static void removeFriendsDialog(const uuid_vec_t& ids);
|
|
|
|
/**
|
|
* Show teleport offer dialog.
|
|
*/
|
|
static void offerTeleport(const LLUUID& invitee);
|
|
static void offerTeleport(const uuid_vec_t& ids);
|
|
|
|
/**
|
|
* Start instant messaging session.
|
|
*/
|
|
static void startIM(const LLUUID& id);
|
|
|
|
/**
|
|
* End instant messaging session.
|
|
*/
|
|
static void endIM(const LLUUID& id);
|
|
|
|
/**
|
|
* Start an avatar-to-avatar voice call with another user
|
|
*/
|
|
static void startCall(const LLUUID& id);
|
|
|
|
/**
|
|
* Start an ad-hoc conference voice call with multiple users
|
|
*/
|
|
static void startAdhocCall(const uuid_vec_t& ids);
|
|
|
|
/**
|
|
* Start conference chat with the given avatars.
|
|
*/
|
|
static void startConference(const uuid_vec_t& ids);
|
|
|
|
/**
|
|
* Show avatar profile.
|
|
*/
|
|
static void showProfile(const LLUUID& id);
|
|
|
|
/**
|
|
* Show avatar on world map.
|
|
*/
|
|
static void showOnMap(const LLUUID& id);
|
|
|
|
/**
|
|
* Give money to the avatar.
|
|
*/
|
|
static void pay(const LLUUID& id);
|
|
|
|
/**
|
|
* Share items with the avatar.
|
|
*/
|
|
static void share(const LLUUID& id);
|
|
|
|
/**
|
|
* Share items with the picked avatars.
|
|
*/
|
|
static void shareWithAvatars();
|
|
|
|
/**
|
|
* Block/unblock the avatar.
|
|
*/
|
|
static void toggleBlock(const LLUUID& id);
|
|
|
|
/**
|
|
* Return true if avatar with "id" is a friend
|
|
*/
|
|
static bool isFriend(const LLUUID& id);
|
|
|
|
/**
|
|
* @return true if the avatar is blocked
|
|
*/
|
|
static bool isBlocked(const LLUUID& id);
|
|
|
|
/**
|
|
* @return true if you can block the avatar
|
|
*/
|
|
static bool canBlock(const LLUUID& id);
|
|
|
|
/**
|
|
* Return true if the avatar is in a P2P voice call with a given user
|
|
*/
|
|
/* AD *TODO: Is this function needed any more?
|
|
I fixed it a bit(added check for canCall), but it appears that it is not used
|
|
anywhere. Maybe it should be removed?
|
|
static bool isCalling(const LLUUID &id);*/
|
|
|
|
/**
|
|
* @return true if call to the resident can be made
|
|
*/
|
|
|
|
static bool canCall();
|
|
/**
|
|
* Invite avatar to a group.
|
|
*/
|
|
static void inviteToGroup(const LLUUID& id);
|
|
|
|
/**
|
|
* Kick avatar off grid
|
|
*/
|
|
static void kick(const LLUUID& id);
|
|
|
|
/**
|
|
* Freeze avatar
|
|
*/
|
|
static void freeze(const LLUUID& id);
|
|
|
|
/**
|
|
* Unfreeze avatar
|
|
*/
|
|
static void unfreeze(const LLUUID& id);
|
|
|
|
/**
|
|
* Open csr page for avatar
|
|
*/
|
|
static void csr(const LLUUID& id, std::string name);
|
|
|
|
/**
|
|
* Checks whether can offer teleport to the avatar
|
|
* Can't offer only for offline friends
|
|
*/
|
|
static bool canOfferTeleport(const LLUUID& id);
|
|
|
|
|
|
private:
|
|
static bool callbackAddFriend(const LLSD& notification, const LLSD& response);
|
|
static bool callbackAddFriendWithMessage(const LLSD& notification, const LLSD& response);
|
|
static bool handleRemove(const LLSD& notification, const LLSD& response);
|
|
static bool handlePay(const LLSD& notification, const LLSD& response, LLUUID avatar_id);
|
|
static bool handleKick(const LLSD& notification, const LLSD& response);
|
|
static bool handleFreeze(const LLSD& notification, const LLSD& response);
|
|
static bool handleUnfreeze(const LLSD& notification, const LLSD& response);
|
|
static void callback_invite_to_group(LLUUID group_id, LLUUID id);
|
|
|
|
// Just request friendship, no dialog.
|
|
static void requestFriendship(const LLUUID& target_id, const std::string& target_name, const std::string& message);
|
|
};
|
|
|
|
#endif // LL_LLAVATARACTIONS_H
|