summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelavatar.h
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2007-02-27 01:03:39 +0000
committerSteven Bennetts <steve@lindenlab.com>2007-02-27 01:03:39 +0000
commit647d29b1a2d4712ea738b408be43e56895a715b1 (patch)
tree8db33983be6e10c05895f9774bfbad81a3f6ae81 /indra/newview/llpanelavatar.h
parentc4b5b3977ffa6669a00f9bc334db02f51cc10fcb (diff)
merge -r 58285:58437 maintenance.
Diffstat (limited to 'indra/newview/llpanelavatar.h')
-rw-r--r--indra/newview/llpanelavatar.h99
1 files changed, 54 insertions, 45 deletions
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index 1f4ed7e829..9b1f6e23e1 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -40,30 +40,54 @@ enum EOnlineStatus
ONLINE_STATUS_YES = 1
};
-class LLPanelAvatarFirstLife
-: public LLPanel
+// Base class for all sub-tabs inside the avatar profile. Many of these
+// panels need to keep track of the parent panel (to get the avatar id)
+// and only request data from the database when they are first drawn. JC
+class LLPanelAvatarTab : public LLPanel
{
public:
- LLPanelAvatarFirstLife(const std::string& name, const LLRect &rect, LLPanelAvatar* panel_avatar);
- /*virtual*/ ~LLPanelAvatarFirstLife();
- /*virtual*/ BOOL postBuild(void);
+ LLPanelAvatarTab(const std::string& name, const LLRect &rect,
+ LLPanelAvatar* panel_avatar);
- void enableControls(BOOL own_avatar);
+ // Calls refresh() once per frame when panel is visible
+ /*virtual*/ void draw();
-protected:
+ LLPanelAvatar* getPanelAvatar() const { return mPanelAvatar; }
+
+ void setDataRequested(bool requested) { mDataRequested = requested; }
+ bool isDataRequested() const { return mDataRequested; }
+
+ // If the data for this tab has not yet been requested,
+ // send the request. Used by tabs that are filled in only
+ // when they are first displayed.
+ // type is one of "notes", "classifieds", "picks"
+ void sendAvatarProfileRequestIfNeeded(const char* type);
+
+private:
LLPanelAvatar* mPanelAvatar;
+ bool mDataRequested;
+};
+
+
+class LLPanelAvatarFirstLife : public LLPanelAvatarTab
+{
+public:
+ LLPanelAvatarFirstLife(const std::string& name, const LLRect &rect, LLPanelAvatar* panel_avatar);
+
+ /*virtual*/ BOOL postBuild(void);
+
+ void enableControls(BOOL own_avatar);
};
class LLPanelAvatarSecondLife
-: public LLPanel
+: public LLPanelAvatarTab
{
public:
LLPanelAvatarSecondLife(const std::string& name, const LLRect &rect, LLPanelAvatar* panel_avatar );
- /*virtual*/ ~LLPanelAvatarSecondLife();
- /*virtual*/ BOOL postBuild(void);
- /*virtual*/ void draw();
+ /*virtual*/ BOOL postBuild(void);
+ /*virtual*/ void refresh();
static void onClickImage( void *userdata);
static void onClickFriends( void *userdata);
@@ -80,15 +104,14 @@ public:
void setPartnerID(LLUUID id) { mPartnerID = id; }
-protected:
- LLPanelAvatar* mPanelAvatar;
-
+private:
LLUUID mPartnerID;
};
+
// WARNING! The order of the inheritance here matters!! Do not change. - KLW
class LLPanelAvatarWeb :
- public LLPanel
+ public LLPanelAvatarTab
#if LL_LIBXUL_ENABLED
, public LLWebBrowserCtrlObserver
#endif
@@ -115,17 +138,17 @@ public:
virtual void onLocationChange( const EventType& eventIn );
#endif
-protected:
- LLPanelAvatar* mPanelAvatar;
+private:
std::string mURL;
LLWebBrowserCtrl* mWebBrowser;
};
-class LLPanelAvatarAdvanced : public LLPanel
+
+class LLPanelAvatarAdvanced : public LLPanelAvatarTab
{
public:
LLPanelAvatarAdvanced(const std::string& name, const LLRect& rect, LLPanelAvatar* panel_avatar);
- /*virtual*/ ~LLPanelAvatarAdvanced();
+
/*virtual*/ BOOL postBuild(void);
void enableControls(BOOL own_avatar);
@@ -136,8 +159,7 @@ public:
U32* skills_mask, std::string& skills_text,
std::string& languages_text);
-protected:
- LLPanelAvatar* mPanelAvatar;
+private:
S32 mWantToCount;
S32 mSkillsCount;
LLCheckBoxCtrl *mWantToCheck[8];
@@ -147,35 +169,31 @@ protected:
};
-class LLPanelAvatarNotes : public LLPanel
+class LLPanelAvatarNotes : public LLPanelAvatarTab
{
public:
LLPanelAvatarNotes(const std::string& name, const LLRect& rect, LLPanelAvatar* panel_avatar);
- /*virtual*/ ~LLPanelAvatarNotes();
+
/*virtual*/ BOOL postBuild(void);
- void enableControls(BOOL own_avatar);
+ /*virtual*/ void refresh();
- static void onCommitNotes(LLUICtrl* field, void* userdata);
+ void clearControls();
-protected:
- LLPanelAvatar* mPanelAvatar;
+ static void onCommitNotes(LLUICtrl* field, void* userdata);
};
-class LLPanelAvatarClassified : public LLPanel
+class LLPanelAvatarClassified : public LLPanelAvatarTab
{
public:
LLPanelAvatarClassified(const LLString& name, const LLRect& rect, LLPanelAvatar* panel_avatar);
- /*virtual*/ ~LLPanelAvatarClassified();
- /*virtual*/ BOOL postBuild(void);
- /*virtual*/ void draw();
+ /*virtual*/ BOOL postBuild(void);
- void refresh();
+ /*virtual*/ void refresh();
void apply();
- void enableControls(BOOL own_avatar);
BOOL titleIsValid();
@@ -192,23 +210,17 @@ private:
static void callbackDelete(S32 option, void* data);
static void callbackNew(S32 option, void* data);
-
-private:
- LLPanelAvatar* mPanelAvatar;
};
-class LLPanelAvatarPicks : public LLPanel
+
+class LLPanelAvatarPicks : public LLPanelAvatarTab
{
public:
LLPanelAvatarPicks(const std::string& name, const LLRect& rect, LLPanelAvatar* panel_avatar);
- /*virtual*/ ~LLPanelAvatarPicks();
/*virtual*/ BOOL postBuild(void);
- /*virtual*/ void draw();
-
- void refresh();
- void enableControls(BOOL own_avatar);
+ /*virtual*/ void refresh();
// Delete all the pick sub-panels from the tab container
void deletePickPanels();
@@ -223,9 +235,6 @@ private:
static void onClickDelete(void* data);
static void callbackDelete(S32 option, void* data);
-
-private:
- LLPanelAvatar* mPanelAvatar;
};