summaryrefslogtreecommitdiff
path: root/indra/newview/llavatarlistitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llavatarlistitem.cpp')
-rw-r--r--indra/newview/llavatarlistitem.cpp119
1 files changed, 54 insertions, 65 deletions
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 2bcd097717..5011b191f4 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -48,6 +48,17 @@ S32 LLAvatarListItem::sLeftPadding = 0;
S32 LLAvatarListItem::sRightNamePadding = 0;
S32 LLAvatarListItem::sChildrenWidths[LLAvatarListItem::ALIC_COUNT];
+static LLWidgetNameRegistry::StaticRegistrar sRegisterAvatarListItemParams(&typeid(LLAvatarListItem::Params), "avatar_list_item");
+
+LLAvatarListItem::Params::Params()
+: default_style("default_style"),
+ voice_call_invited_style("voice_call_invited_style"),
+ voice_call_joined_style("voice_call_joined_style"),
+ voice_call_left_style("voice_call_left_style"),
+ online_style("online_style"),
+ offline_style("offline_style")
+{};
+
LLAvatarListItem::LLAvatarListItem(bool not_from_ui_factory/* = true*/)
: LLPanel(),
@@ -166,9 +177,30 @@ void LLAvatarListItem::setHighlight(const std::string& highlight)
void LLAvatarListItem::setState(EItemState item_style)
{
- item_style_map_t& item_styles_params_map = getItemStylesParams();
+ const LLAvatarListItem::Params& params = LLUICtrlFactory::getDefaultParams<LLAvatarListItem>();
- mAvatarNameStyle = item_styles_params_map[item_style];
+ switch(item_style)
+ {
+ default:
+ case IS_DEFAULT:
+ mAvatarNameStyle = params.default_style();
+ break;
+ case IS_VOICE_INVITED:
+ mAvatarNameStyle = params.voice_call_invited_style();
+ break;
+ case IS_VOICE_JOINED:
+ mAvatarNameStyle = params.voice_call_joined_style();
+ break;
+ case IS_VOICE_LEFT:
+ mAvatarNameStyle = params.voice_call_left_style();
+ break;
+ case IS_ONLINE:
+ mAvatarNameStyle = params.online_style();
+ break;
+ case IS_OFFLINE:
+ mAvatarNameStyle = params.offline_style();
+ break;
+ }
// *NOTE: You cannot set the style on a text box anymore, you must
// rebuild the text. This will cause problems if the text contains
@@ -353,58 +385,6 @@ std::string LLAvatarListItem::formatSeconds(U32 secs)
}
// static
-LLAvatarListItem::item_style_map_t& LLAvatarListItem::getItemStylesParams()
-{
- static item_style_map_t item_styles_params_map;
- if (!item_styles_params_map.empty()) return item_styles_params_map;
-
- LLPanel::Params params = LLUICtrlFactory::getDefaultParams<LLPanel>();
- LLPanel* params_panel = LLUICtrlFactory::create<LLPanel>(params);
-
- BOOL sucsess = LLUICtrlFactory::instance().buildPanel(params_panel, "panel_avatar_list_item_params.xml");
-
- if (sucsess)
- {
-
- item_styles_params_map.insert(
- std::make_pair(IS_DEFAULT,
- params_panel->getChild<LLTextBox>("default_style")->getDefaultStyle()));
-
- item_styles_params_map.insert(
- std::make_pair(IS_VOICE_INVITED,
- params_panel->getChild<LLTextBox>("voice_call_invited_style")->getDefaultStyle()));
-
- item_styles_params_map.insert(
- std::make_pair(IS_VOICE_JOINED,
- params_panel->getChild<LLTextBox>("voice_call_joined_style")->getDefaultStyle()));
-
- item_styles_params_map.insert(
- std::make_pair(IS_VOICE_LEFT,
- params_panel->getChild<LLTextBox>("voice_call_left_style")->getDefaultStyle()));
-
- item_styles_params_map.insert(
- std::make_pair(IS_ONLINE,
- params_panel->getChild<LLTextBox>("online_style")->getDefaultStyle()));
-
- item_styles_params_map.insert(
- std::make_pair(IS_OFFLINE,
- params_panel->getChild<LLTextBox>("offline_style")->getDefaultStyle()));
- }
- else
- {
- item_styles_params_map.insert(std::make_pair(IS_DEFAULT, LLStyle::Params()));
- item_styles_params_map.insert(std::make_pair(IS_VOICE_INVITED, LLStyle::Params()));
- item_styles_params_map.insert(std::make_pair(IS_VOICE_JOINED, LLStyle::Params()));
- item_styles_params_map.insert(std::make_pair(IS_VOICE_LEFT, LLStyle::Params()));
- item_styles_params_map.insert(std::make_pair(IS_ONLINE, LLStyle::Params()));
- item_styles_params_map.insert(std::make_pair(IS_OFFLINE, LLStyle::Params()));
- }
- if (params_panel) params_panel->die();
-
- return item_styles_params_map;
-}
-
-// static
LLAvatarListItem::icon_color_map_t& LLAvatarListItem::getItemIconColorMap()
{
static icon_color_map_t item_icon_color_map;
@@ -546,21 +526,30 @@ void LLAvatarListItem::updateChildren()
LLView* LLAvatarListItem::getItemChildView(EAvatarListItemChildIndex child_view_index)
{
LLView* child_view = mAvatarName;
- if (child_view_index < 0 || ALIC_COUNT <= child_view_index)
- {
- LL_WARNS("AvatarItemReshape") << "Child view index is out of range: " << child_view_index << LL_ENDL;
- return child_view;
- }
+
switch (child_view_index)
{
- case ALIC_ICON: child_view = mAvatarIcon; break;
- case ALIC_NAME: child_view = mAvatarName; break;
- case ALIC_INTERACTION_TIME: child_view = mLastInteractionTime; break;
- case ALIC_SPEAKER_INDICATOR: child_view = mSpeakingIndicator; break;
- case ALIC_INFO_BUTTON: child_view = mInfoBtn; break;
- case ALIC_PROFILE_BUTTON: child_view = mProfileBtn; break;
+ case ALIC_ICON:
+ child_view = mAvatarIcon;
+ break;
+ case ALIC_NAME:
+ child_view = mAvatarName;
+ break;
+ case ALIC_INTERACTION_TIME:
+ child_view = mLastInteractionTime;
+ break;
+ case ALIC_SPEAKER_INDICATOR:
+ child_view = mSpeakingIndicator;
+ break;
+ case ALIC_INFO_BUTTON:
+ child_view = mInfoBtn;
+ break;
+ case ALIC_PROFILE_BUTTON:
+ child_view = mProfileBtn;
+ break;
default:
LL_WARNS("AvatarItemReshape") << "Unexpected child view index is passed: " << child_view_index << LL_ENDL;
+ // leave child_view untouched
}
return child_view;