summaryrefslogtreecommitdiff
path: root/indra/newview/llinspectavatar.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinspectavatar.h')
-rw-r--r--indra/newview/llinspectavatar.h38
1 files changed, 26 insertions, 12 deletions
diff --git a/indra/newview/llinspectavatar.h b/indra/newview/llinspectavatar.h
index 05b0d6fe20..8d490382d2 100644
--- a/indra/newview/llinspectavatar.h
+++ b/indra/newview/llinspectavatar.h
@@ -1,8 +1,5 @@
/**
* @file llinspectavatar.h
- * @brief Avatar Inspector, a small information window used when clicking
- * on avatar names in the 2D UI and in the ambient inspector widget for
- * the 3D world.
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
*
@@ -37,32 +34,45 @@
#include "llfloater.h"
+struct LLAvatarData;
+class LLFetchAvatarData;
+
+// Avatar Inspector, a small information window used when clicking
+// on avatar names in the 2D UI and in the ambient inspector widget for
+// the 3D world.
class LLInspectAvatar : public LLFloater
{
friend class LLFloaterReg;
public:
- // key is the UUID of avatar for whom to show information
- // *TODO: Needs to take a spawn location
+ // avatar_id - Avatar ID for which to show information
+ // Inspector will be positioned relative to current mouse position
LLInspectAvatar(const LLSD& avatar_id);
virtual ~LLInspectAvatar();
/*virtual*/ BOOL postBuild(void);
+ /*virtual*/ void draw();
+
+ // Because floater is single instance, need to re-parse data on each spawn
+ // (for example, inspector about same avatar but in different position)
+ /*virtual*/ void onOpen(const LLSD& avatar_id);
- void setAvatarID(const LLUUID &avatar_id);
+ // Inspectors close themselves when they lose focus
+ /*virtual*/ void onFocusLost();
- const LLUUID& getAvatarID() const { return mAvatarID; }
- const std::string& getFirstName() const { return mFirstName; }
- const std::string& getLastName() const { return mLastName; }
+ // Update view based on information from avatar properties processor
+ void processAvatarData(LLAvatarData* data);
private:
- // Update widgets, including avatar name, buttons enabled, etc.
- // Used after avatar id changes.
- void refresh();
+ // Make network requests for all the data to display in this view.
+ // Used on construction and if avatar id changes.
+ void requestUpdate();
+ // Button callbacks
void onClickAddFriend();
void onClickViewProfile();
+ // Callback for gCacheName to look up avatar name
void nameUpdatedCallback(
const LLUUID& id,
const std::string& first,
@@ -74,6 +84,10 @@ private:
// Need avatar name information to spawn friend add request
std::string mFirstName;
std::string mLastName;
+ // an in-flight request for avatar properties from LLAvatarPropertiesProcessor
+ // is represented by this object
+ LLFetchAvatarData* mPropertiesRequest;
+ LLFrameTimer mCloseTimer;
};