diff options
Diffstat (limited to 'indra/newview/llconversationview.h')
-rwxr-xr-x[-rw-r--r--] | indra/newview/llconversationview.h | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h index ec99b2eb9b..3dbc36e811 100644..100755 --- a/indra/newview/llconversationview.h +++ b/indra/newview/llconversationview.h @@ -29,6 +29,9 @@ #include "llfolderviewitem.h" +#include "llbutton.h" +#include "lloutputmonitorctrl.h" + class LLTextBox; class LLIMFloaterContainer; class LLConversationViewSession; @@ -54,7 +57,7 @@ protected: public: virtual ~LLConversationViewSession( void ) { } - virtual void selectItem(); + virtual void selectItem(); /*virtual*/ BOOL postBuild(); /*virtual*/ void draw(); @@ -75,26 +78,51 @@ private: class LLConversationViewParticipant : public LLFolderViewItem { + public: + struct Params : public LLInitParam::Block<Params, LLFolderViewItem::Params> { + Optional<LLIMFloaterContainer*> container; Optional<LLUUID> participant_id; + Optional<LLButton::Params> info_button; + Optional<LLOutputMonitorCtrl::Params> output_monitor; Params(); }; + virtual ~LLConversationViewParticipant( void ) { } + bool hasSameValue(const LLUUID& uuid) { return (uuid == mUUID); } + virtual void refresh(); + void addToFolder(LLFolderViewFolder* folder); + + void onMouseEnter(S32 x, S32 y, MASK mask); + void onMouseLeave(S32 x, S32 y, MASK mask); + protected: friend class LLUICtrlFactory; LLConversationViewParticipant( const Params& p ); + void initFromParams(const Params& params); + BOOL postBuild(); -public: - virtual ~LLConversationViewParticipant( void ) { } - - bool hasSameValue(const LLUUID& uuid) { return (uuid == mUUID); } + void onInfoBtnClick(); - virtual void refresh(); private: + LLButton * mInfoBtn; + LLOutputMonitorCtrl* mSpeakingIndicator; LLUUID mUUID; // UUID of the participant + + typedef enum e_avatar_item_child { + ALIC_SPEAKER_INDICATOR, + ALIC_INFO_BUTTON, + ALIC_COUNT, + } EAvatarListItemChildIndex; + + static bool sStaticInitialized; // this variable is introduced to improve code readability + static S32 sChildrenWidths[ALIC_COUNT]; + static void initChildrenWidths(LLConversationViewParticipant* self); + void computeLabelRightPadding(); + LLView* getItemChildView(EAvatarListItemChildIndex child_view_index); }; #endif // LL_LLCONVERSATIONVIEW_H |