summaryrefslogtreecommitdiff
path: root/indra/newview/llavatarlistitem.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llavatarlistitem.h')
-rw-r--r--indra/newview/llavatarlistitem.h382
1 files changed, 191 insertions, 191 deletions
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index b95cd68526..3f6dcb0783 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llavatarlistitem.h
* @brief avatar list item header file
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -44,198 +44,198 @@ class LLIconCtrl;
class LLAvatarListItem : public LLPanel, public LLFriendObserver
{
public:
- struct Params : public LLInitParam::Block<Params, LLPanel::Params>
- {
- Optional<LLStyle::Params> default_style,
- voice_call_invited_style,
- voice_call_joined_style,
- voice_call_left_style,
- online_style,
- offline_style;
-
- Optional<S32> name_right_pad;
-
- Params();
- };
-
- typedef enum e_item_state_type {
- IS_DEFAULT,
- IS_VOICE_INVITED,
- IS_VOICE_JOINED,
- IS_VOICE_LEFT,
- IS_ONLINE,
- IS_OFFLINE,
- } EItemState;
-
- /**
- * Creates an instance of LLAvatarListItem.
- *
- * It is not registered with LLDefaultChildRegistry. It is built via LLUICtrlFactory::buildPanel
- * or via registered LLCallbackMap depend on passed parameter.
- *
- * @param not_from_ui_factory if true instance will be build with LLUICtrlFactory::buildPanel
- * otherwise it should be registered via LLCallbackMap before creating.
- */
- LLAvatarListItem(bool not_from_ui_factory = true);
- virtual ~LLAvatarListItem();
-
- virtual BOOL postBuild();
-
- /**
- * Processes notification from speaker indicator to update children when indicator's visibility is changed.
- */
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Optional<LLStyle::Params> default_style,
+ voice_call_invited_style,
+ voice_call_joined_style,
+ voice_call_left_style,
+ online_style,
+ offline_style;
+
+ Optional<S32> name_right_pad;
+
+ Params();
+ };
+
+ typedef enum e_item_state_type {
+ IS_DEFAULT,
+ IS_VOICE_INVITED,
+ IS_VOICE_JOINED,
+ IS_VOICE_LEFT,
+ IS_ONLINE,
+ IS_OFFLINE,
+ } EItemState;
+
+ /**
+ * Creates an instance of LLAvatarListItem.
+ *
+ * It is not registered with LLDefaultChildRegistry. It is built via LLUICtrlFactory::buildPanel
+ * or via registered LLCallbackMap depend on passed parameter.
+ *
+ * @param not_from_ui_factory if true instance will be build with LLUICtrlFactory::buildPanel
+ * otherwise it should be registered via LLCallbackMap before creating.
+ */
+ LLAvatarListItem(bool not_from_ui_factory = true);
+ virtual ~LLAvatarListItem();
+
+ virtual BOOL postBuild();
+
+ /**
+ * Processes notification from speaker indicator to update children when indicator's visibility is changed.
+ */
virtual void handleVisibilityChange ( BOOL new_visibility );
- virtual S32 notifyParent(const LLSD& info);
- virtual void onMouseLeave(S32 x, S32 y, MASK mask);
- virtual void onMouseEnter(S32 x, S32 y, MASK mask);
- virtual void setValue(const LLSD& value);
- virtual void changed(U32 mask); // from LLFriendObserver
-
- void setOnline(bool online);
- void updateAvatarName(); // re-query the name cache
- void setAvatarName(const std::string& name);
- void setAvatarToolTip(const std::string& tooltip);
- void setHighlight(const std::string& highlight);
- void setState(EItemState item_style);
- void setAvatarId(const LLUUID& id, const LLUUID& session_id, bool ignore_status_changes = false, bool is_resident = true);
- void setLastInteractionTime(U32 secs_since);
- //Show/hide profile/info btn, translating speaker indicator and avatar name coordinates accordingly
- void setShowProfileBtn(bool show);
- void setShowInfoBtn(bool show);
- void showSpeakingIndicator(bool show);
- void setShowPermissions(bool show) { mShowPermissions = show; };
- void showLastInteractionTime(bool show);
- void setAvatarIconVisible(bool visible);
- void setShowCompleteName(bool show) { mShowCompleteName = show;};
-
- const LLUUID& getAvatarId() const;
- std::string getAvatarName() const;
- std::string getAvatarToolTip() const;
-
- void onInfoBtnClick();
- void onProfileBtnClick();
-
- /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+ virtual S32 notifyParent(const LLSD& info);
+ virtual void onMouseLeave(S32 x, S32 y, MASK mask);
+ virtual void onMouseEnter(S32 x, S32 y, MASK mask);
+ virtual void setValue(const LLSD& value);
+ virtual void changed(U32 mask); // from LLFriendObserver
+
+ void setOnline(bool online);
+ void updateAvatarName(); // re-query the name cache
+ void setAvatarName(const std::string& name);
+ void setAvatarToolTip(const std::string& tooltip);
+ void setHighlight(const std::string& highlight);
+ void setState(EItemState item_style);
+ void setAvatarId(const LLUUID& id, const LLUUID& session_id, bool ignore_status_changes = false, bool is_resident = true);
+ void setLastInteractionTime(U32 secs_since);
+ //Show/hide profile/info btn, translating speaker indicator and avatar name coordinates accordingly
+ void setShowProfileBtn(bool show);
+ void setShowInfoBtn(bool show);
+ void showSpeakingIndicator(bool show);
+ void setShowPermissions(bool show) { mShowPermissions = show; };
+ void showLastInteractionTime(bool show);
+ void setAvatarIconVisible(bool visible);
+ void setShowCompleteName(bool show) { mShowCompleteName = show;};
+
+ const LLUUID& getAvatarId() const;
+ std::string getAvatarName() const;
+ std::string getAvatarToolTip() const;
+
+ void onInfoBtnClick();
+ void onProfileBtnClick();
+
+ /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
protected:
- /**
- * Contains indicator to show voice activity.
- */
- LLOutputMonitorCtrl* mSpeakingIndicator;
-
- LLAvatarIconCtrl* mAvatarIcon;
-
- /// Indicator for permission to see me online.
- LLIconCtrl* mIconPermissionOnline;
- /// Indicator for permission to see my position on the map.
- LLIconCtrl* mIconPermissionMap;
- /// Indicator for permission to edit my objects.
- LLIconCtrl* mIconPermissionEditMine;
- /// Indicator for permission to edit their objects.
- LLIconCtrl* mIconPermissionEditTheirs;
+ /**
+ * Contains indicator to show voice activity.
+ */
+ LLOutputMonitorCtrl* mSpeakingIndicator;
+
+ LLAvatarIconCtrl* mAvatarIcon;
+
+ /// Indicator for permission to see me online.
+ LLIconCtrl* mIconPermissionOnline;
+ /// Indicator for permission to see my position on the map.
+ LLIconCtrl* mIconPermissionMap;
+ /// Indicator for permission to edit my objects.
+ LLIconCtrl* mIconPermissionEditMine;
+ /// Indicator for permission to edit their objects.
+ LLIconCtrl* mIconPermissionEditTheirs;
private:
- typedef enum e_online_status {
- E_OFFLINE,
- E_ONLINE,
- E_UNKNOWN,
- } EOnlineStatus;
-
- /**
- * Enumeration of item elements in order from right to left.
- *
- * updateChildren() assumes that indexes are in the such order to process avatar icon easier.
- *
- * @see updateChildren()
- */
- typedef enum e_avatar_item_child {
- ALIC_SPEAKER_INDICATOR,
- ALIC_PROFILE_BUTTON,
- ALIC_INFO_BUTTON,
- ALIC_PERMISSION_ONLINE,
- ALIC_PERMISSION_MAP,
- ALIC_PERMISSION_EDIT_MINE,
- ALIC_PERMISSION_EDIT_THEIRS,
- ALIC_INTERACTION_TIME,
- ALIC_NAME,
- ALIC_ICON,
- ALIC_COUNT,
- } EAvatarListItemChildIndex;
-
- void setNameInternal(const std::string& name, const std::string& highlight);
- void onAvatarNameCache(const LLAvatarName& av_name);
-
- std::string formatSeconds(U32 secs);
-
- typedef std::map<EItemState, LLColor4> icon_color_map_t;
- static icon_color_map_t& getItemIconColorMap();
-
- /**
- * Initializes widths of all children to use them while changing visibility of any of them.
- *
- * @see updateChildren()
- */
- static void initChildrenWidths(LLAvatarListItem* self);
-
- /**
- * Updates position and rectangle of visible children to fit all available item's width.
- */
- void updateChildren();
-
- /**
- * Update visibility of active permissions icons.
- *
- * Need to call updateChildren() afterwards to sort out their layout.
- */
- bool showPermissions(bool visible);
-
- /**
- * Gets child view specified by index.
- *
- * This method implemented via switch by all EAvatarListItemChildIndex values.
- * It is used to not store children in array or vector to avoid of increasing memory usage.
- */
- LLView* getItemChildView(EAvatarListItemChildIndex child_index);
-
- LLTextBox* mAvatarName;
- LLTextBox* mLastInteractionTime;
- LLStyle::Params mAvatarNameStyle;
-
- LLButton* mInfoBtn;
- LLButton* mProfileBtn;
-
- LLUUID mAvatarId;
- std::string mHighlihtSubstring; // substring to highlight
- EOnlineStatus mOnlineStatus;
- //Flag indicating that info/profile button shouldn't be shown at all.
- //Speaker indicator and avatar name coords are translated accordingly
- bool mShowInfoBtn;
- bool mShowProfileBtn;
-
- /// indicates whether to show icons representing permissions granted
- bool mShowPermissions;
-
- /// true when the mouse pointer is hovering over this item
- bool mHovered;
-
- bool mShowCompleteName;
- std::string mGreyOutUsername;
-
- void fetchAvatarName();
- boost::signals2::connection mAvatarNameCacheConnection;
-
- static bool sStaticInitialized; // this variable is introduced to improve code readability
- static S32 sLeftPadding; // padding to first left visible child (icon or name)
- static S32 sNameRightPadding; // right padding from name to next visible child
-
- /**
- * Contains widths of each child specified by EAvatarListItemChildIndex
- * including padding to the next right one.
- *
- * @see initChildrenWidths()
- */
- static S32 sChildrenWidths[ALIC_COUNT];
+ typedef enum e_online_status {
+ E_OFFLINE,
+ E_ONLINE,
+ E_UNKNOWN,
+ } EOnlineStatus;
+
+ /**
+ * Enumeration of item elements in order from right to left.
+ *
+ * updateChildren() assumes that indexes are in the such order to process avatar icon easier.
+ *
+ * @see updateChildren()
+ */
+ typedef enum e_avatar_item_child {
+ ALIC_SPEAKER_INDICATOR,
+ ALIC_PROFILE_BUTTON,
+ ALIC_INFO_BUTTON,
+ ALIC_PERMISSION_ONLINE,
+ ALIC_PERMISSION_MAP,
+ ALIC_PERMISSION_EDIT_MINE,
+ ALIC_PERMISSION_EDIT_THEIRS,
+ ALIC_INTERACTION_TIME,
+ ALIC_NAME,
+ ALIC_ICON,
+ ALIC_COUNT,
+ } EAvatarListItemChildIndex;
+
+ void setNameInternal(const std::string& name, const std::string& highlight);
+ void onAvatarNameCache(const LLAvatarName& av_name);
+
+ std::string formatSeconds(U32 secs);
+
+ typedef std::map<EItemState, LLColor4> icon_color_map_t;
+ static icon_color_map_t& getItemIconColorMap();
+
+ /**
+ * Initializes widths of all children to use them while changing visibility of any of them.
+ *
+ * @see updateChildren()
+ */
+ static void initChildrenWidths(LLAvatarListItem* self);
+
+ /**
+ * Updates position and rectangle of visible children to fit all available item's width.
+ */
+ void updateChildren();
+
+ /**
+ * Update visibility of active permissions icons.
+ *
+ * Need to call updateChildren() afterwards to sort out their layout.
+ */
+ bool showPermissions(bool visible);
+
+ /**
+ * Gets child view specified by index.
+ *
+ * This method implemented via switch by all EAvatarListItemChildIndex values.
+ * It is used to not store children in array or vector to avoid of increasing memory usage.
+ */
+ LLView* getItemChildView(EAvatarListItemChildIndex child_index);
+
+ LLTextBox* mAvatarName;
+ LLTextBox* mLastInteractionTime;
+ LLStyle::Params mAvatarNameStyle;
+
+ LLButton* mInfoBtn;
+ LLButton* mProfileBtn;
+
+ LLUUID mAvatarId;
+ std::string mHighlihtSubstring; // substring to highlight
+ EOnlineStatus mOnlineStatus;
+ //Flag indicating that info/profile button shouldn't be shown at all.
+ //Speaker indicator and avatar name coords are translated accordingly
+ bool mShowInfoBtn;
+ bool mShowProfileBtn;
+
+ /// indicates whether to show icons representing permissions granted
+ bool mShowPermissions;
+
+ /// true when the mouse pointer is hovering over this item
+ bool mHovered;
+
+ bool mShowCompleteName;
+ std::string mGreyOutUsername;
+
+ void fetchAvatarName();
+ boost::signals2::connection mAvatarNameCacheConnection;
+
+ static bool sStaticInitialized; // this variable is introduced to improve code readability
+ static S32 sLeftPadding; // padding to first left visible child (icon or name)
+ static S32 sNameRightPadding; // right padding from name to next visible child
+
+ /**
+ * Contains widths of each child specified by EAvatarListItemChildIndex
+ * including padding to the next right one.
+ *
+ * @see initChildrenWidths()
+ */
+ static S32 sChildrenWidths[ALIC_COUNT];
};