STORM-293 FIXED Friend permissions icons overlap long names on 'My Friends' tab

- Added 'avatar name right padding' as parameter to avatar_list_item.
  Before it was calculated and correctness of calculation was strongly dependent on right positioning elements in XML, which was prone to errors.
master
Paul Guslisty 2010-10-19 20:59:08 +03:00
parent c683151587
commit ea7420a7b3
3 changed files with 11 additions and 5 deletions

View File

@ -41,7 +41,7 @@
bool LLAvatarListItem::sStaticInitialized = false;
S32 LLAvatarListItem::sLeftPadding = 0;
S32 LLAvatarListItem::sRightNamePadding = 0;
S32 LLAvatarListItem::sNameRightPadding = 0;
S32 LLAvatarListItem::sChildrenWidths[LLAvatarListItem::ALIC_COUNT];
static LLWidgetNameRegistry::StaticRegistrar sRegisterAvatarListItemParams(&typeid(LLAvatarListItem::Params), "avatar_list_item");
@ -52,7 +52,8 @@ LLAvatarListItem::Params::Params()
voice_call_joined_style("voice_call_joined_style"),
voice_call_left_style("voice_call_left_style"),
online_style("online_style"),
offline_style("offline_style")
offline_style("offline_style"),
name_right_pad("name_right_pad", 0)
{};
@ -119,6 +120,9 @@ BOOL LLAvatarListItem::postBuild()
// so that we can hide and show them again later.
initChildrenWidths(this);
// Right padding between avatar name text box and nearest visible child.
sNameRightPadding = LLUICtrlFactory::getDefaultParams<LLAvatarListItem>().name_right_pad;
sStaticInitialized = true;
}
@ -486,7 +490,6 @@ void LLAvatarListItem::initChildrenWidths(LLAvatarListItem* avatar_item)
S32 icon_width = avatar_item->mAvatarName->getRect().mLeft - avatar_item->mAvatarIcon->getRect().mLeft;
sLeftPadding = avatar_item->mAvatarIcon->getRect().mLeft;
sRightNamePadding = avatar_item->mLastInteractionTime->getRect().mLeft - avatar_item->mAvatarName->getRect().mRight;
S32 index = ALIC_COUNT;
sChildrenWidths[--index] = icon_width;
@ -565,7 +568,7 @@ void LLAvatarListItem::updateChildren()
// apply paddings
name_new_width -= sLeftPadding;
name_new_width -= sRightNamePadding;
name_new_width -= sNameRightPadding;
name_view_rect.setLeftTopAndSize(
name_new_left,

View File

@ -51,6 +51,8 @@ public:
online_style,
offline_style;
Optional<S32> name_right_pad;
Params();
};
@ -215,7 +217,7 @@ private:
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 sRightNamePadding; // right padding from name to next visible child
static S32 sNameRightPadding; // right padding from name to next visible child
/**
* Contains widths of each child specified by EAvatarListItemChildIndex

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<avatar_list_item
name_right_pad="5"
height="0"
layout="topleft"
left="0"